packages feed

haskell-src-exts 1.20.3 → 1.24.0

raw patch · 155 files changed

Files

CHANGELOG view
@@ -1,3 +1,48 @@+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)
README.md view
@@ -36,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.
− dist/build/Language/Haskell/Exts/InternalParser.hs
@@ -1,11289 +0,0 @@-{-# OPTIONS_GHC -w #-}-{-# OPTIONS -XMagicHash -XBangPatterns -XTypeSynonymInstances -XFlexibleInstances -cpp #-}-#if __GLASGOW_HASKELL__ >= 710-{-# OPTIONS_GHC -XPartialTypeSignatures #-}-#endif-{-# LANGUAGE 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 (-              mparseModule,-              mparseExp,-              mparsePat,-              mparseDecl,-              mparseType,-              mparseStmt,-              mparseImportDecl,-              ngparseModulePragmas,-              ngparseModuleHeadAndImports,-              ngparsePragmasAndModuleHead,-              ngparsePragmasAndModuleName-              ) where-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.Fixity-import Language.Haskell.Exts.SrcLoc-import Language.Haskell.Exts.Extension--import Control.Monad ( liftM, (<=<), when )-import Control.Applicative ( (<$>) )-import Data.Maybe-#if MIN_VERSION_base(4,11,0)-import Prelude hiding ((<>))-#endif-import qualified Data.Array as Happy_Data_Array-import qualified Data.Bits as Bits-import qualified GHC.Exts as Happy_GHC_Exts-import Control.Applicative(Applicative(..))-import Control.Monad (ap)---- parser produced by Happy Version 1.19.9--newtype HappyAbsSyn  = HappyAbsSyn HappyAny-#if __GLASGOW_HASKELL__ >= 607-type HappyAny = Happy_GHC_Exts.Any-#else-type HappyAny = forall a . a-#endif-happyIn14 :: ([Module L]) -> (HappyAbsSyn )-happyIn14 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn14 #-}-happyOut14 :: (HappyAbsSyn ) -> ([Module L])-happyOut14 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut14 #-}-happyIn15 :: ([[ModulePragma L] -> [S] -> L -> Module L]) -> (HappyAbsSyn )-happyIn15 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn15 #-}-happyOut15 :: (HappyAbsSyn ) -> ([[ModulePragma L] -> [S] -> L -> Module L])-happyOut15 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut15 #-}-happyIn16 :: (Module L) -> (HappyAbsSyn )-happyIn16 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn16 #-}-happyOut16 :: (HappyAbsSyn ) -> (Module L)-happyOut16 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut16 #-}-happyIn17 :: (PExp L) -> (HappyAbsSyn )-happyIn17 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn17 #-}-happyOut17 :: (HappyAbsSyn ) -> (PExp L)-happyOut17 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut17 #-}-happyIn18 :: (([ModulePragma L],[S],L)) -> (HappyAbsSyn )-happyIn18 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn18 #-}-happyOut18 :: (HappyAbsSyn ) -> (([ModulePragma L],[S],L))-happyOut18 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut18 #-}-happyIn19 :: (([ModulePragma L],[S],Maybe L)) -> (HappyAbsSyn )-happyIn19 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn19 #-}-happyOut19 :: (HappyAbsSyn ) -> (([ModulePragma L],[S],Maybe L))-happyOut19 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut19 #-}-happyIn20 :: (ModulePragma L) -> (HappyAbsSyn )-happyIn20 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn20 #-}-happyOut20 :: (HappyAbsSyn ) -> (ModulePragma L)-happyOut20 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut20 #-}-happyIn21 :: (([Name L],[S])) -> (HappyAbsSyn )-happyIn21 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn21 #-}-happyOut21 :: (HappyAbsSyn ) -> (([Name L],[S]))-happyOut21 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut21 #-}-happyIn22 :: ([ModulePragma L] -> [S] -> L -> Module L) -> (HappyAbsSyn )-happyIn22 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn22 #-}-happyOut22 :: (HappyAbsSyn ) -> ([ModulePragma L] -> [S] -> L -> Module L)-happyOut22 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut22 #-}-happyIn23 :: (Maybe (ModuleHead L)) -> (HappyAbsSyn )-happyIn23 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn23 #-}-happyOut23 :: (HappyAbsSyn ) -> (Maybe (ModuleHead L))-happyOut23 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut23 #-}-happyIn24 :: (Maybe (WarningText L)) -> (HappyAbsSyn )-happyIn24 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn24 #-}-happyOut24 :: (HappyAbsSyn ) -> (Maybe (WarningText L))-happyOut24 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut24 #-}-happyIn25 :: (([ImportDecl L],[Decl L],[S],L)) -> (HappyAbsSyn )-happyIn25 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn25 #-}-happyOut25 :: (HappyAbsSyn ) -> (([ImportDecl L],[Decl L],[S],L))-happyOut25 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut25 #-}-happyIn26 :: (([ImportDecl L],[Decl L],[S])) -> (HappyAbsSyn )-happyIn26 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn26 #-}-happyOut26 :: (HappyAbsSyn ) -> (([ImportDecl L],[Decl L],[S]))-happyOut26 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut26 #-}-happyIn27 :: ([S]) -> (HappyAbsSyn )-happyIn27 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn27 #-}-happyOut27 :: (HappyAbsSyn ) -> ([S])-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 :: (Maybe (ExportSpecList L)) -> (HappyAbsSyn )-happyIn29 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn29 #-}-happyOut29 :: (HappyAbsSyn ) -> (Maybe (ExportSpecList L))-happyOut29 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut29 #-}-happyIn30 :: (ExportSpecList L) -> (HappyAbsSyn )-happyIn30 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn30 #-}-happyOut30 :: (HappyAbsSyn ) -> (ExportSpecList L)-happyOut30 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut30 #-}-happyIn31 :: ([S]) -> (HappyAbsSyn )-happyIn31 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn31 #-}-happyOut31 :: (HappyAbsSyn ) -> ([S])-happyOut31 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut31 #-}-happyIn32 :: (([ExportSpec L],[S])) -> (HappyAbsSyn )-happyIn32 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn32 #-}-happyOut32 :: (HappyAbsSyn ) -> (([ExportSpec L],[S]))-happyOut32 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut32 #-}-happyIn33 :: (ExportSpec L) -> (HappyAbsSyn )-happyIn33 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn33 #-}-happyOut33 :: (HappyAbsSyn ) -> (ExportSpec L)-happyOut33 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut33 #-}-happyIn34 :: (([Either S (CName L)],[S])) -> (HappyAbsSyn )-happyIn34 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn34 #-}-happyOut34 :: (HappyAbsSyn ) -> (([Either S (CName L)],[S]))-happyOut34 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut34 #-}-happyIn35 :: (Either S (CName L)) -> (HappyAbsSyn )-happyIn35 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn35 #-}-happyOut35 :: (HappyAbsSyn ) -> (Either S (CName L))-happyOut35 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut35 #-}-happyIn36 :: (QName L) -> (HappyAbsSyn )-happyIn36 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn36 #-}-happyOut36 :: (HappyAbsSyn ) -> (QName L)-happyOut36 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut36 #-}-happyIn37 :: (([ImportDecl L],[S])) -> (HappyAbsSyn )-happyIn37 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn37 #-}-happyOut37 :: (HappyAbsSyn ) -> (([ImportDecl L],[S]))-happyOut37 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut37 #-}-happyIn38 :: (ImportDecl L) -> (HappyAbsSyn )-happyIn38 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn38 #-}-happyOut38 :: (HappyAbsSyn ) -> (ImportDecl L)-happyOut38 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut38 #-}-happyIn39 :: ((Bool,[S])) -> (HappyAbsSyn )-happyIn39 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn39 #-}-happyOut39 :: (HappyAbsSyn ) -> ((Bool,[S]))-happyOut39 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut39 #-}-happyIn40 :: ((Bool,[S])) -> (HappyAbsSyn )-happyIn40 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn40 #-}-happyOut40 :: (HappyAbsSyn ) -> ((Bool,[S]))-happyOut40 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut40 #-}-happyIn41 :: ((Bool,[S])) -> (HappyAbsSyn )-happyIn41 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn41 #-}-happyOut41 :: (HappyAbsSyn ) -> ((Bool,[S]))-happyOut41 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut41 #-}-happyIn42 :: ((Maybe String,[S])) -> (HappyAbsSyn )-happyIn42 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn42 #-}-happyOut42 :: (HappyAbsSyn ) -> ((Maybe String,[S]))-happyOut42 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut42 #-}-happyIn43 :: ((Maybe (ModuleName L),[S],Maybe L)) -> (HappyAbsSyn )-happyIn43 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn43 #-}-happyOut43 :: (HappyAbsSyn ) -> ((Maybe (ModuleName L),[S],Maybe L))-happyOut43 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut43 #-}-happyIn44 :: (Maybe (ImportSpecList L)) -> (HappyAbsSyn )-happyIn44 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn44 #-}-happyOut44 :: (HappyAbsSyn ) -> (Maybe (ImportSpecList L))-happyOut44 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut44 #-}-happyIn45 :: (ImportSpecList L) -> (HappyAbsSyn )-happyIn45 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn45 #-}-happyOut45 :: (HappyAbsSyn ) -> (ImportSpecList L)-happyOut45 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut45 #-}-happyIn46 :: ((Bool, Maybe L,[S])) -> (HappyAbsSyn )-happyIn46 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn46 #-}-happyOut46 :: (HappyAbsSyn ) -> ((Bool, Maybe L,[S]))-happyOut46 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut46 #-}-happyIn47 :: (([ImportSpec L],[S])) -> (HappyAbsSyn )-happyIn47 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn47 #-}-happyOut47 :: (HappyAbsSyn ) -> (([ImportSpec L],[S]))-happyOut47 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut47 #-}-happyIn48 :: (ImportSpec L) -> (HappyAbsSyn )-happyIn48 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn48 #-}-happyOut48 :: (HappyAbsSyn ) -> (ImportSpec L)-happyOut48 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut48 #-}-happyIn49 :: (([CName L],[S])) -> (HappyAbsSyn )-happyIn49 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn49 #-}-happyOut49 :: (HappyAbsSyn ) -> (([CName L],[S]))-happyOut49 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut49 #-}-happyIn50 :: (CName L) -> (HappyAbsSyn )-happyIn50 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn50 #-}-happyOut50 :: (HappyAbsSyn ) -> (CName L)-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 Int, [S])) -> (HappyAbsSyn )-happyIn52 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn52 #-}-happyOut52 :: (HappyAbsSyn ) -> ((Maybe Int, [S]))-happyOut52 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut52 #-}-happyIn53 :: (Assoc L) -> (HappyAbsSyn )-happyIn53 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn53 #-}-happyOut53 :: (HappyAbsSyn ) -> (Assoc L)-happyOut53 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut53 #-}-happyIn54 :: (([Op L],[S],L)) -> (HappyAbsSyn )-happyIn54 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn54 #-}-happyOut54 :: (HappyAbsSyn ) -> (([Op L],[S],L))-happyOut54 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut54 #-}-happyIn55 :: (Maybe (InjectivityInfo L)) -> (HappyAbsSyn )-happyIn55 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn55 #-}-happyOut55 :: (HappyAbsSyn ) -> (Maybe (InjectivityInfo L))-happyOut55 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut55 #-}-happyIn56 :: (InjectivityInfo L) -> (HappyAbsSyn )-happyIn56 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn56 #-}-happyOut56 :: (HappyAbsSyn ) -> (InjectivityInfo L)-happyOut56 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut56 #-}-happyIn57 :: ([Name L]) -> (HappyAbsSyn )-happyIn57 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn57 #-}-happyOut57 :: (HappyAbsSyn ) -> ([Name L])-happyOut57 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut57 #-}-happyIn58 :: (([Decl L],[S])) -> (HappyAbsSyn )-happyIn58 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn58 #-}-happyOut58 :: (HappyAbsSyn ) -> (([Decl 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) -> (HappyAbsSyn )-happyIn60 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn60 #-}-happyOut60 :: (HappyAbsSyn ) -> (Decl L)-happyOut60 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut60 #-}-happyIn61 :: (Maybe (ResultSig L)) -> (HappyAbsSyn )-happyIn61 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn61 #-}-happyOut61 :: (HappyAbsSyn ) -> (Maybe (ResultSig L))-happyOut61 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut61 #-}-happyIn62 :: (Maybe (ResultSig L)) -> (HappyAbsSyn )-happyIn62 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn62 #-}-happyOut62 :: (HappyAbsSyn ) -> (Maybe (ResultSig L))-happyOut62 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut62 #-}-happyIn63 :: ((Maybe (ResultSig L), Maybe (InjectivityInfo L))) -> (HappyAbsSyn )-happyIn63 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn63 #-}-happyOut63 :: (HappyAbsSyn ) -> ((Maybe (ResultSig L), Maybe (InjectivityInfo L)))-happyOut63 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut63 #-}-happyIn64 :: ((Maybe (ResultSig L), Maybe (S, Type L), Maybe (InjectivityInfo L))) -> (HappyAbsSyn )-happyIn64 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn64 #-}-happyOut64 :: (HappyAbsSyn ) -> ((Maybe (ResultSig L), Maybe (S, Type L), Maybe (InjectivityInfo 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 :: ([(Maybe String, L)]) -> (HappyAbsSyn )-happyIn66 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn66 #-}-happyOut66 :: (HappyAbsSyn ) -> ([(Maybe String, L)])-happyOut66 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut66 #-}-happyIn67 :: ((Maybe String, L)) -> (HappyAbsSyn )-happyIn67 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn67 #-}-happyOut67 :: (HappyAbsSyn ) -> ((Maybe String, L))-happyOut67 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut67 #-}-happyIn68 :: (Maybe (Overlap L)) -> (HappyAbsSyn )-happyIn68 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn68 #-}-happyOut68 :: (HappyAbsSyn ) -> (Maybe (Overlap L))-happyOut68 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut68 #-}-happyIn69 :: (Maybe ([TypeEqn L], S)) -> (HappyAbsSyn )-happyIn69 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn69 #-}-happyOut69 :: (HappyAbsSyn ) -> (Maybe ([TypeEqn L], S))-happyOut69 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut69 #-}-happyIn70 :: ([TypeEqn L]) -> (HappyAbsSyn )-happyIn70 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn70 #-}-happyOut70 :: (HappyAbsSyn ) -> ([TypeEqn L])-happyOut70 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut70 #-}-happyIn71 :: ([TypeEqn L]) -> (HappyAbsSyn )-happyIn71 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn71 #-}-happyOut71 :: (HappyAbsSyn ) -> ([TypeEqn L])-happyOut71 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut71 #-}-happyIn72 :: (TypeEqn L) -> (HappyAbsSyn )-happyIn72 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn72 #-}-happyOut72 :: (HappyAbsSyn ) -> (TypeEqn L)-happyOut72 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut72 #-}-happyIn73 :: (DataOrNew L) -> (HappyAbsSyn )-happyIn73 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn73 #-}-happyOut73 :: (HappyAbsSyn ) -> (DataOrNew L)-happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut73 #-}-happyIn74 :: (([Type L],[S])) -> (HappyAbsSyn )-happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn74 #-}-happyOut74 :: (HappyAbsSyn ) -> (([Type L],[S]))-happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut74 #-}-happyIn75 :: (([Decl L],[S])) -> (HappyAbsSyn )-happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn75 #-}-happyOut75 :: (HappyAbsSyn ) -> (([Decl L],[S]))-happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut75 #-}-happyIn76 :: (([Decl L],[S])) -> (HappyAbsSyn )-happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn76 #-}-happyOut76 :: (HappyAbsSyn ) -> (([Decl L],[S]))-happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut76 #-}-happyIn77 :: (Decl L) -> (HappyAbsSyn )-happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn77 #-}-happyOut77 :: (HappyAbsSyn ) -> (Decl L)-happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut77 #-}-happyIn78 :: (Binds L) -> (HappyAbsSyn )-happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn78 #-}-happyOut78 :: (HappyAbsSyn ) -> (Binds L)-happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut78 #-}-happyIn79 :: (Decl L) -> (HappyAbsSyn )-happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn79 #-}-happyOut79 :: (HappyAbsSyn ) -> (Decl L)-happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut79 #-}-happyIn80 :: (Decl L) -> (HappyAbsSyn )-happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn80 #-}-happyOut80 :: (HappyAbsSyn ) -> (Decl L)-happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut80 #-}-happyIn81 :: (Decl L) -> (HappyAbsSyn )-happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn81 #-}-happyOut81 :: (HappyAbsSyn ) -> (Decl L)-happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut81 #-}-happyIn82 :: (([Type L],[S])) -> (HappyAbsSyn )-happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn82 #-}-happyOut82 :: (HappyAbsSyn ) -> (([Type L],[S]))-happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut82 #-}-happyIn83 :: (Type L) -> (HappyAbsSyn )-happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn83 #-}-happyOut83 :: (HappyAbsSyn ) -> (Type L)-happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut83 #-}-happyIn84 :: (Maybe (BooleanFormula L)) -> (HappyAbsSyn )-happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn84 #-}-happyOut84 :: (HappyAbsSyn ) -> (Maybe (BooleanFormula L))-happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut84 #-}-happyIn85 :: (BooleanFormula L) -> (HappyAbsSyn )-happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn85 #-}-happyOut85 :: (HappyAbsSyn ) -> (BooleanFormula L)-happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut85 #-}-happyIn86 :: (BooleanFormula L) -> (HappyAbsSyn )-happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn86 #-}-happyOut86 :: (HappyAbsSyn ) -> (BooleanFormula L)-happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut86 #-}-happyIn87 :: (BooleanFormula L) -> (HappyAbsSyn )-happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn87 #-}-happyOut87 :: (HappyAbsSyn ) -> (BooleanFormula L)-happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut87 #-}-happyIn88 :: (Binds L) -> (HappyAbsSyn )-happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn88 #-}-happyOut88 :: (HappyAbsSyn ) -> (Binds L)-happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut88 #-}-happyIn89 :: (([Name L],[S],L)) -> (HappyAbsSyn )-happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn89 #-}-happyOut89 :: (HappyAbsSyn ) -> (([Name L],[S],L))-happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut89 #-}-happyIn90 :: (CallConv L) -> (HappyAbsSyn )-happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn90 #-}-happyOut90 :: (HappyAbsSyn ) -> (CallConv L)-happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut90 #-}-happyIn91 :: (Maybe (Safety L)) -> (HappyAbsSyn )-happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn91 #-}-happyOut91 :: (HappyAbsSyn ) -> (Maybe (Safety L))-happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut91 #-}-happyIn92 :: ((Maybe String, Name L, Type L, [S])) -> (HappyAbsSyn )-happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn92 #-}-happyOut92 :: (HappyAbsSyn ) -> ((Maybe String, Name L, Type L, [S]))-happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut92 #-}-happyIn93 :: ([Rule L]) -> (HappyAbsSyn )-happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn93 #-}-happyOut93 :: (HappyAbsSyn ) -> ([Rule L])-happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut93 #-}-happyIn94 :: (Rule L) -> (HappyAbsSyn )-happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn94 #-}-happyOut94 :: (HappyAbsSyn ) -> (Rule L)-happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut94 #-}-happyIn95 :: (Maybe (Activation L)) -> (HappyAbsSyn )-happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn95 #-}-happyOut95 :: (HappyAbsSyn ) -> (Maybe (Activation L))-happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut95 #-}-happyIn96 :: ((Maybe [RuleVar L],[S])) -> (HappyAbsSyn )-happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn96 #-}-happyOut96 :: (HappyAbsSyn ) -> ((Maybe [RuleVar L],[S]))-happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut96 #-}-happyIn97 :: ([RuleVar L]) -> (HappyAbsSyn )-happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn97 #-}-happyOut97 :: (HappyAbsSyn ) -> ([RuleVar L])-happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut97 #-}-happyIn98 :: (RuleVar L) -> (HappyAbsSyn )-happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn98 #-}-happyOut98 :: (HappyAbsSyn ) -> (RuleVar L)-happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut98 #-}-happyIn99 :: (([([Name L],String)],[S])) -> (HappyAbsSyn )-happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn99 #-}-happyOut99 :: (HappyAbsSyn ) -> (([([Name L],String)],[S]))-happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut99 #-}-happyIn100 :: ((([Name L], String),[S])) -> (HappyAbsSyn )-happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn100 #-}-happyOut100 :: (HappyAbsSyn ) -> ((([Name L], String),[S]))-happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut100 #-}-happyIn101 :: (([Name L],[S])) -> (HappyAbsSyn )-happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn101 #-}-happyOut101 :: (HappyAbsSyn ) -> (([Name L],[S]))-happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut101 #-}-happyIn102 :: (Name L) -> (HappyAbsSyn )-happyIn102 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn102 #-}-happyOut102 :: (HappyAbsSyn ) -> (Name L)-happyOut102 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut102 #-}-happyIn103 :: (Annotation L) -> (HappyAbsSyn )-happyIn103 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn103 #-}-happyOut103 :: (HappyAbsSyn ) -> (Annotation L)-happyOut103 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut103 #-}-happyIn104 :: (Type L) -> (HappyAbsSyn )-happyIn104 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn104 #-}-happyOut104 :: (HappyAbsSyn ) -> (Type L)-happyOut104 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut104 #-}-happyIn105 :: (PType L) -> (HappyAbsSyn )-happyIn105 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn105 #-}-happyOut105 :: (HappyAbsSyn ) -> (PType L)-happyOut105 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut105 #-}-happyIn106 :: (Type L) -> (HappyAbsSyn )-happyIn106 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn106 #-}-happyOut106 :: (HappyAbsSyn ) -> (Type L)-happyOut106 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut106 #-}-happyIn107 :: (PType L) -> (HappyAbsSyn )-happyIn107 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn107 #-}-happyOut107 :: (HappyAbsSyn ) -> (PType L)-happyOut107 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut107 #-}-happyIn108 :: (Type L) -> (HappyAbsSyn )-happyIn108 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn108 #-}-happyOut108 :: (HappyAbsSyn ) -> (Type L)-happyOut108 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut108 #-}-happyIn109 :: (Type L) -> (HappyAbsSyn )-happyIn109 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn109 #-}-happyOut109 :: (HappyAbsSyn ) -> (Type L)-happyOut109 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut109 #-}-happyIn110 :: (PType L) -> (HappyAbsSyn )-happyIn110 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn110 #-}-happyOut110 :: (HappyAbsSyn ) -> (PType L)-happyOut110 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut110 #-}-happyIn111 :: (PType L) -> (HappyAbsSyn )-happyIn111 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn111 #-}-happyOut111 :: (HappyAbsSyn ) -> (PType L)-happyOut111 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut111 #-}-happyIn112 :: (Promoted L) -> (HappyAbsSyn )-happyIn112 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn112 #-}-happyOut112 :: (HappyAbsSyn ) -> (Promoted L)-happyOut112 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut112 #-}-happyIn113 :: ((Maybe (L -> BangType L,S), Maybe (Unpackedness L))) -> (HappyAbsSyn )-happyIn113 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn113 #-}-happyOut113 :: (HappyAbsSyn ) -> ((Maybe (L -> BangType L,S), Maybe (Unpackedness L)))-happyOut113 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut113 #-}-happyIn114 :: ((L -> BangType L, S)) -> (HappyAbsSyn )-happyIn114 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn114 #-}-happyOut114 :: (HappyAbsSyn ) -> ((L -> BangType L, S))-happyOut114 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut114 #-}-happyIn115 :: (Unpackedness L) -> (HappyAbsSyn )-happyIn115 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn115 #-}-happyOut115 :: (HappyAbsSyn ) -> (Unpackedness L)-happyOut115 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut115 #-}-happyIn116 :: (QName L) -> (HappyAbsSyn )-happyIn116 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn116 #-}-happyOut116 :: (HappyAbsSyn ) -> (QName L)-happyOut116 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut116 #-}-happyIn117 :: (QName L) -> (HappyAbsSyn )-happyIn117 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn117 #-}-happyOut117 :: (HappyAbsSyn ) -> (QName L)-happyOut117 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut117 #-}-happyIn118 :: (MaybePromotedName L) -> (HappyAbsSyn )-happyIn118 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn118 #-}-happyOut118 :: (HappyAbsSyn ) -> (MaybePromotedName L)-happyOut118 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut118 #-}-happyIn119 :: (Type L) -> (HappyAbsSyn )-happyIn119 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn119 #-}-happyOut119 :: (HappyAbsSyn ) -> (Type L)-happyOut119 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut119 #-}-happyIn120 :: (PType L) -> (HappyAbsSyn )-happyIn120 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn120 #-}-happyOut120 :: (HappyAbsSyn ) -> (PType L)-happyOut120 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut120 #-}-happyIn121 :: (PContext L) -> (HappyAbsSyn )-happyIn121 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn121 #-}-happyOut121 :: (HappyAbsSyn ) -> (PContext L)-happyOut121 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut121 #-}-happyIn122 :: (([PType L],[S])) -> (HappyAbsSyn )-happyIn122 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn122 #-}-happyOut122 :: (HappyAbsSyn ) -> (([PType L],[S]))-happyOut122 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut122 #-}-happyIn123 :: (([PType L],[S])) -> (HappyAbsSyn )-happyIn123 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn123 #-}-happyOut123 :: (HappyAbsSyn ) -> (([PType L],[S]))-happyOut123 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut123 #-}-happyIn124 :: (([PType L],[S])) -> (HappyAbsSyn )-happyIn124 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn124 #-}-happyOut124 :: (HappyAbsSyn ) -> (([PType L],[S]))-happyOut124 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut124 #-}-happyIn125 :: (([TyVarBind L],Maybe L)) -> (HappyAbsSyn )-happyIn125 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn125 #-}-happyOut125 :: (HappyAbsSyn ) -> (([TyVarBind L],Maybe L))-happyOut125 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut125 #-}-happyIn126 :: (TyVarBind L) -> (HappyAbsSyn )-happyIn126 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn126 #-}-happyOut126 :: (HappyAbsSyn ) -> (TyVarBind L)-happyOut126 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut126 #-}-happyIn127 :: (([Name L],Maybe L)) -> (HappyAbsSyn )-happyIn127 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn127 #-}-happyOut127 :: (HappyAbsSyn ) -> (([Name L],Maybe L))-happyOut127 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut127 #-}-happyIn128 :: (([Name L],L)) -> (HappyAbsSyn )-happyIn128 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn128 #-}-happyOut128 :: (HappyAbsSyn ) -> (([Name L],L))-happyOut128 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut128 #-}-happyIn129 :: (([FunDep L],[S],Maybe L)) -> (HappyAbsSyn )-happyIn129 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn129 #-}-happyOut129 :: (HappyAbsSyn ) -> (([FunDep L],[S],Maybe L))-happyOut129 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut129 #-}-happyIn130 :: (([FunDep L],[S],L)) -> (HappyAbsSyn )-happyIn130 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn130 #-}-happyOut130 :: (HappyAbsSyn ) -> (([FunDep L],[S],L))-happyOut130 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut130 #-}-happyIn131 :: (FunDep L) -> (HappyAbsSyn )-happyIn131 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn131 #-}-happyOut131 :: (HappyAbsSyn ) -> (FunDep L)-happyOut131 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut131 #-}-happyIn132 :: (([GadtDecl L],[S],Maybe L)) -> (HappyAbsSyn )-happyIn132 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn132 #-}-happyOut132 :: (HappyAbsSyn ) -> (([GadtDecl L],[S],Maybe L))-happyOut132 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut132 #-}-happyIn133 :: (([GadtDecl L],[S])) -> (HappyAbsSyn )-happyIn133 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn133 #-}-happyOut133 :: (HappyAbsSyn ) -> (([GadtDecl L],[S]))-happyOut133 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut133 #-}-happyIn134 :: (([GadtDecl L],[S])) -> (HappyAbsSyn )-happyIn134 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn134 #-}-happyOut134 :: (HappyAbsSyn ) -> (([GadtDecl L],[S]))-happyOut134 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut134 #-}-happyIn135 :: ([GadtDecl L]) -> (HappyAbsSyn )-happyIn135 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn135 #-}-happyOut135 :: (HappyAbsSyn ) -> ([GadtDecl L])-happyOut135 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut135 #-}-happyIn136 :: (([QualConDecl L],[S],Maybe L)) -> (HappyAbsSyn )-happyIn136 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn136 #-}-happyOut136 :: (HappyAbsSyn ) -> (([QualConDecl L],[S],Maybe L))-happyOut136 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut136 #-}-happyIn137 :: (([QualConDecl L],[S],L)) -> (HappyAbsSyn )-happyIn137 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn137 #-}-happyOut137 :: (HappyAbsSyn ) -> (([QualConDecl L],[S],L))-happyOut137 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut137 #-}-happyIn138 :: (QualConDecl L) -> (HappyAbsSyn )-happyIn138 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn138 #-}-happyOut138 :: (HappyAbsSyn ) -> (QualConDecl L)-happyOut138 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut138 #-}-happyIn139 :: ((Maybe [TyVarBind L], [S], Maybe L)) -> (HappyAbsSyn )-happyIn139 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn139 #-}-happyOut139 :: (HappyAbsSyn ) -> ((Maybe [TyVarBind L], [S], Maybe L))-happyOut139 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut139 #-}-happyIn140 :: (ConDecl L) -> (HappyAbsSyn )-happyIn140 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn140 #-}-happyOut140 :: (HappyAbsSyn ) -> (ConDecl L)-happyOut140 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut140 #-}-happyIn141 :: ((Name L, [Type L], L)) -> (HappyAbsSyn )-happyIn141 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn141 #-}-happyOut141 :: (HappyAbsSyn ) -> ((Name L, [Type L], L))-happyOut141 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut141 #-}-happyIn142 :: (([FieldDecl L],[S])) -> (HappyAbsSyn )-happyIn142 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn142 #-}-happyOut142 :: (HappyAbsSyn ) -> (([FieldDecl L],[S]))-happyOut142 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut142 #-}-happyIn143 :: (FieldDecl L) -> (HappyAbsSyn )-happyIn143 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn143 #-}-happyOut143 :: (HappyAbsSyn ) -> (FieldDecl L)-happyOut143 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut143 #-}-happyIn144 :: ([Deriving L]) -> (HappyAbsSyn )-happyIn144 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn144 #-}-happyOut144 :: (HappyAbsSyn ) -> ([Deriving L])-happyOut144 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut144 #-}-happyIn145 :: ([Deriving L]) -> (HappyAbsSyn )-happyIn145 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn145 #-}-happyOut145 :: (HappyAbsSyn ) -> ([Deriving L])-happyOut145 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut145 #-}-happyIn146 :: (Deriving L) -> (HappyAbsSyn )-happyIn146 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn146 #-}-happyOut146 :: (HappyAbsSyn ) -> (Deriving L)-happyOut146 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut146 #-}-happyIn147 :: (([InstRule L],[S])) -> (HappyAbsSyn )-happyIn147 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn147 #-}-happyOut147 :: (HappyAbsSyn ) -> (([InstRule L],[S]))-happyOut147 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut147 #-}-happyIn148 :: (InstHead L) -> (HappyAbsSyn )-happyIn148 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn148 #-}-happyOut148 :: (HappyAbsSyn ) -> (InstHead L)-happyOut148 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut148 #-}-happyIn149 :: (Kind L) -> (HappyAbsSyn )-happyIn149 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn149 #-}-happyOut149 :: (HappyAbsSyn ) -> (Kind L)-happyOut149 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut149 #-}-happyIn150 :: (Kind L) -> (HappyAbsSyn )-happyIn150 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn150 #-}-happyOut150 :: (HappyAbsSyn ) -> (Kind L)-happyOut150 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut150 #-}-happyIn151 :: (Kind L) -> (HappyAbsSyn )-happyIn151 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn151 #-}-happyOut151 :: (HappyAbsSyn ) -> (Kind L)-happyOut151 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut151 #-}-happyIn152 :: (Kind L) -> (HappyAbsSyn )-happyIn152 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn152 #-}-happyOut152 :: (HappyAbsSyn ) -> (Kind L)-happyOut152 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut152 #-}-happyIn153 :: (Kind L) -> (HappyAbsSyn )-happyIn153 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn153 #-}-happyOut153 :: (HappyAbsSyn ) -> (Kind L)-happyOut153 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut153 #-}-happyIn154 :: (([Kind L], [S])) -> (HappyAbsSyn )-happyIn154 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn154 #-}-happyOut154 :: (HappyAbsSyn ) -> (([Kind L], [S]))-happyOut154 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut154 #-}-happyIn155 :: ((Maybe (Kind L), [S])) -> (HappyAbsSyn )-happyIn155 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn155 #-}-happyOut155 :: (HappyAbsSyn ) -> ((Maybe (Kind L), [S]))-happyOut155 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut155 #-}-happyIn156 :: (Maybe ( S, QName L )) -> (HappyAbsSyn )-happyIn156 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn156 #-}-happyOut156 :: (HappyAbsSyn ) -> (Maybe ( S, QName L ))-happyOut156 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut156 #-}-happyIn157 :: ((Maybe [ClassDecl L],[S],Maybe L)) -> (HappyAbsSyn )-happyIn157 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn157 #-}-happyOut157 :: (HappyAbsSyn ) -> ((Maybe [ClassDecl L],[S],Maybe L))-happyOut157 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut157 #-}-happyIn158 :: (([ClassDecl L],[S])) -> (HappyAbsSyn )-happyIn158 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn158 #-}-happyOut158 :: (HappyAbsSyn ) -> (([ClassDecl L],[S]))-happyOut158 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut158 #-}-happyIn159 :: (([ClassDecl L],[S])) -> (HappyAbsSyn )-happyIn159 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn159 #-}-happyOut159 :: (HappyAbsSyn ) -> (([ClassDecl L],[S]))-happyOut159 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut159 #-}-happyIn160 :: (ClassDecl L) -> (HappyAbsSyn )-happyIn160 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn160 #-}-happyOut160 :: (HappyAbsSyn ) -> (ClassDecl L)-happyOut160 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut160 #-}-happyIn161 :: ([S]) -> (HappyAbsSyn )-happyIn161 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn161 #-}-happyOut161 :: (HappyAbsSyn ) -> ([S])-happyOut161 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut161 #-}-happyIn162 :: (ClassDecl L) -> (HappyAbsSyn )-happyIn162 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn162 #-}-happyOut162 :: (HappyAbsSyn ) -> (ClassDecl L)-happyOut162 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut162 #-}-happyIn163 :: ((Maybe [InstDecl L],[S],Maybe L)) -> (HappyAbsSyn )-happyIn163 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn163 #-}-happyOut163 :: (HappyAbsSyn ) -> ((Maybe [InstDecl L],[S],Maybe L))-happyOut163 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut163 #-}-happyIn164 :: (([InstDecl L],[S])) -> (HappyAbsSyn )-happyIn164 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn164 #-}-happyOut164 :: (HappyAbsSyn ) -> (([InstDecl L],[S]))-happyOut164 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut164 #-}-happyIn165 :: (([InstDecl L],[S])) -> (HappyAbsSyn )-happyIn165 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn165 #-}-happyOut165 :: (HappyAbsSyn ) -> (([InstDecl L],[S]))-happyOut165 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut165 #-}-happyIn166 :: (InstDecl L) -> (HappyAbsSyn )-happyIn166 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn166 #-}-happyOut166 :: (HappyAbsSyn ) -> (InstDecl L)-happyOut166 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut166 #-}-happyIn167 :: (InstDecl L) -> (HappyAbsSyn )-happyIn167 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn167 #-}-happyOut167 :: (HappyAbsSyn ) -> (InstDecl L)-happyOut167 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut167 #-}-happyIn168 :: (Decl L) -> (HappyAbsSyn )-happyIn168 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn168 #-}-happyOut168 :: (HappyAbsSyn ) -> (Decl L)-happyOut168 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut168 #-}-happyIn169 :: ((Maybe (Binds L),[S])) -> (HappyAbsSyn )-happyIn169 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn169 #-}-happyOut169 :: (HappyAbsSyn ) -> ((Maybe (Binds L),[S]))-happyOut169 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut169 #-}-happyIn170 :: ((Maybe (Type L, S))) -> (HappyAbsSyn )-happyIn170 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn170 #-}-happyOut170 :: (HappyAbsSyn ) -> ((Maybe (Type L, S)))-happyOut170 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut170 #-}-happyIn171 :: (Rhs L) -> (HappyAbsSyn )-happyIn171 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn171 #-}-happyOut171 :: (HappyAbsSyn ) -> (Rhs L)-happyOut171 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut171 #-}-happyIn172 :: (([GuardedRhs L],L)) -> (HappyAbsSyn )-happyIn172 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn172 #-}-happyOut172 :: (HappyAbsSyn ) -> (([GuardedRhs L],L))-happyOut172 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut172 #-}-happyIn173 :: (GuardedRhs L) -> (HappyAbsSyn )-happyIn173 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn173 #-}-happyOut173 :: (HappyAbsSyn ) -> (GuardedRhs L)-happyOut173 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut173 #-}-happyIn174 :: (Exp L) -> (HappyAbsSyn )-happyIn174 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn174 #-}-happyOut174 :: (HappyAbsSyn ) -> (Exp 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 :: (PExp L) -> (HappyAbsSyn )-happyIn178 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn178 #-}-happyOut178 :: (HappyAbsSyn ) -> (PExp L)-happyOut178 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut178 #-}-happyIn179 :: (PExp L) -> (HappyAbsSyn )-happyIn179 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn179 #-}-happyOut179 :: (HappyAbsSyn ) -> (PExp L)-happyOut179 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut179 #-}-happyIn180 :: ([S]) -> (HappyAbsSyn )-happyIn180 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn180 #-}-happyOut180 :: (HappyAbsSyn ) -> ([S])-happyOut180 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut180 #-}-happyIn181 :: ([S]) -> (HappyAbsSyn )-happyIn181 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn181 #-}-happyOut181 :: (HappyAbsSyn ) -> ([S])-happyOut181 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut181 #-}-happyIn182 :: (PExp L) -> (HappyAbsSyn )-happyIn182 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn182 #-}-happyOut182 :: (HappyAbsSyn ) -> (PExp L)-happyOut182 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut182 #-}-happyIn183 :: (PExp L) -> (HappyAbsSyn )-happyIn183 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn183 #-}-happyOut183 :: (HappyAbsSyn ) -> (PExp L)-happyOut183 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut183 #-}-happyIn184 :: (PExp L) -> (HappyAbsSyn )-happyIn184 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn184 #-}-happyOut184 :: (HappyAbsSyn ) -> (PExp L)-happyOut184 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut184 #-}-happyIn185 :: ([Pat L]) -> (HappyAbsSyn )-happyIn185 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn185 #-}-happyOut185 :: (HappyAbsSyn ) -> ([Pat L])-happyOut185 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut185 #-}-happyIn186 :: (Pat L) -> (HappyAbsSyn )-happyIn186 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn186 #-}-happyOut186 :: (HappyAbsSyn ) -> (Pat L)-happyOut186 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut186 #-}-happyIn187 :: (PExp L) -> (HappyAbsSyn )-happyIn187 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn187 #-}-happyOut187 :: (HappyAbsSyn ) -> (PExp L)-happyOut187 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut187 #-}-happyIn188 :: (PExp L) -> (HappyAbsSyn )-happyIn188 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn188 #-}-happyOut188 :: (HappyAbsSyn ) -> (PExp L)-happyOut188 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut188 #-}-happyIn189 :: (PExp L) -> (HappyAbsSyn )-happyIn189 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn189 #-}-happyOut189 :: (HappyAbsSyn ) -> (PExp L)-happyOut189 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut189 #-}-happyIn190 :: (([S], SumOrTuple L)) -> (HappyAbsSyn )-happyIn190 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn190 #-}-happyOut190 :: (HappyAbsSyn ) -> (([S], SumOrTuple L))-happyOut190 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut190 #-}-happyIn191 :: (([S], [Maybe (PExp L)])) -> (HappyAbsSyn )-happyIn191 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn191 #-}-happyOut191 :: (HappyAbsSyn ) -> (([S], [Maybe (PExp L)]))-happyOut191 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut191 #-}-happyIn192 :: (([S], [Maybe (PExp L)])) -> (HappyAbsSyn )-happyIn192 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn192 #-}-happyOut192 :: (HappyAbsSyn ) -> (([S], [Maybe (PExp L)]))-happyOut192 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut192 #-}-happyIn193 :: ([S]) -> (HappyAbsSyn )-happyIn193 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn193 #-}-happyOut193 :: (HappyAbsSyn ) -> ([S])-happyOut193 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut193 #-}-happyIn194 :: ([S]) -> (HappyAbsSyn )-happyIn194 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn194 #-}-happyOut194 :: (HappyAbsSyn ) -> ([S])-happyOut194 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut194 #-}-happyIn195 :: ([S]) -> (HappyAbsSyn )-happyIn195 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn195 #-}-happyOut195 :: (HappyAbsSyn ) -> ([S])-happyOut195 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut195 #-}-happyIn196 :: (PExp L) -> (HappyAbsSyn )-happyIn196 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn196 #-}-happyOut196 :: (HappyAbsSyn ) -> (PExp L)-happyOut196 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut196 #-}-happyIn197 :: (([PExp L],[S])) -> (HappyAbsSyn )-happyIn197 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn197 #-}-happyOut197 :: (HappyAbsSyn ) -> (([PExp L],[S]))-happyOut197 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut197 #-}-happyIn198 :: (PExp L) -> (HappyAbsSyn )-happyIn198 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn198 #-}-happyOut198 :: (HappyAbsSyn ) -> (PExp L)-happyOut198 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut198 #-}-happyIn199 :: (PExp L) -> (HappyAbsSyn )-happyIn199 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn199 #-}-happyOut199 :: (HappyAbsSyn ) -> (PExp L)-happyOut199 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut199 #-}-happyIn200 :: ([PExp L]) -> (HappyAbsSyn )-happyIn200 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn200 #-}-happyOut200 :: (HappyAbsSyn ) -> ([PExp L])-happyOut200 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut200 #-}-happyIn201 :: (PExp L) -> (HappyAbsSyn )-happyIn201 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn201 #-}-happyOut201 :: (HappyAbsSyn ) -> (PExp L)-happyOut201 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut201 #-}-happyIn202 :: (XName L) -> (HappyAbsSyn )-happyIn202 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn202 #-}-happyOut202 :: (HappyAbsSyn ) -> (XName L)-happyOut202 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut202 #-}-happyIn203 :: (Loc String) -> (HappyAbsSyn )-happyIn203 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn203 #-}-happyOut203 :: (HappyAbsSyn ) -> (Loc String)-happyOut203 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut203 #-}-happyIn204 :: (Loc String) -> (HappyAbsSyn )-happyIn204 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn204 #-}-happyOut204 :: (HappyAbsSyn ) -> (Loc String)-happyOut204 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut204 #-}-happyIn205 :: ([ParseXAttr L]) -> (HappyAbsSyn )-happyIn205 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn205 #-}-happyOut205 :: (HappyAbsSyn ) -> ([ParseXAttr L])-happyOut205 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut205 #-}-happyIn206 :: (ParseXAttr L) -> (HappyAbsSyn )-happyIn206 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn206 #-}-happyOut206 :: (HappyAbsSyn ) -> (ParseXAttr L)-happyOut206 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut206 #-}-happyIn207 :: (Maybe (PExp L)) -> (HappyAbsSyn )-happyIn207 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn207 #-}-happyOut207 :: (HappyAbsSyn ) -> (Maybe (PExp L))-happyOut207 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut207 #-}-happyIn208 :: (L -> PExp L) -> (HappyAbsSyn )-happyIn208 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn208 #-}-happyOut208 :: (HappyAbsSyn ) -> (L -> PExp L)-happyOut208 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut208 #-}-happyIn209 :: (([PExp L],[S])) -> (HappyAbsSyn )-happyIn209 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn209 #-}-happyOut209 :: (HappyAbsSyn ) -> (([PExp L],[S]))-happyOut209 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut209 #-}-happyIn210 :: (([[QualStmt L]],[S])) -> (HappyAbsSyn )-happyIn210 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn210 #-}-happyOut210 :: (HappyAbsSyn ) -> (([[QualStmt L]],[S]))-happyOut210 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut210 #-}-happyIn211 :: (([QualStmt L],[S])) -> (HappyAbsSyn )-happyIn211 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn211 #-}-happyOut211 :: (HappyAbsSyn ) -> (([QualStmt L],[S]))-happyOut211 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut211 #-}-happyIn212 :: (QualStmt L) -> (HappyAbsSyn )-happyIn212 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn212 #-}-happyOut212 :: (HappyAbsSyn ) -> (QualStmt L)-happyOut212 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut212 #-}-happyIn213 :: (QualStmt L) -> (HappyAbsSyn )-happyIn213 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn213 #-}-happyOut213 :: (HappyAbsSyn ) -> (QualStmt L)-happyOut213 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut213 #-}-happyIn214 :: (([Stmt L],[S])) -> (HappyAbsSyn )-happyIn214 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn214 #-}-happyOut214 :: (HappyAbsSyn ) -> (([Stmt L],[S]))-happyOut214 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut214 #-}-happyIn215 :: (Stmt L) -> (HappyAbsSyn )-happyIn215 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn215 #-}-happyOut215 :: (HappyAbsSyn ) -> (Stmt L)-happyOut215 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut215 #-}-happyIn216 :: (L -> PExp L) -> (HappyAbsSyn )-happyIn216 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn216 #-}-happyOut216 :: (HappyAbsSyn ) -> (L -> PExp L)-happyOut216 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut216 #-}-happyIn217 :: (([Alt L],L,[S])) -> (HappyAbsSyn )-happyIn217 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn217 #-}-happyOut217 :: (HappyAbsSyn ) -> (([Alt L],L,[S]))-happyOut217 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut217 #-}-happyIn218 :: (([Alt L],[S])) -> (HappyAbsSyn )-happyIn218 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn218 #-}-happyOut218 :: (HappyAbsSyn ) -> (([Alt L],[S]))-happyOut218 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut218 #-}-happyIn219 :: (([Alt L],[S])) -> (HappyAbsSyn )-happyIn219 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn219 #-}-happyOut219 :: (HappyAbsSyn ) -> (([Alt L],[S]))-happyOut219 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut219 #-}-happyIn220 :: (Alt L) -> (HappyAbsSyn )-happyIn220 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn220 #-}-happyOut220 :: (HappyAbsSyn ) -> (Alt L)-happyOut220 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut220 #-}-happyIn221 :: (Rhs L) -> (HappyAbsSyn )-happyIn221 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn221 #-}-happyOut221 :: (HappyAbsSyn ) -> (Rhs L)-happyOut221 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut221 #-}-happyIn222 :: (([GuardedRhs L],L)) -> (HappyAbsSyn )-happyIn222 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn222 #-}-happyOut222 :: (HappyAbsSyn ) -> (([GuardedRhs L],L))-happyOut222 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut222 #-}-happyIn223 :: (GuardedRhs L) -> (HappyAbsSyn )-happyIn223 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn223 #-}-happyOut223 :: (HappyAbsSyn ) -> (GuardedRhs L)-happyOut223 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut223 #-}-happyIn224 :: (Pat L) -> (HappyAbsSyn )-happyIn224 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn224 #-}-happyOut224 :: (HappyAbsSyn ) -> (Pat L)-happyOut224 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut224 #-}-happyIn225 :: (([GuardedRhs L], L, [S])) -> (HappyAbsSyn )-happyIn225 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn225 #-}-happyOut225 :: (HappyAbsSyn ) -> (([GuardedRhs L], L, [S]))-happyOut225 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut225 #-}-happyIn226 :: (([GuardedRhs L], [S])) -> (HappyAbsSyn )-happyIn226 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn226 #-}-happyOut226 :: (HappyAbsSyn ) -> (([GuardedRhs L], [S]))-happyOut226 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut226 #-}-happyIn227 :: (([GuardedRhs L], [S])) -> (HappyAbsSyn )-happyIn227 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn227 #-}-happyOut227 :: (HappyAbsSyn ) -> (([GuardedRhs L], [S]))-happyOut227 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut227 #-}-happyIn228 :: (([Stmt L],L,[S])) -> (HappyAbsSyn )-happyIn228 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn228 #-}-happyOut228 :: (HappyAbsSyn ) -> (([Stmt L],L,[S]))-happyOut228 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut228 #-}-happyIn229 :: (([Stmt L],[S])) -> (HappyAbsSyn )-happyIn229 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn229 #-}-happyOut229 :: (HappyAbsSyn ) -> (([Stmt L],[S]))-happyOut229 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut229 #-}-happyIn230 :: (([Stmt L],[S])) -> (HappyAbsSyn )-happyIn230 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn230 #-}-happyOut230 :: (HappyAbsSyn ) -> (([Stmt L],[S]))-happyOut230 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut230 #-}-happyIn231 :: (Stmt L) -> (HappyAbsSyn )-happyIn231 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn231 #-}-happyOut231 :: (HappyAbsSyn ) -> (Stmt L)-happyOut231 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut231 #-}-happyIn232 :: (([PFieldUpdate L],[S])) -> (HappyAbsSyn )-happyIn232 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn232 #-}-happyOut232 :: (HappyAbsSyn ) -> (([PFieldUpdate L],[S]))-happyOut232 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut232 #-}-happyIn233 :: (PFieldUpdate L) -> (HappyAbsSyn )-happyIn233 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn233 #-}-happyOut233 :: (HappyAbsSyn ) -> (PFieldUpdate L)-happyOut233 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut233 #-}-happyIn234 :: (([IPBind L],[S])) -> (HappyAbsSyn )-happyIn234 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn234 #-}-happyOut234 :: (HappyAbsSyn ) -> (([IPBind L],[S]))-happyOut234 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut234 #-}-happyIn235 :: (([IPBind L],[S])) -> (HappyAbsSyn )-happyIn235 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn235 #-}-happyOut235 :: (HappyAbsSyn ) -> (([IPBind L],[S]))-happyOut235 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut235 #-}-happyIn236 :: (IPBind L) -> (HappyAbsSyn )-happyIn236 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn236 #-}-happyOut236 :: (HappyAbsSyn ) -> (IPBind L)-happyOut236 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut236 #-}-happyIn237 :: (PExp L) -> (HappyAbsSyn )-happyIn237 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn237 #-}-happyOut237 :: (HappyAbsSyn ) -> (PExp L)-happyOut237 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut237 #-}-happyIn238 :: (PExp L) -> (HappyAbsSyn )-happyIn238 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn238 #-}-happyOut238 :: (HappyAbsSyn ) -> (PExp L)-happyOut238 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut238 #-}-happyIn239 :: (PExp L) -> (HappyAbsSyn )-happyIn239 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn239 #-}-happyOut239 :: (HappyAbsSyn ) -> (PExp L)-happyOut239 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut239 #-}-happyIn240 :: (PExp L) -> (HappyAbsSyn )-happyIn240 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn240 #-}-happyOut240 :: (HappyAbsSyn ) -> (PExp L)-happyOut240 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut240 #-}-happyIn241 :: (Name L) -> (HappyAbsSyn )-happyIn241 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn241 #-}-happyOut241 :: (HappyAbsSyn ) -> (Name L)-happyOut241 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut241 #-}-happyIn242 :: (Name L) -> (HappyAbsSyn )-happyIn242 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn242 #-}-happyOut242 :: (HappyAbsSyn ) -> (Name L)-happyOut242 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut242 #-}-happyIn243 :: (QName L) -> (HappyAbsSyn )-happyIn243 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn243 #-}-happyOut243 :: (HappyAbsSyn ) -> (QName L)-happyOut243 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut243 #-}-happyIn244 :: (IPName L) -> (HappyAbsSyn )-happyIn244 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn244 #-}-happyOut244 :: (HappyAbsSyn ) -> (IPName L)-happyOut244 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut244 #-}-happyIn245 :: (Name L) -> (HappyAbsSyn )-happyIn245 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn245 #-}-happyOut245 :: (HappyAbsSyn ) -> (Name L)-happyOut245 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut245 #-}-happyIn246 :: (([S], [Name L])) -> (HappyAbsSyn )-happyIn246 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn246 #-}-happyOut246 :: (HappyAbsSyn ) -> (([S], [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 :: (QName L) -> (HappyAbsSyn )-happyIn249 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn249 #-}-happyOut249 :: (HappyAbsSyn ) -> (QName 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 #-}-happyIn252 :: (QName L) -> (HappyAbsSyn )-happyIn252 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn252 #-}-happyOut252 :: (HappyAbsSyn ) -> (QName L)-happyOut252 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut252 #-}-happyIn253 :: (Op L) -> (HappyAbsSyn )-happyIn253 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn253 #-}-happyOut253 :: (HappyAbsSyn ) -> (Op L)-happyOut253 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut253 #-}-happyIn254 :: (QOp L) -> (HappyAbsSyn )-happyIn254 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn254 #-}-happyOut254 :: (HappyAbsSyn ) -> (QOp L)-happyOut254 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut254 #-}-happyIn255 :: (QOp L) -> (HappyAbsSyn )-happyIn255 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn255 #-}-happyOut255 :: (HappyAbsSyn ) -> (QOp L)-happyOut255 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut255 #-}-happyIn256 :: (QName L) -> (HappyAbsSyn )-happyIn256 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn256 #-}-happyOut256 :: (HappyAbsSyn ) -> (QName L)-happyOut256 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut256 #-}-happyIn257 :: (PExp L) -> (HappyAbsSyn )-happyIn257 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn257 #-}-happyOut257 :: (HappyAbsSyn ) -> (PExp L)-happyOut257 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut257 #-}-happyIn258 :: (QName L) -> (HappyAbsSyn )-happyIn258 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn258 #-}-happyOut258 :: (HappyAbsSyn ) -> (QName L)-happyOut258 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut258 #-}-happyIn259 :: (Name L) -> (HappyAbsSyn )-happyIn259 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn259 #-}-happyOut259 :: (HappyAbsSyn ) -> (Name L)-happyOut259 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut259 #-}-happyIn260 :: (Name L) -> (HappyAbsSyn )-happyIn260 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn260 #-}-happyOut260 :: (HappyAbsSyn ) -> (Name L)-happyOut260 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut260 #-}-happyIn261 :: (IPName L) -> (HappyAbsSyn )-happyIn261 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn261 #-}-happyOut261 :: (HappyAbsSyn ) -> (IPName L)-happyOut261 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut261 #-}-happyIn262 :: (QName L) -> (HappyAbsSyn )-happyIn262 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn262 #-}-happyOut262 :: (HappyAbsSyn ) -> (QName L)-happyOut262 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut262 #-}-happyIn263 :: (Name L) -> (HappyAbsSyn )-happyIn263 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn263 #-}-happyOut263 :: (HappyAbsSyn ) -> (Name L)-happyOut263 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut263 #-}-happyIn264 :: (QName L) -> (HappyAbsSyn )-happyIn264 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn264 #-}-happyOut264 :: (HappyAbsSyn ) -> (QName L)-happyOut264 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut264 #-}-happyIn265 :: (Name L) -> (HappyAbsSyn )-happyIn265 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn265 #-}-happyOut265 :: (HappyAbsSyn ) -> (Name L)-happyOut265 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut265 #-}-happyIn266 :: (QName L) -> (HappyAbsSyn )-happyIn266 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn266 #-}-happyOut266 :: (HappyAbsSyn ) -> (QName L)-happyOut266 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut266 #-}-happyIn267 :: (QName L) -> (HappyAbsSyn )-happyIn267 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn267 #-}-happyOut267 :: (HappyAbsSyn ) -> (QName L)-happyOut267 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut267 #-}-happyIn268 :: (Name L) -> (HappyAbsSyn )-happyIn268 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn268 #-}-happyOut268 :: (HappyAbsSyn ) -> (Name L)-happyOut268 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut268 #-}-happyIn269 :: (Name L) -> (HappyAbsSyn )-happyIn269 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn269 #-}-happyOut269 :: (HappyAbsSyn ) -> (Name L)-happyOut269 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut269 #-}-happyIn270 :: (QName L) -> (HappyAbsSyn )-happyIn270 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn270 #-}-happyOut270 :: (HappyAbsSyn ) -> (QName L)-happyOut270 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut270 #-}-happyIn271 :: (Literal L) -> (HappyAbsSyn )-happyIn271 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn271 #-}-happyOut271 :: (HappyAbsSyn ) -> (Literal L)-happyOut271 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut271 #-}-happyIn272 :: (S) -> (HappyAbsSyn )-happyIn272 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn272 #-}-happyOut272 :: (HappyAbsSyn ) -> (S)-happyOut272 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut272 #-}-happyIn273 :: (S) -> (HappyAbsSyn )-happyIn273 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn273 #-}-happyOut273 :: (HappyAbsSyn ) -> (S)-happyOut273 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut273 #-}-happyIn274 :: (Decl L) -> (HappyAbsSyn )-happyIn274 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn274 #-}-happyOut274 :: (HappyAbsSyn ) -> (Decl L)-happyOut274 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut274 #-}-happyIn275 :: (Decl L) -> (HappyAbsSyn )-happyIn275 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn275 #-}-happyOut275 :: (HappyAbsSyn ) -> (Decl L)-happyOut275 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut275 #-}-happyIn276 :: (Pat L) -> (HappyAbsSyn )-happyIn276 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn276 #-}-happyOut276 :: (HappyAbsSyn ) -> (Pat L)-happyOut276 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut276 #-}-happyIn277 :: ([Pat L]) -> (HappyAbsSyn )-happyIn277 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn277 #-}-happyOut277 :: (HappyAbsSyn ) -> ([Pat L])-happyOut277 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut277 #-}-happyIn278 :: (([S], [Name L])) -> (HappyAbsSyn )-happyIn278 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn278 #-}-happyOut278 :: (HappyAbsSyn ) -> (([S], [Name L]))-happyOut278 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut278 #-}-happyIn279 :: (PatternSynDirection L) -> (HappyAbsSyn )-happyIn279 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn279 #-}-happyOut279 :: (HappyAbsSyn ) -> (PatternSynDirection L)-happyOut279 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut279 #-}-happyIn280 :: (Decl L) -> (HappyAbsSyn )-happyIn280 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn280 #-}-happyOut280 :: (HappyAbsSyn ) -> (Decl L)-happyOut280 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut280 #-}-happyIn281 :: ((Maybe [TyVarBind L], [S], Maybe (Context L), Maybe (Context L), Type L )) -> (HappyAbsSyn )-happyIn281 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn281 #-}-happyOut281 :: (HappyAbsSyn ) -> ((Maybe [TyVarBind L], [S], Maybe (Context L), Maybe (Context L), Type L ))-happyOut281 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut281 #-}-happyIn282 :: (Maybe (DerivStrategy L)) -> (HappyAbsSyn )-happyIn282 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn282 #-}-happyOut282 :: (HappyAbsSyn ) -> (Maybe (DerivStrategy L))-happyOut282 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut282 #-}-happyIn283 :: (ModuleName L) -> (HappyAbsSyn )-happyIn283 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn283 #-}-happyOut283 :: (HappyAbsSyn ) -> (ModuleName L)-happyOut283 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut283 #-}-happyIn284 :: (Name L) -> (HappyAbsSyn )-happyIn284 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn284 #-}-happyOut284 :: (HappyAbsSyn ) -> (Name L)-happyOut284 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut284 #-}-happyIn285 :: (QName L) -> (HappyAbsSyn )-happyIn285 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn285 #-}-happyOut285 :: (HappyAbsSyn ) -> (QName L)-happyOut285 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut285 #-}-happyIn286 :: (Name L) -> (HappyAbsSyn )-happyIn286 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn286 #-}-happyOut286 :: (HappyAbsSyn ) -> (Name L)-happyOut286 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut286 #-}-happyIn287 :: (Name L) -> (HappyAbsSyn )-happyIn287 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn287 #-}-happyOut287 :: (HappyAbsSyn ) -> (Name L)-happyOut287 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut287 #-}-happyIn288 :: (QName L) -> (HappyAbsSyn )-happyIn288 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn288 #-}-happyOut288 :: (HappyAbsSyn ) -> (QName L)-happyOut288 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut288 #-}-happyIn289 :: (Name L) -> (HappyAbsSyn )-happyIn289 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn289 #-}-happyOut289 :: (HappyAbsSyn ) -> (Name L)-happyOut289 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut289 #-}-happyIn290 :: (([ImportDecl L],[S],L)) -> (HappyAbsSyn )-happyIn290 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn290 #-}-happyOut290 :: (HappyAbsSyn ) -> (([ImportDecl L],[S],L))-happyOut290 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut290 #-}-happyIn291 :: ((([ModulePragma L], [S], L), Maybe (ModuleName L))) -> (HappyAbsSyn )-happyIn291 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn291 #-}-happyOut291 :: (HappyAbsSyn ) -> ((([ModulePragma L], [S], L), Maybe (ModuleName L)))-happyOut291 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut291 #-}-happyIn292 :: ((([ModulePragma L], [S], L), Maybe (ModuleHead L))) -> (HappyAbsSyn )-happyIn292 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn292 #-}-happyOut292 :: (HappyAbsSyn ) -> ((([ModulePragma L], [S], L), Maybe (ModuleHead L)))-happyOut292 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut292 #-}-happyIn293 :: ((([ModulePragma L], [S], L), Maybe (ModuleHead L), Maybe ([ImportDecl L],[S],L))) -> (HappyAbsSyn )-happyIn293 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyIn293 #-}-happyOut293 :: (HappyAbsSyn ) -> ((([ModulePragma L], [S], L), Maybe (ModuleHead L), Maybe ([ImportDecl L],[S],L)))-happyOut293 x = Happy_GHC_Exts.unsafeCoerce# x-{-# INLINE happyOut293 #-}-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 #-}---happyExpList :: HappyAddr-happyExpList = HappyA# "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x81\xfc\xae\x81\xff\x5f\x68\x03\x23\xd8\xc0\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\x80\x3f\xf8\xbf\xa0\x04\xc2\x06\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x0a\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xc1\xff\x05\x25\x10\x36\xc8\xef\x1a\xf8\xff\x85\x36\x30\x86\x0d\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\xb0\x01\xfc\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x17\x94\x00\x18\x20\xbf\x6b\xe0\xff\x07\x58\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xfd\xff\x07\xf5\x32\x76\xc8\xef\x1a\xf8\xff\x85\x36\x30\x82\x0d\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xfb\xff\x1b\xea\x65\xec\x90\xdf\x35\xf0\xff\x0b\x6d\x60\x04\x1b\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf7\xff\x17\x9c\x4b\xd8\x21\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xef\xff\x2f\x28\x97\xb0\x43\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\xf8\xbf\xa0\x04\xc0\x04\xf9\x5d\x03\xff\xbf\xc0\x02\x00\xb0\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\x61\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x00\x04\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xe0\xff\x82\x12\x00\x03\xe4\x77\x0d\xfc\xff\x00\x0b\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xc1\xff\x05\x25\x00\x06\xc8\xef\x1a\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\xf8\x83\xff\x0b\x4a\x00\x0c\x90\xdf\x35\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x17\x94\x40\x58\x20\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x81\xfc\xae\x81\xff\x5f\x68\x03\x23\xd8\xc0\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\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xf0\x7f\x41\x09\x84\x05\xf2\xbb\x06\xfe\x7f\xa1\x0d\x8c\x60\x03\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\xf2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x0a\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x03\x00\x02\x40\x00\x00\x00\x00\x00\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x06\x00\x14\x04\x00\x00\x00\x00\x00\xe0\xfd\x07\x40\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x28\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xff\xff\xff\xff\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x97\x94\x40\x58\x20\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\xf8\xbf\xa0\x04\xc0\x04\xf9\x5d\x03\xff\x3f\xc0\x02\x00\xb0\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x6d\x02\x05\x65\x02\x7c\xc0\xa0\x00\x78\xff\x01\x10\x00\x80\x0c\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x0c\x12\x28\x28\x01\x20\x01\x06\x05\xc0\xfb\x0f\x80\x00\x00\x64\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x09\x14\x94\x00\x90\x00\x83\x02\xe0\xfd\x07\x50\x00\x00\x32\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\xf7\x09\x1c\xd4\x0a\xd2\x01\x83\x02\xe0\xfd\x07\x50\x00\x00\x32\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x0f\x12\x68\xa8\x01\x20\x01\x06\x05\xc0\xfb\x0f\xa0\x00\x00\x64\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x1e\x24\x50\x70\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x40\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3c\x48\xa0\xa0\x04\x80\x04\x18\x14\x00\xef\x3f\x00\x02\x00\x90\x01\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x17\x94\x40\x58\x20\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x28\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x02\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x83\xff\x2b\x4a\x20\x6c\x90\xdf\x35\xf8\xff\xfb\xed\x7e\x25\xff\xfd\x30\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x20\x00\x10\x00\x00\x00\x00\x00\xef\x3f\x00\x02\x00\x90\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xd3\x04\x0e\x6a\x04\x48\x80\x41\x01\xf0\xfe\x03\x28\x00\x00\x19\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x0f\x12\x28\x38\x01\x20\x01\x06\x05\xc0\xfb\x0f\xa0\x00\x00\x64\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x61\x9b\x40\x41\x99\x00\x1d\x30\x28\x00\xde\x7f\x00\x04\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\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\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x08\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x18\x24\x50\x50\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x00\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x08\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x06\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xfd\x07\x40\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x0f\x12\x28\x28\x01\x20\x01\x06\x05\xc0\xfb\x0f\xa0\x00\x00\x64\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x14\x80\x82\x00\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\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x51\x02\x61\x83\xfc\xae\x81\xff\x5f\x68\x03\x63\xd8\xc0\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\x80\x3f\xf8\xbf\xa2\x04\xc2\x06\xf9\x5d\x03\xff\xbf\xd0\x06\xc6\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xc1\xff\x05\x25\x00\x06\xc8\xef\x1a\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x20\x00\x00\x00\x00\x00\x36\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x04\x20\x05\xe1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x80\x00\xa0\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xe0\xff\x82\x12\x08\x1b\xe4\x77\x0d\xfe\xff\x7e\x9b\x5f\xc9\x7f\x3f\x0c\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\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x0b\xc0\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\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\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\xfc\xc1\xff\x05\x25\x00\x06\xc8\xef\x1a\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x68\x82\xfc\xae\x81\xff\x1f\x60\x01\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x03\x00\x00\x40\x00\x00\x00\x00\x00\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xfd\xff\x05\xf5\x12\x76\xc8\xef\x1a\xf8\xff\x85\x36\x30\x82\x0d\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xfb\xff\x0b\xca\x65\xec\x90\xdf\x35\xf0\xff\x0b\x6d\x60\x04\x1b\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x40\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xfe\xff\x82\x7a\x09\x3b\xe4\x77\x0d\xfc\xff\x42\x1b\x18\xc1\x06\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x10\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xe0\xff\x82\x12\x00\x03\xe4\x77\x0d\xfc\xff\x00\x0b\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xc1\xff\x05\x25\x00\x06\xc8\xef\x1a\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\xf8\x83\xff\x0b\x4a\x00\x0c\x90\xdf\x35\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x17\x94\x40\x58\x20\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x08\x02\x09\x00\x00\x00\x00\xc0\xff\x0f\xb0\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xe0\xff\x82\x12\x08\x0b\xe4\x77\x0d\xfc\xff\x42\x1b\x18\xc1\x06\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x03\x00\x00\x40\x00\x00\x00\x00\x00\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x09\x14\x94\x00\x90\x00\x83\x02\xe0\xfd\x07\x50\x00\x00\x32\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\xfe\x2f\x28\x81\xb0\x40\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x81\xfc\xae\x81\xff\x5f\x68\x03\x23\xd8\xc0\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\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xf0\x7f\x41\x09\x84\x05\xf2\xbb\x06\xfe\x7f\xa1\x0d\x8c\x60\x03\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x00\x01\x00\x00\x00\x00\x00\x00\xf8\xff\x01\x16\x40\x90\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xc0\x1f\xfc\x5f\x50\x02\x60\x80\xfc\xae\x81\xff\x1f\x60\x01\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x02\xc0\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\xe0\x0f\xfe\x2f\x28\x01\x30\x40\x7e\xd7\xc0\xff\x0f\xb0\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\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\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x01\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xef\xff\x2f\xa8\x97\xb0\x43\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\xfe\x2f\x28\x81\xb0\x40\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x83\xfc\xae\x81\xff\x5f\x68\x03\x23\xd8\xc0\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf7\xff\x17\x94\x4b\xd8\x21\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xdf\xff\x5f\x50\x2e\x61\x87\xfc\xae\x81\xff\x5f\x68\x03\x23\xd8\xc0\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\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xf0\x7f\x41\x09\x84\x0d\xf2\xbb\x06\xfe\x7f\xa1\x0d\x8c\x62\x03\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xf7\xff\x17\x94\x4b\xd8\x21\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\xfe\x2f\x28\x81\xb0\x40\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x83\xfc\xae\x81\xff\x5f\x68\x03\xa3\xd8\xc0\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x83\xff\x0b\x4a\x20\x2c\x90\xdf\x35\xf0\xff\x0b\x6d\x60\x04\x1b\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x17\x94\x40\x58\x20\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x83\xfc\xae\x81\xff\x5f\x68\x03\x23\xd8\xc0\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xe0\xff\x82\x12\x08\x0b\xe4\x77\x0d\xfc\xff\x42\x1b\x18\xc1\x06\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x41\x02\x05\x25\x00\x24\xc0\xa0\x00\x78\xff\x01\x14\x08\x80\x0c\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x68\x03\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\xfe\x2f\x28\x01\x30\x40\x7e\xd7\xc0\xff\x0f\xb0\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\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\x80\x3c\x48\xa0\xa0\x04\x80\x04\x18\x14\x00\xef\x3f\x80\x02\x00\x90\x01\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x80\x04\x02\x60\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x80\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x0b\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x10\x00\x20\x00\x00\x00\x00\x00\x00\x00\xff\x3f\xc0\x02\x00\xb0\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\x21\x00\x40\x00\x00\x00\x00\x00\x00\x00\xfe\x7f\x80\x05\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x80\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x0b\x20\xc8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x01\x00\x00\x00\x00\x00\x00\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x28\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xff\xff\xff\xff\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x7f\xf8\xbf\xa0\x04\xc0\x00\xf9\x5d\x83\xff\xff\xff\xff\xff\xbf\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x81\xfc\xae\x81\xff\x5f\x68\x03\x23\xd8\xc0\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\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\x04\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\xfe\x2f\x28\x81\xb0\x40\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xc1\xff\x15\x25\x10\x36\xc8\xef\x1a\xf8\xff\x85\x36\x30\x86\x0d\x1c\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xf0\x07\xff\x17\x94\x40\x58\x20\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\xfe\x2f\x28\x81\xb0\x40\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x03\x00\x02\x42\x00\x80\x00\x00\x00\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x1e\x24\x50\x50\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x40\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x00\x05\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x0a\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x41\x02\x05\x25\x00\x24\xc0\xa0\x00\x78\xff\x01\x14\x00\x80\x0c\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xf7\x1f\x00\x01\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3c\x48\xa0\xa0\x04\x80\x04\x18\x14\x00\xef\x3f\x80\x02\x00\x90\x01\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x51\x02\x61\x83\xfc\xae\x81\xff\x5f\x68\x71\x02\xf8\x0f\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x7f\xf8\xbf\xa0\x04\xc0\x00\xf9\x5d\x83\xff\xff\xff\xff\xff\xbf\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\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x00\xd0\x06\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\xf8\xbf\xa0\x04\xc2\x06\xf9\x5d\x83\xff\xbf\xdf\xee\x57\xf2\xdf\x0f\x03\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x06\x00\x04\x84\x00\x02\x01\x00\x00\xe0\xff\x07\x58\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x94\x29\x00\x03\x21\x02\x40\x00\x00\x00\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\x28\x03\x00\x02\x42\x00\x80\x00\x00\x00\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x57\x94\x40\xd8\x20\xbf\x6b\xe0\xff\x17\xda\xc0\x18\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xf0\x7f\x41\x09\x84\x05\xf2\xbb\x06\xfe\x7f\xa1\x0d\x8c\x60\x03\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\xfe\x2f\x28\x81\xb0\x41\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x08\x00\x02\x00\x01\xe0\x00\x00\x00\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x08\x00\x01\x00\x00\x00\x00\xc0\xff\x0f\xb0\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x02\x00\x20\x00\x04\x00\x00\x00\x00\x00\xff\x3f\xc0\x02\x00\xb0\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\x79\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x00\x05\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x80\x00\x10\x00\x00\x00\x00\x00\xfc\xff\x00\x0b\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x01\x20\x00\x00\x00\x00\x00\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x40\x20\x00\x00\x00\x00\x00\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\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\x80\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\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\x79\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x00\x04\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x08\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x01\x00\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\xc8\x83\x04\x0a\x4a\x00\x48\x80\x41\x01\xf0\xfe\x03\x28\x00\x00\x19\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x1e\x24\x50\x50\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x40\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3c\x48\xa0\xa0\x04\x80\x04\x18\x14\x00\xef\x3f\x80\x02\x00\x90\x01\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x08\x00\x01\x00\x00\x00\x00\xc0\xff\x0f\xb0\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x1e\x24\x50\x50\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x40\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\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\x79\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x00\x05\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xe0\xff\x82\x12\x08\x1b\xe4\x77\x0d\xfe\xff\x7e\x9b\x5f\xc9\x7f\x3f\x0c\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\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x03\xc0\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\xfe\xaf\x28\x81\xb0\x41\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x81\xfc\xae\x81\xff\x5f\xe8\x03\x23\xd8\xc0\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\x40\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x81\xfc\xae\x81\xff\x5f\x68\x03\x23\xd8\xc0\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\x80\x02\x00\x20\x00\x24\x00\x00\x00\x00\x00\xff\x3f\xc0\x02\x00\xb0\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x01\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xf0\x07\xff\x17\x94\x00\x18\x20\xbf\x6b\xe0\xff\x07\x58\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\xfe\x2f\x28\x81\xb0\x40\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x83\xfc\xae\x81\xff\x5f\x68\x03\xa3\xd8\xc0\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\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xc1\xff\x05\x25\x10\x36\xc8\xef\x1a\xf8\xff\x85\x36\x30\x8a\x0d\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xe0\xff\x82\x12\x08\x0b\xe4\x77\x0d\xfc\xff\x42\x1b\x18\xc1\x06\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xc1\xff\x05\x25\x10\x36\xc8\xef\x1a\xf8\xff\x85\x36\x30\x82\x0d\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x65\x00\x40\x40\x08\x00\x10\x00\x00\x00\xfe\x7f\x80\x05\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xf0\x7f\x41\x09\x84\x05\xf2\xbb\x06\xfe\x7f\xa1\x0d\x8c\x60\x03\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\xfe\xe0\xff\x82\x12\x08\x1b\xe4\x77\x0d\xfc\xff\x42\x1b\x18\xc1\x06\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x08\x04\x00\x00\x00\x00\x00\x00\x20\xfc\x07\x40\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x14\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x0a\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xc1\xff\x05\x25\x10\x36\xc8\xef\x1a\xf8\xff\x85\x36\x30\x82\x0d\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x83\xff\x0b\x4a\x20\x6c\x90\xdf\x35\xf0\xff\x0b\x6d\x60\x04\x1b\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x07\x58\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x0f\x12\x28\x28\x01\x20\x01\x06\x05\xc0\xfb\x0f\xa0\x00\x00\x64\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xff\x1f\x60\x01\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x7f\x80\x05\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x02\x00\x04\x00\x00\x00\x00\x00\x00\xe0\xff\x07\x58\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x08\x00\x10\x00\x00\x00\x00\x00\x00\x80\xff\x1f\x60\x01\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x02\x00\x00\x00\x00\x00\x00\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x04\x00\x00\x00\x00\x00\x00\xe0\xff\x07\x58\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x30\x00\xa0\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xc1\xff\x05\x25\x00\x06\xc8\xef\x1a\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\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\x01\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x32\x00\x20\x20\x04\x00\x08\x00\x00\x00\xff\x3f\xc0\x02\x00\xb0\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\xca\x00\x80\x80\x10\x00\x20\x00\x00\x00\xfc\xff\x00\x0b\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x17\x94\x40\x58\x20\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x02\x04\xb0\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\x7f\xf0\x7f\x41\x09\x84\x0d\xf2\xbb\x06\xfe\x7f\xa1\xc5\x09\xe0\x3f\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x40\x19\x00\x10\x00\x03\x00\x00\x00\x00\x80\xff\x1f\x60\x01\x04\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\xa0\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\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\x28\x03\x00\x02\x40\x00\x00\x00\x00\x00\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x32\x00\x20\x20\x04\x00\x08\x00\x00\x00\xff\x3f\xc0\x02\x00\xb0\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\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xf0\x07\xff\x17\x94\x40\x58\x20\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\xb0\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x40\x00\x00\x00\x00\x00\x00\x00\xfe\x7f\x80\x05\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x0a\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x09\x14\x94\x00\x90\x00\x83\x02\xe0\xfd\x07\x50\x00\x00\x32\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x0f\x12\x28\x28\x01\x20\x01\x06\x05\xc0\xfb\x0f\x80\x00\x00\x64\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0c\x00\x08\x08\x01\x00\x02\x00\x00\xc0\xff\x0f\xb0\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x10\x00\x00\x00\x00\x00\x00\x80\xf7\x1f\x00\x01\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3c\x48\xa0\xa0\x04\x80\x04\x18\x14\x00\xef\x3f\x80\x02\x00\x90\x01\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x83\x04\x0a\x4a\x00\x48\x80\x41\x01\xf0\xfe\x03\x28\x00\x00\x19\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x19\x00\x10\x10\x02\x00\x04\x00\x00\x80\xff\x1f\x60\x01\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\xef\x3f\x00\x02\x00\x90\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\xe1\x3f\x00\x02\x00\x90\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\x01\x00\x00\x20\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x81\x00\x00\x00\x00\x00\x00\x00\x84\xff\x00\x08\x00\x40\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x04\x00\x00\x00\x00\x00\x00\xe0\xff\x07\x58\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x0f\x12\x28\x28\x01\x20\x01\x06\x05\xc0\xfb\x0f\xa0\x00\x00\x64\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x00\x04\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x60\x00\x00\x00\x06\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x83\xff\x0b\x4a\x20\x2c\x90\xdf\x35\xf0\xff\x0b\x6d\x60\x04\x1b\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x17\x94\x40\xd8\x20\xbf\x6b\xe0\xff\x17\xda\xc0\x08\x36\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x06\x46\xb0\x81\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xf0\x7f\x41\x09\x84\x05\xf2\xbb\x06\xfe\x7f\xa1\x0d\x8c\x60\x03\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\xfe\xe0\xff\x82\x12\x08\x0b\xe4\x77\x0d\xfc\xff\x42\x1b\x18\xc1\x06\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x10\x00\x08\x00\x00\x00\x00\x80\xf7\x1f\x00\x01\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x40\x41\x09\x00\x0b\x30\x28\x00\xde\x7f\x00\x04\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x08\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\xde\x27\x70\x50\x2b\x48\x07\x0c\x0a\x80\xf7\x1f\x40\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x80\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x83\xff\x0b\x4a\x20\x2c\x90\xdf\x35\xf0\xff\x0b\x6d\x60\x04\x1b\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x00\x04\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\xff\x01\x10\x00\x80\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x08\x00\x04\x00\x00\x00\x00\xc0\xfb\x0f\x80\x00\x00\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3c\x48\xa0\xa0\x04\x80\x04\x18\x14\x00\xef\x3f\x00\x02\x00\x90\x01\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xff\x00\x0b\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x40\x00\x00\x00\x00\x00\x00\x00\xfe\x7f\x80\x05\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x81\xfc\xae\x81\xff\x5f\x68\x03\x23\xd8\xc0\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\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x80\x01\x80\x00\x00\x00\x00\x00\xfc\xff\x00\x0b\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x03\x00\x02\x40\x00\x00\x00\x00\x00\xf0\xff\x03\x2c\x80\x20\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x28\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xff\xff\xff\xff\xff\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x80\x80\x10\x00\x20\x00\x00\x00\xfc\xff\x00\x0b\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\xff\xff\xff\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x0f\xfe\x2f\x28\x81\xb0\x40\x7e\xd7\xc0\xff\x2f\xb4\x81\x11\x6c\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x41\x02\x05\x25\x00\x24\xc0\xa0\x00\x78\xff\x01\x14\x00\x80\x0c\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x1e\x24\x50\x50\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x40\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x57\x94\x40\xd8\x20\xbf\x6b\xe0\xff\x57\x5a\x80\x42\xf6\x03\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x3f\x00\x02\x00\x90\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\xc1\xff\x15\x25\x10\x36\xc8\xef\x1a\xf8\xff\xb5\x16\x27\x90\xff\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x18\x24\x50\x50\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x00\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x82\x40\x00\x00\x00\x00\x00\xf0\xff\x03\x2c\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x06\x09\x14\x94\x00\x90\x00\x83\x02\xe0\xfd\x07\x40\x00\x00\x32\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x18\x24\x50\x50\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x00\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x1e\x24\x70\x50\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x40\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xf0\x7f\x41\x09\x84\x05\xf2\xbb\x06\xfe\x7f\xa1\x0d\x8c\x60\x03\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x08\x00\x10\x00\x01\x00\x00\x00\x00\x80\xff\x1f\x60\x01\x00\xf9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x08\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\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\x80\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3f\xf8\xbf\xa0\x04\xc2\x02\xf9\x5d\x03\xff\xbf\xd0\x02\x04\xb0\x1f\x00\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\x79\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x80\x04\x02\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x09\x14\x94\x00\x90\x00\x83\x02\xe0\xfd\x07\x50\x00\x00\x32\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x06\x09\x14\x94\x00\x90\x00\x83\x02\xe0\xfd\x07\x40\x00\x00\x32\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x1e\x24\x50\x50\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x40\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3c\x48\xa0\xa0\x04\x80\x04\x18\x14\x00\xef\x3f\x80\x02\x00\x90\x01\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x7f\x00\x04\x00\x20\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xe0\xff\x8a\x12\x08\x1b\xe4\x77\x0d\xfc\xff\x42\x8b\x13\xc0\x7f\x00\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\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x1e\x24\x50\x50\x02\x40\x02\x0c\x0a\x80\xf7\x1f\x40\x01\x00\xc8\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x02\x00\x04\x00\x04\x00\x00\x00\x00\xe0\xff\x07\x58\x00\x00\x36\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\xf0\x7f\x41\x09\x84\x05\xf2\xbb\x06\xfe\x7f\xa1\x0d\x8c\x60\x03\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xfb\x0f\x80\x00\x00\x64\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x07\xff\x17\x94\x40\xd8\x20\xbf\x6b\xe0\xff\x57\x5a\x80\x42\xf6\x03\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\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\x79\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x00\x04\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x0a\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\xa0\x0d\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x09\x14\x94\x00\x90\x00\x83\x02\xe0\xfd\x07\x40\x00\x00\x32\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x1f\xfc\x5f\x50\x02\x61\x83\xfc\xae\x81\xff\x5f\x6b\x71\x02\xf9\x0f\x00\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x80\x00\x10\x00\x00\x00\x00\x00\xfc\xff\x00\x0b\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x41\x02\x05\x25\x00\x24\xc0\xa0\x00\x78\xff\x01\x14\x00\x80\x0c\x80\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\xc8\x83\x04\x4a\x4a\x00\x48\x80\x41\x01\xf0\xfe\x03\x28\x00\x00\x19\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\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\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x08\x00\x00\x00\x00\x00\x00\xc0\xff\x0f\xb0\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x00\x80\x01\x80\x00\x00\x00\x00\x00\xfc\xff\x00\x0b\x00\xc0\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x01\x00\x02\x00\x00\x00\x00\x00\x00\xf0\xff\x03\x2c\x00\x20\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x02\x00\x20\x00\x04\x00\x00\x00\x00\x00\xff\x3f\xc0\x02\x00\xb0\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x07\x09\x14\x94\x00\x90\x00\x83\x02\xe0\xfd\x07\x50\x00\x00\x32\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x40\x40\x08\x00\x10\x00\x00\x00\xfe\x7f\x80\x05\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x0a\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x0f\x12\x28\x28\x01\x20\x01\x06\x05\xc0\xfb\x0f\xa0\x00\x00\x64\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x3c\x48\xa0\xa0\x04\x80\x04\x18\x14\x00\xef\x3f\x80\x02\x00\x90\x01\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x90\x40\x41\x09\x00\x09\x30\x28\x00\xde\x7f\x00\x05\x00\x20\x03\x60\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x0c\x00\x08\x08\x01\x00\x02\x00\x00\xc0\xff\x0f\xb0\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x10\x00\x00\x00\x00\x00\x00\x80\xf7\x1f\x00\x01\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x00\x00\x01\x00\x00\x00\x00\x00\x00\xf8\xff\x01\x16\x00\x80\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x20\x81\x82\x12\x00\x12\x60\x50\x00\xbc\xff\x00\x0a\x00\x40\x06\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--{-# NOINLINE happyExpListPerState #-}-happyExpListPerState st =-    token_strs_expected-  where token_strs = ["error","%dummy","%start_mparseModule","%start_mparseExp","%start_mparsePat","%start_mparseDeclAux","%start_mparseType","%start_mparseStmt","%start_mparseImportDecl","%start_ngparseModulePragmas","%start_ngparseModuleHeadAndImports","%start_ngparsePragmasAndModuleHead","%start_ngparsePragmasAndModuleName","modules","modules1","page","topxml","toppragmas","toppragmasaux","toppragma","conids","module","optmodulehead","maybemodwarning","body","bodyaux","semis","optsemis","maybeexports","exports","optcomma","exportlist","export","export_names","cname_w_wildcard","qcname","impdecls","impdecl","optsrc","optsafe","optqualified","maybepkg","maybeas","maybeimpspec","impspec","opthiding","importlist","importspec","import_names","cname","fixdecl","prec","infix","ops","opt_injectivity_info","injectivity_info","inj_varids","topdecls","topdecls1","topdecl","opt_datafam_kind_sig","opt_tyfam_kind_sig","opt_at_kind_inj_sig","opt_at_kind_inj_sig2","role_annot","roles","role","optoverlap","where_type_family","ty_fam_inst_eqn_list","ty_fam_inst_eqns","ty_fam_inst_eqn","data_or_newtype","typelist","decls","decls1","decl","decllist","signdecl","signdecl0","specinldecl","sigtypes","sigtype","name_boolformula","name_boolformula1","name_boolformula_and","name_boolformula_atom","binds","vars","callconv","safety","fspec","rules","rule","activation","ruleforall","rulevars","rulevar","warndeprs","warndepr","namevars","namevar","annotation","truedtype","dtype","truetype","type","truebtype","trueatype","btype","atype","ptype","strict_mark","strictness","unpackedness","gtycon","otycon","qtyconop","truectype","ctype","context","types","types1","types_bars2","ktyvars","ktyvar","tyvars","tyvars1","fds","fds1","fd","gadtlist","gadtconstrs1","gadtconstrs","gadtconstr","constrs0","constrs","constr","forall","constr1","scontype","fielddecls","fielddecl","maybe_derivings","derivings","deriving","dclasses","qtycls1","kind","kind1","bkind","akind","pkind","comma_kinds1","optkind","opt_tyconsig","optcbody","cldecls","cldecls1","cldecl","opt_family","atdecl","optvaldefs","valdefs","valdefs1","insvaldef","atinst","valdef","optwhere","optsig","rhs","gdrhs","gdrh","trueexp","exp","exp0","exp0a","exp0b","exp10a","optlayoutsemi","opthsxsemi","exp10b","exppragma","fexp","apats","apat","aexp","aexp1","aexp2","tup_exprs","commas_tup_tail","tup_tail","commas","bars","bars0","texp","sexps","erpats","xml","children","child","name","xmlname","xmlkeyword","attrs","attr","mattr","list","lexps","pqualstmts","qualstmts","qualstmt","transformqual","quals","qual","parr","altslist","alts","alts1","alt","ralt","gdpats","gdpat","pat","ifaltslist","ifalts","ifalts1","stmtlist","stmts","stmts1","stmt","fbinds","fbind","ipbinds","ipbinds1","ipbind","gcon","gcon_nolist","sysdcon_nolist","sysdcon","var","var_no_safety","qvar","ivar","con","con_list","qcon","varop","qvarop","qvaropm","conop","qconop","op","qop","qopm","gconsym","overloaded_label","qvarid","varid_no_safety","varid","ivarid","qconid","conid","qconsym","consym","qvarsym","qvarsymm","varsym","varsymm","qvarsym1","literal","open","close","pat_syn","pattern_synonym_decl","pattern_synonym_lhs","vars0","commavars","where_decls","pattern_synonym_sig","pstype","deriv_strategy","modid","tyconorcls","qtyconorcls","tyvar","tyvarid","qtyvarop","tyvarsym","impdeclsblock","moduletopname","moduletophead","moduletopimps","VARID","LABELVARID","QVARID","IDUPID","ILINID","CONID","QCONID","DVARID","VARSYM","CONSYM","QVARSYM","QCONSYM","INT","RATIONAL","CHAR","STRING","PRIMINT","PRIMWORD","PRIMFLOAT","PRIMDOUBLE","PRIMCHAR","PRIMSTRING","'('","')'","'(#'","'#)'","';'","'{'","'}'","vccurly","'['","']'","'[:'","':]'","','","'_'","'`'","'.'","'..'","':'","'::'","'='","'\\\\'","'|'","'<-'","'->'","'@'","TYPEAPP","'~'","'=>'","'-'","'!'","'*'","'-<'","'>-'","'-<<'","'>>-'","'(|'","'|)'","'@:'","IDSPLICE","'$('","'[|'","'[p|'","'[t|'","'[d|'","'|]'","VARQUOTE","TYPQUOTE","QUASIQUOTE","PCDATA","'<'","'</'","'<%'","'<%>'","'>'","'/>'","'%>'","'<['","']>'","'foreign'","'export'","'safe'","'unsafe'","'threadsafe'","'interruptible'","'stdcall'","'ccall'","'cplusplus'","'dotnet'","'jvm'","'js'","'javascript'","'capi'","'as'","'by'","'case'","'class'","'data'","'default'","'deriving'","'do'","'else'","'family'","'forall'","'group'","'hiding'","'if'","'import'","'in'","'infix'","'infixl'","'infixr'","'instance'","'let'","'mdo'","'module'","'newtype'","'of'","'proc'","'rec'","'then'","'type'","'using'","'where'","'qualified'","'role'","'pattern'","'stock'","'anyclass'","'{-# INLINE'","'{-# INLINE CONLIKE'","'{-# SPECIALISE'","'{-# SPECIALISE INLINE'","'{-# SOURCE'","'{-# RULES'","'{-# CORE'","'{-# SCC'","'{-# GENERATED'","'{-# DEPRECATED'","'{-# WARNING'","'{-# UNPACK'","'{-# NOUNPACK'","'{-# OPTIONS'","'{-# LANGUAGE'","'{-# ANN'","'{-# MINIMAL'","'{-# NO_OVERLAP'","'{-# OVERLAP'","'{-# OVERLAPS'","'{-# OVERLAPPING'","'{-# OVERLAPPABLE'","'{-# INCOHERENT'","'{-# COMPLETE'","'#-}'","%eof"]-        bit_start = st * 449-        bit_end = (st + 1) * 449-        read_bit = readArrayBit happyExpList-        bits = map read_bit [bit_start..bit_end - 1]-        bits_indexed = zip bits [0..448]-        token_strs_expected = concatMap f bits_indexed-        f (False, _) = []-        f (True, nr) = [token_strs !! nr]--happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\x00\x00\x75\x29\xa8\x25\x42\x00\x3f\x18\x7c\x23\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x60\x03\x67\x00\x50\x01\x6a\x01\x0b\x02\xc1\x01\x4e\x02\x4e\x02\xda\xff\xdc\x01\x00\x00\x45\x02\x00\x00\x00\x00\x48\x1e\x00\x00\x00\x00\x00\x00\x5a\x2c\x00\x00\x7d\x02\x00\x00\x00\x00\x97\x02\x38\x02\x00\x00\x00\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x1e\x24\x1f\xc5\x20\x66\x22\x00\x00\xf8\x2a\x3e\x1d\x5a\x2c\x5a\x2c\x5a\x2c\x75\x29\x00\x00\x75\x29\x75\x29\x75\x29\x3f\x18\x00\x00\x59\x2e\xd4\x31\x00\x00\x7b\x34\x75\x29\x00\x00\x00\x00\x00\x00\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\x29\x03\x03\x00\x00\x00\x00\x00\x00\x33\x26\x0b\x03\x35\x03\xe4\x2b\x35\x03\x00\x00\x00\x00\x00\x00\x00\x00\x59\x03\x5e\x03\x62\x03\x00\x00\x00\x00\xdb\x13\x00\x00\x00\x00\x3e\x1d\x00\x00\xc8\x01\x00\x00\x00\x00\xe0\x02\x00\x00\x3f\x18\x57\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x13\x2d\x15\x99\x15\x06\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x75\x29\x39\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbc\x02\xf3\x02\xf5\x02\x00\x00\x00\x00\x00\x00\xf5\x02\x81\x03\x0e\x03\x00\x00\x0e\x03\x1f\x00\x00\x00\x00\x00\xa0\x03\x7b\x34\x0f\x03\x30\x01\x00\x00\x5c\x03\x00\x00\x00\x00\xb0\x03\x00\x00\xec\x0d\x5a\x00\x00\x00\x00\x00\x0a\x33\x00\x00\x00\x00\x00\x00\x4e\x14\x69\x01\x05\x16\xbe\x03\xbb\x03\xba\x14\xc2\x03\x00\x00\xc5\x03\xc9\x03\x00\x00\xe1\x03\x9a\x01\x59\x01\xca\x01\x00\x00\x00\x00\x24\x02\x47\x04\xaa\x00\x71\x04\x00\x00\x00\x00\x75\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x04\x00\x00\x7d\x04\x00\x00\x3e\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x1d\x00\x00\x00\x00\x3e\x1d\x00\x00\x00\x00\x40\x33\x3f\x18\x00\x00\x00\x00\x00\x00\xb2\x08\x99\x04\x02\x04\x11\x04\x00\x00\xf1\x22\xf1\x22\xb8\x04\x00\x00\x5a\x2c\x00\x00\x7b\x04\xdd\x04\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x04\x3a\x00\xbd\x04\x00\x00\xec\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\x0a\x19\xfe\x01\x21\x05\x00\x00\x00\x00\x78\x0e\x20\x0f\x0a\x05\x1a\x05\x1d\x05\x3b\x05\x6d\x05\x62\x05\x43\x01\x00\x00\x5a\x2c\x00\x00\x00\x00\x00\x00\x6e\x2b\x00\x00\x78\x05\x79\x05\x0e\x01\x8e\x05\x98\x05\x00\x00\x00\x00\x75\x29\x00\x00\x00\x00\x00\x00\x61\x2f\x00\x00\x41\x03\x97\x05\x9e\x05\x00\x00\xac\x05\xaf\x1f\x50\x21\xd1\x02\x00\x00\x00\x00\xdd\x02\xc0\x05\x3a\x20\xa6\x01\xc7\x05\xd9\x05\xdd\x05\xe0\x05\xe7\x05\x00\x00\x5a\x2c\x5a\x2c\x5a\x2c\x75\x29\x74\x2e\x00\x00\x00\x00\x00\x00\x75\x29\x00\x00\x61\x2f\x3f\x18\x75\x29\x75\x29\x75\x29\x75\x29\xb0\x05\x74\x05\x33\x00\x00\x00\x30\x01\x5a\x00\x00\x00\x00\x00\x00\x00\x7c\x2f\x00\x00\xb7\x05\x00\x00\x5a\x2c\x86\x05\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x02\x5a\x2c\x0d\x06\x1a\x06\x11\x01\x0b\x00\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x06\x3c\x06\x00\x00\x00\x00\x30\x06\x3a\x06\x3d\x06\x22\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x21\x45\x06\x00\x00\x00\x00\x54\x06\x00\x00\x00\x00\x00\x00\x75\x29\xbe\x26\x00\x00\x58\x06\x00\x00\x00\x00\x00\x00\x66\x22\x00\x00\x66\x22\x75\x29\x07\x24\x63\x06\x00\x00\x00\x00\x66\x22\x75\x29\x07\x24\x00\x00\x00\x00\x72\x06\x00\x00\x75\x29\x75\x29\x00\x00\x49\x27\x00\x00\x00\x00\x75\x29\x00\x00\x00\x00\x00\x00\x9f\x06\x5a\x00\x00\x00\x00\x00\x00\x00\x71\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x14\x00\x00\x00\x00\x00\x00\x5a\x2c\x38\x00\x3f\x18\x2e\x06\x9d\x06\x9f\x02\x00\x00\x00\x00\x00\x00\x8f\x06\x00\x00\xa5\x18\x4d\x31\xb3\x06\xb3\x06\x21\x00\xb3\x06\xd1\x06\x68\x31\x68\x31\x7c\x2f\xb6\x31\x53\x02\xcd\x06\x00\x00\x7b\x34\x00\x2a\x00\x00\xaf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x75\x29\xe3\x06\x6c\x02\xec\x06\x5a\x00\x94\x06\x00\x00\x75\x29\x00\x00\x75\x29\x00\x07\x0e\x07\xf1\x22\x5a\x00\x75\x29\x75\x29\xf9\x06\x00\x00\x00\x00\x09\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x2d\x00\x00\x00\x00\x18\x19\x00\x00\x18\x19\x18\x19\x18\x19\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x03\x00\x00\x9d\x02\x41\x01\xd2\x02\x00\x00\x00\x00\xe3\x33\x18\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x10\x18\x07\x27\x07\x5a\x00\x5a\x00\x8e\x03\xeb\x06\x00\x00\x00\x00\x00\x2a\x03\x07\x3b\x07\x4e\x07\x5d\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x02\x00\x00\x00\x00\x45\x07\x10\x07\x86\x0e\x60\x07\x60\x07\x00\x00\x59\x07\x00\x00\x00\x00\x70\x07\x00\x00\x00\x00\x00\x00\x82\x07\x00\x00\x4d\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc6\x2c\xd4\x2d\x00\x00\x00\x00\x94\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x22\x00\x00\x00\x00\x00\x00\x75\x29\x00\x00\x00\x00\x00\x00\x00\x00\x49\x27\x00\x00\x00\x00\x29\x00\x61\x07\x00\x00\x7b\x07\x00\x00\xda\x01\x85\x03\xc1\x03\xce\x03\xea\x03\xee\x03\x55\x04\xa8\x04\xed\x04\xfb\x04\x1c\x05\x60\x05\x8c\x05\xd1\x05\x05\x06\x09\x06\x16\x06\x40\x06\x4c\x06\x6a\x06\x89\x06\x00\x00\x88\x07\x8a\x07\xbe\x07\x28\x07\x00\x00\xa8\x07\xba\x07\x00\x00\xf0\x2d\x51\x07\x17\x00\x00\x00\xd0\x07\xd1\x07\x30\x00\x39\x00\x00\x00\xd7\x07\xcb\x30\x46\x00\xcb\x30\x18\x19\xcb\x30\xcb\x30\xc5\x2f\xcf\x07\x90\x04\x22\x03\xd8\x07\x06\x1c\x3e\x1d\x74\x02\x18\x19\x6e\x07\x76\x07\x78\x07\x84\x07\x8c\x07\x98\x07\xb3\x07\x00\x00\x00\x00\x00\x00\x18\x19\x18\x19\x0d\x08\x30\x07\x30\x07\x00\x05\x00\x05\xcb\x30\x18\x19\x08\x04\x18\x19\x20\x0f\x20\x08\xfb\x07\xbb\x01\x00\x00\x00\x00\xac\x01\x00\x00\x24\x08\x31\x08\x00\x00\x00\x00\x92\x24\x36\x08\x00\x00\x5a\x00\x2d\x08\x39\x08\x00\x00\x00\x00\x00\x00\xd4\x27\x00\x00\x6e\x00\x00\x00\x00\x00\x32\x08\x00\x00\xfb\x02\x00\x00\x33\x08\x00\x00\x00\x00\x34\x08\x00\x00\x00\x00\x00\x00\x75\x29\x46\x2f\x00\x00\x00\x00\x00\x00\x4d\x08\x00\x00\x1b\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x5c\x08\x5a\x2c\x00\x00\x4e\x08\x52\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x04\x00\x00\x00\x00\x00\x00\x75\x29\x1d\x25\x75\x29\x0c\x08\x03\x00\x1d\x25\x00\x00\x00\x00\x00\x00\x00\x00\x95\x06\xff\x07\x75\x29\x5f\x28\x00\x00\x53\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x31\x00\x00\x00\x00\x2d\x04\x15\x08\xfe\x07\xd4\x2d\x16\x08\xab\x06\x37\x01\x00\x00\x01\x08\x55\x08\x00\x00\x75\x29\x5f\x28\x0f\x08\x6f\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x16\x10\x08\x00\x00\x60\x08\x72\x08\x00\x00\x68\x08\x00\x00\x8f\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x08\x00\x00\xc2\x09\x66\x08\x00\x00\x4c\x04\x18\x19\xea\x28\xea\x28\xc1\x32\x84\x19\xc1\x32\x00\x00\xc1\x32\x8b\x02\xf9\x07\xfa\x07\xfc\x07\x6d\x08\x78\x08\x8d\x08\x73\x08\x3d\x08\x9d\x08\x00\x00\x68\x31\x00\x00\x68\x31\x00\x00\x00\x00\x00\x00\x9a\x08\x22\x32\x22\x32\x00\x00\x18\x08\x99\x05\x00\x00\x00\x00\x5a\x2c\x00\x00\x00\x00\xce\x02\x78\x02\x99\x08\x00\x00\x83\x08\x95\x08\x94\x08\xa2\x08\x00\x00\x00\x00\xd4\x2d\x00\x00\xd4\x2d\x00\x00\x00\x00\x75\x29\xd0\x04\xa0\x08\x82\x2a\x4f\x11\xa0\x08\x22\x08\x26\x08\x42\x08\x00\x00\xe1\x2c\x00\x00\x64\x04\x00\x00\x00\x00\xae\x08\xa7\x08\x00\x00\x00\x00\xb5\x08\xc2\x09\x00\x00\xd8\x04\xdd\x2e\xe9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x08\x00\x00\xb6\x08\x00\x00\x00\x00\xd4\x2d\x00\x00\xc2\x08\x69\x08\x00\x00\x75\x29\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x29\x3d\x32\xf0\x19\xb3\x08\x00\x00\xf0\x19\x00\x00\x00\x00\x00\x00\x00\x00\xaf\x08\xb8\x08\x00\x00\x00\x00\x06\x1c\x00\x00\x00\x00\x00\x00\x61\x08\x00\x00\x00\x00\xad\x08\xd4\x2d\x95\x33\xf0\x19\x4c\x00\x00\x00\xc4\x08\xf0\x19\x00\x00\x00\x00\xd4\x2d\xaf\x33\xbe\x08\x00\x00\x00\x00\xce\x08\x00\x00\xc9\x08\x00\x00\x1e\x17\x9c\x02\x3f\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x08\xa1\x03\x00\x00\x00\x00\x00\x00\x58\x32\xf0\x19\xd6\x08\x00\x00\xa4\x1d\x00\x00\x00\x00\x90\x08\xe8\x08\x00\x00\xa4\x08\x00\x00\x9f\x02\xa4\x08\x81\x08\xe3\x08\xe5\x08\xbb\x01\x00\x00\x00\x00\x8e\x08\xe0\x08\x00\x00\x75\x29\xea\x28\xf2\x08\x00\x00\x75\x29\x75\x29\x75\x29\x00\x00\xeb\x08\x00\x00\xb0\x08\xa8\x08\xbd\x06\x50\x00\x00\x00\x00\x00\x13\x00\xd8\x04\x00\x00\x00\x00\x9b\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x08\x00\x00\x0d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x25\x33\x82\x00\x56\x1a\xa4\x1d\x00\x00\x00\x00\xfc\x08\xff\x08\x6f\x13\xb4\x08\x00\x00\x00\x00\x9c\x02\x75\x29\x00\x00\x00\x00\x09\x09\xfa\x08\x0a\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x08\x00\x00\xe3\x33\x00\x00\x11\x09\x7a\x33\x00\x00\x06\x1c\x00\x00\xc1\x32\x9e\x08\x17\x09\x00\x00\x00\x00\xa1\x08\x0e\x09\x8b\x32\x00\x00\xc1\x32\x14\x09\xf7\x08\x00\x00\x75\x29\x13\x09\x1e\x09\x32\x09\x00\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\x2f\x38\x09\x68\x2d\x00\x00\x22\x04\x7b\x34\x00\x00\x00\x00\x36\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x2d\x45\x09\x00\x00\x7b\x34\x75\x29\x2b\x09\x00\x00\x00\x00\x00\x00\xc2\x1a\x00\x00\x00\x00\x00\x00\x2e\x1b\x00\x00\x00\x00\x27\x09\x00\x00\x42\x09\xd6\x11\x46\x09\x5a\x00\xe3\x33\x00\x00\x00\x00\xba\x0f\x47\x09\x5a\x00\x00\x00\x0a\x1e\x00\x00\x00\x00\x00\x00\x4a\x09\x47\x30\x6c\x1c\x00\x00\x0a\x1e\x60\x09\x00\x00\x2d\x02\x4c\x09\x5a\x00\x00\x00\x00\x00\xe4\x16\x00\x00\x75\x29\x00\x00\x00\x00\x00\x00\x5f\x09\x00\x00\xf8\x2e\x00\x00\x55\x09\x68\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x09\x00\x00\x0a\x1e\x5f\x01\xbb\x02\x00\x00\x00\x00\x69\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x09\xe4\x12\x50\x17\xfd\x33\x00\x00\x00\x00\x9a\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x1e\x00\x00\x9a\x1b\x9a\x1b\x17\x34\xc8\x10\x6a\x09\x5a\x00\x00\x00\x00\x00\x9a\x1b\x00\x00\x3a\x09\xed\x08\x00\x00\x00\x00\x04\x31\x3d\x09\x00\x00\x00\x00\x75\x29\x00\x00\x72\x09\x00\x00\x00\x00\x17\x34\x00\x00\xcb\x06\x00\x00\x62\x09\x83\x00\x66\x09\x5d\x12\x76\x09\xc9\x04\xd3\x04\xd8\x1c\x9a\x1b\x00\x00\x6e\x0d\xd8\x1c\x00\x00\x41\x10\x76\x09\x00\x00\xe9\x30\x9a\x1b\xd3\x17\x34\x03\x76\x09\x00\x00\x7d\x09\x74\x09\x00\x00\x00\x00\x00\x00\x8a\x09\xa6\x32\xae\x02\x00\x00\x00\x00\x62\x30\x8d\x09\x7d\x30\x00\x00\x00\x00\x00\x00\xe9\x30\x00\x00\x00\x00\x00\x00\x80\x09\x9a\x1b\x00\x00\x37\x05\x00\x00\xd4\x2d\x9a\x1b\x50\x09\x2f\x09\x00\x00\x9a\x1b\x00\x00\x9a\x1b\x9a\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x09\x00\x00\x8f\x09\x00\x00\x00\x00\xd4\x2d\xc9\x33\x00\x00\x00\x00\x7f\x03\x00\x00\x00\x00\x48\x03\x00\x00\x00\x00\xa7\x09\x00\x00\x00\x00\x68\x31\x92\x09\x95\x09\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x1b\x00\x00\x00\x00\x00\x00"#--happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\x02\x00\x7d\x38\x9d\x3f\x04\x00\xf6\x06\xab\x37\xaa\x09\x01\x00\xfd\xff\xff\xff\xfe\xff\x06\x00\x52\x03\x93\x05\x00\x00\x00\x00\xba\x09\x00\x00\xbb\x09\x00\x00\x00\x00\x00\x00\xac\x09\x00\x00\x00\x00\x00\x00\x00\x00\x44\x10\x00\x00\x00\x00\x00\x00\x1b\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x3c\xb3\x3c\xd8\x3c\x39\x3d\x00\x00\xc2\x35\xe7\x0c\x25\x47\xe1\x0c\x42\x47\xba\x3f\x00\x00\x9a\x38\xf4\x38\xc5\x45\x13\x07\xc7\x08\x62\x07\xfc\x00\x00\x00\x4a\x03\x1f\x41\x0c\x09\x00\x00\x00\x00\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\x41\x62\xff\x00\x00\x00\x00\x00\x00\x22\x38\xce\xff\x70\xff\xa1\x36\x73\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x0c\x00\x00\x00\x00\xe3\x02\x00\x00\x63\x09\x00\x00\x00\x00\x00\x00\x00\x00\xad\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x05\x8c\x06\xa0\x06\xbb\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x11\x39\x5a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x09\x00\x00\x00\x00\x00\x00\x0f\x05\x6c\x05\x00\x00\x00\x00\xdf\xff\x00\x00\x00\x00\x00\x00\xd6\x03\x00\x00\x00\x00\x05\x00\x72\x04\x5d\x05\xc3\x08\x00\x00\x00\x00\x07\x00\x0d\x00\x00\x00\x00\x00\x76\x00\xcc\x08\x00\x00\x00\x00\xb3\xff\x00\x00\x00\x00\x00\x00\x55\x06\x1f\x09\x57\x07\x00\x00\x00\x00\xc0\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x01\x00\x00\x00\x00\x00\x00\x00\x00\xd9\x04\x00\x00\x00\x00\xcf\x0b\x00\x00\x00\x00\xbd\x01\xc1\x09\x00\x00\x00\x00\x00\x00\xf8\x06\x00\x00\x00\x00\x00\x00\x00\x00\x93\x35\xed\x35\x00\x00\x00\x00\x66\x47\x00\x00\x00\x00\x2d\x09\x00\x00\x09\x00\x23\x00\x00\x00\x00\x00\x2a\x01\x00\x00\x12\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x02\x21\x09\x00\x00\x00\x00\x00\x00\x10\x03\x80\x01\x00\x00\x00\x00\xcb\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x47\x00\x00\x00\x00\x00\x00\xa2\x46\x00\x00\x72\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x46\x00\x00\x00\x00\x00\x00\xd3\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x3d\xe0\x3d\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x3d\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x0c\xa7\x47\xc4\x47\x6b\x39\xd5\x01\x00\x00\x00\x00\x00\x00\x61\x46\x00\x00\x4d\x06\x6c\x07\x96\x41\xf0\x41\x0d\x42\x67\x42\xbe\x09\x00\x00\x7b\x00\x00\x00\xd0\x08\xdb\x08\x95\x05\x9f\x05\xe5\x02\x47\x03\x00\x00\xab\x03\x00\x00\xe8\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x03\x05\x48\xe6\x08\xc2\x05\xe7\x08\x00\x00\x11\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x06\x00\x00\x48\x06\x00\x00\xc6\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbd\x3d\x00\x00\x00\x00\x00\x00\x4b\x06\x00\x00\x00\x00\x00\x00\x14\x40\x31\x40\x00\x00\xb9\x05\x00\x00\x00\x00\x00\x00\x41\x3e\x00\x00\x64\x3e\x84\x42\x5a\x34\x00\x00\x00\x00\x00\x00\xc5\x3e\xde\x42\xb4\x34\x00\x00\x26\x00\x2c\x00\x00\x00\xfb\x42\x55\x43\x00\x00\x47\x36\x00\x00\x00\x00\x61\x46\x00\x00\x00\x00\x00\x00\xbc\x09\xe1\x08\xb0\x06\x00\x00\x00\x00\xf0\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x06\x00\x00\x00\x00\x00\x00\x29\x48\x00\x00\x04\x0a\x00\x00\x00\x00\xd7\x08\x00\x00\x00\x00\x00\x00\xaf\x09\x00\x00\x1e\x0c\x76\x01\x96\x09\x98\x09\x9b\x09\xa0\x09\x2c\x06\x68\x03\x79\x03\x01\x04\x4d\x01\x38\x01\x00\x00\x00\x00\x08\x06\xe4\x46\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x40\x7a\xff\x68\x02\x00\x00\xf1\x08\x00\x00\x00\x00\x72\x43\x00\x00\xcc\x43\x00\x00\x20\x09\x72\x36\xf8\x08\xe9\x43\x43\x44\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdb\x05\x00\x00\x00\x00\x18\x0a\x00\x00\x35\x0a\x64\x0a\x78\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\xff\xbc\x0a\xc0\x06\x06\x07\x00\x00\x00\x00\x00\x00\x00\x00\x19\x02\x00\x00\x00\x00\xf9\x08\xfb\x08\xdc\x09\x00\x00\x3b\x09\x00\x00\x01\x47\xf6\x09\x1c\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x47\x07\x00\x00\x66\x0a\x72\x07\x00\x00\x00\x00\x00\x00\xa5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x04\x89\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x36\x00\x00\x00\x00\x00\x00\x60\x44\x00\x00\x00\x00\x00\x00\x83\x07\x26\x37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x09\x05\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x09\x73\x04\x00\x00\x87\x04\xd9\x0a\xce\x04\xe0\x04\x5d\x01\x00\x00\xac\x06\x00\x00\x00\x00\x04\x0c\x7f\x02\xb2\xff\x1b\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x52\x04\x2f\x0b\x99\x09\xb9\x09\xbd\x09\xff\x04\x6e\x05\xe8\x00\x9a\x07\x46\x01\xb7\x07\xa7\x01\x00\x00\x00\x00\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xeb\xff\x00\x00\x00\x00\x26\x3f\x00\x00\x00\x00\x08\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x39\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x44\x7f\x04\x00\x00\x00\x00\x00\x00\xf9\x09\x00\x00\x91\x07\x9e\x07\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x09\x46\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x07\xbd\x07\x10\x09\x00\x00\x00\x00\x00\x00\xd7\x44\x0e\x35\x31\x45\x00\x00\x00\x00\x68\x35\x00\x00\x00\x00\xcd\x07\x00\x00\x4f\x05\x00\x00\xe2\x39\x05\x38\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x49\x03\x00\x00\x00\x00\x9f\x01\xa7\x05\xa3\x09\xb4\x09\xbf\x05\x00\x00\x00\x00\x00\x00\x85\x09\x8b\x09\x00\x00\xff\x39\x80\x37\x8e\x09\xe0\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\xa5\x09\x06\x04\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xff\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa1\x09\x03\x0a\x02\x05\x00\x00\x00\x00\x08\x0a\xcb\x07\xa8\x40\x02\x41\xe9\x06\x43\x0b\x7b\x01\x00\x00\xfd\x00\x34\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x09\xea\x09\x00\x00\xb0\x02\x00\x00\x2e\x03\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\xd9\xff\x00\x00\x00\x00\xe1\xff\x86\x09\x00\x00\x6a\x48\x00\x00\x00\x00\x00\x00\x70\x09\x9d\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x13\x00\x00\xfd\x09\x00\x00\x00\x00\x59\x3a\xc5\x00\x00\x00\x7e\x46\x6f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xff\x00\x00\x00\x00\x94\x09\x00\x00\x00\x00\x36\x0a\x00\x00\x00\x00\x00\x00\xaf\x05\x00\x00\x3f\x09\x7c\x00\x74\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x05\x00\x00\x00\x00\x00\x00\x00\x00\x76\x3a\x00\x00\x84\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x46\xd1\xff\x76\x04\x00\x00\x00\x00\x8a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x0b\x00\x00\xd9\x09\x00\x00\x4f\x09\x00\x00\x00\x00\xb9\x07\x6d\x0c\xdb\x00\xdf\x07\x1a\x0a\x00\x00\x57\x09\x60\x0b\x00\x00\x00\x00\x20\x0d\x57\x00\x00\x00\x00\x00\x00\x00\x5e\x09\x00\x00\x00\x00\x00\x00\x04\x02\xe6\x06\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\xff\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x00\x0e\x08\x00\x00\x00\x00\xa0\x0c\xed\x09\x00\x00\xd0\x05\x61\x09\x00\x00\xde\x09\x00\x00\x64\x09\xdc\x05\xf7\x09\x00\x00\x00\x00\xe8\x02\x00\x00\x00\x00\xd1\x09\xa6\x09\x00\x00\xd0\x3a\x43\x3f\x00\x00\x00\x00\xed\x3a\x47\x3b\x64\x3b\x00\x00\x00\x00\x00\x00\x54\x0a\x5a\x0a\x00\x00\x71\x09\x00\x00\x00\x00\x6e\x06\x73\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x06\x00\x00\xa7\x00\x00\x00\x35\x00\x44\x00\x00\x00\xe6\x00\x9c\x00\x21\x08\xd6\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x38\x06\x6a\x07\x00\x00\x00\x00\xea\x06\xbe\x3b\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x02\x2e\x00\x31\x00\x47\x02\x00\x00\x9c\x07\x00\x00\x00\x00\x1a\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x0a\x00\x00\x7e\xff\x00\x00\x7f\x09\xe6\x00\x00\x00\x34\x0c\x00\x00\x99\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x1a\x07\x00\x00\x00\x00\x00\x00\x4e\x45\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x19\x00\x00\x00\x56\x06\x80\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x05\x00\x00\x00\x00\xa6\x06\xdb\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x04\x00\x00\x00\x00\x00\x00\x7d\x0b\x4a\x00\x4e\x00\x00\x00\x00\x00\xd3\xff\x11\x05\x00\x00\x87\x09\x68\x00\x00\x00\x00\x00\x94\x02\x00\x00\x88\x09\x00\x00\x66\x04\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x21\x08\x00\x00\xac\x04\x90\x09\x00\x00\xa9\x00\x00\x00\x89\x09\x00\x00\x00\x00\xb5\x06\x00\x00\x35\x3c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x08\x00\x00\x00\x00\x00\x00\x21\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x08\x00\x00\x00\x00\xfa\x09\x8a\x05\x5a\x0c\x00\x00\x00\x00\x00\x00\x3e\x08\x00\x00\x00\x00\x2a\x08\x00\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x9d\x01\x9a\x03\xe2\xff\x40\x03\x00\x00\x8c\x09\x00\x00\x00\x00\x82\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\x00\x00\x00\x00\x00\x00\xa8\x45\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\x91\x09\x00\x00\x2f\x05\x00\x00\xf3\x01\x5c\x0a\x77\x0c\x21\x04\x00\x00\x60\x12\x8b\x0c\x00\x00\xc2\x02\x00\x00\x00\x00\x89\x01\x96\x08\xc5\x08\xb6\xff\x00\x00\x00\x00\x00\x00\x80\x0a\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x01\xd1\x00\x00\x00\x00\x00\xd2\x00\x00\x00\x43\x00\x00\x00\x00\x00\x00\x00\xe7\x01\x00\x00\x00\x00\x00\x00\x6f\x0a\xe2\x08\x00\x00\x70\x0a\x00\x00\x3b\x0f\xf6\x08\xe5\x06\x2d\x0a\x00\x00\x0a\x09\x00\x00\x3e\x04\x39\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x06\x00\x00\x2b\x08\x00\x00\x00\x00\x31\x13\x06\x01\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\x81\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x09\x00\x00\x00\x00\x00\x00"#--happyAdjustOffset :: Happy_GHC_Exts.Int# -> Happy_GHC_Exts.Int#-happyAdjustOffset off = off--happyDefActions :: HappyAddr-happyDefActions = HappyA# "\x19\xfd\x00\x00\x00\x00\x19\xfd\x00\x00\x00\x00\x00\x00\x19\xfd\x19\xfd\x19\xfd\x19\xfd\x00\x00\x00\x00\xea\xff\xef\xfc\x00\x00\xe2\xff\x00\x00\xe2\xff\x00\x00\x00\x00\x00\x00\xbc\xff\x85\xfd\x61\xfe\x5f\xfe\x59\xfe\x58\xfe\x56\xfe\x54\xfe\x4e\xfe\x44\xfe\x3f\xfe\x36\xfe\x33\xfe\x24\xfe\x00\x00\x00\x00\x2f\xfe\x71\xfd\x7a\xfd\x30\xfe\x32\xfe\x79\xfd\x31\xfe\x6c\xfd\x3e\xfd\x50\xfd\x6a\xfd\x65\xfd\x34\xfd\x2e\xfe\x4d\xfd\x51\xfd\x4f\xfd\x36\xfd\x35\xfd\x32\xfd\x33\xfd\x23\xfd\x21\xfd\x22\xfd\x20\xfd\x1f\xfd\x1e\xfd\x1d\xfd\x1c\xfd\x1b\xfd\x1a\xfd\x00\x00\x00\x00\x00\x00\xa7\xfd\x4e\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x19\xfd\x00\x00\x00\x00\x18\xfe\x00\x00\x00\x00\xfd\xfd\x49\xfd\x3d\xfd\x3c\xfd\x3a\xfd\x3b\xfd\x48\xfd\x47\xfd\x46\xfd\x45\xfd\x44\xfd\x43\xfd\x42\xfd\x41\xfd\x4c\xfd\x00\x00\x19\xfd\x38\xfd\x39\xfd\x4a\xfd\x19\xfd\x19\xfd\x19\xfd\x00\x00\x19\xfd\x4b\xfd\x37\xfd\x40\xfd\x3f\xfd\x00\x00\x00\x00\x00\x00\x01\xff\xd0\xfe\x07\xff\xfd\xfe\xee\xfe\x00\x00\xe6\xfe\xe5\xfe\xfc\xfe\xdf\xfe\x00\x00\xd3\xfe\x00\x00\x00\x00\xfb\xfc\xd8\xfe\xfb\xfe\xfc\xfc\xe8\xfe\xe7\xfe\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xfe\xe2\xfe\xe3\xfe\xf1\xfe\x00\x00\x00\x00\xef\xfe\xfa\xfc\xf9\xfc\xf8\xfc\xc8\xfe\x00\x00\x00\x00\x00\x00\xd6\xff\xd6\xff\x95\xfd\x00\x00\x19\xfd\x00\x00\x61\xfe\x00\x00\xe2\xff\xf1\xff\xef\xff\x19\xfd\x00\x00\xe2\xff\x00\x00\x36\xff\x00\x00\xd6\xff\xd6\xff\x00\x00\xd7\xff\xd9\xff\x00\x00\xe0\xfe\xe1\xfe\x00\x00\xed\xfe\x78\xfd\x77\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\xff\xd0\xfe\xcd\xfe\x00\x00\x00\x00\xdc\xfe\xcd\xfe\x00\x00\x00\x00\x00\x00\xda\xfe\x0e\xfe\xcd\xfe\x00\x00\x00\x00\x00\x00\x52\xfd\x31\xfd\x00\x00\x2e\xfd\x2a\xfd\x2d\xfd\x28\xfd\x2f\xfd\x24\xfd\x30\xfd\xde\xfe\x26\xfd\x53\xfd\x00\x00\x29\xfd\xe3\xfe\x25\xfd\x00\x00\xd1\xfe\xe4\xfe\xfa\xfe\xfe\xfe\x00\x00\xd5\xfe\x5b\xfd\x00\x00\xf6\xfc\xf5\xfc\x00\x00\x00\x00\xcf\xfe\xf4\xfc\xf3\xfc\x00\x00\x00\x00\x00\x00\x00\x00\x84\xfd\x8a\xfd\x8a\xfd\x00\x00\x3c\xfe\x00\x00\x45\xfe\x87\xfd\x4c\xfe\x50\xfe\xd6\xff\xd6\xff\x46\xfe\x00\x00\x4a\xfe\x00\x00\xc4\xfd\xf8\xfd\xf4\xfd\xf7\xfd\xf6\xfd\xf5\xfd\xf0\xfd\xef\xfd\xee\xfd\xed\xfd\xeb\xfd\xec\xfd\xea\xfd\xe9\xfd\xe8\xfd\xe7\xfd\xe6\xfd\xe5\xfd\xe4\xfd\xe3\xfd\xe2\xfd\xe1\xfd\xe0\xfd\xf2\xfd\xf1\xfd\xdf\xfd\xde\xfd\xdd\xfd\xdc\xfd\xdb\xfd\xda\xfd\xd9\xfd\xd8\xfd\xd7\xfd\xd6\xfd\xd5\xfd\xd4\xfd\xd3\xfd\xd2\xfd\xd1\xfd\xd0\xfd\xcf\xfd\xce\xfd\xcd\xfd\xcc\xfd\xcb\xfd\xca\xfd\xc9\xfd\xf3\xfd\xc8\xfd\xc7\xfd\xc6\xfd\x19\xfe\x1a\xfe\x00\x00\x00\x00\x00\x00\x1c\xfe\x1b\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x58\xfe\x00\x00\x00\x00\x05\xfe\x00\x00\x94\xfd\x47\xfe\x38\xfe\x37\xfe\xff\xfe\x00\x00\x3d\xfe\x19\xfd\x09\xfe\xa6\xfd\xa5\xfd\x00\x00\x55\xfd\x54\xfd\x00\x00\x5f\xfd\x2c\xfd\x2b\xfd\x00\x00\x27\xfd\xc0\xfd\x00\x00\xbf\xfd\x72\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x75\xfd\x0c\xfe\x09\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x5b\xfd\x00\x00\x2c\xfd\x2b\xfd\x76\xfd\x29\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x40\xfe\x57\xfd\x56\xfd\x5e\xfe\x61\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\xff\x00\x00\xec\xfc\xee\xfc\x00\x00\x00\x00\xd6\xff\xd6\xff\xd6\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\xff\x0d\xff\x70\xfd\x69\xfd\x00\x00\x00\x00\x00\x00\xd6\xff\x00\x00\x00\x00\xea\xff\xec\xff\x17\xfd\x18\xfd\xf0\xfc\x00\xfd\xff\xfc\xd6\xff\xed\xfc\xd6\xff\xbd\xff\xb8\xff\xbb\xff\x5a\xfe\x5b\xfe\x5c\xfe\x5d\xfe\x60\xfe\x00\x00\x00\x00\x57\xfe\x55\xfe\x00\x00\x82\xfd\x7f\xfd\x00\x00\x35\xfe\x81\xfd\x86\xfd\x39\xfe\x3a\xfe\x6b\xfd\x64\xfd\x27\xfe\x17\xfe\x10\xfe\x16\xfe\x2d\xfe\x15\xfe\x11\xfe\x73\xfd\x0f\xfe\x2c\xfe\x00\x00\x00\x00\x2b\xfe\x0a\xfe\x0d\xfe\x74\xfd\x2a\xfe\x00\x00\x29\xfe\x00\x00\xbe\xfd\x00\x00\x00\x00\x08\xfe\x28\xfe\x00\x00\x00\x00\x00\x00\x48\xfe\xd6\xff\xd6\xff\x3e\xfe\x00\x00\x00\x00\x26\xfe\x00\x00\x22\xfe\x21\xfe\x00\x00\x20\xfe\x1f\xfe\x51\xff\x9f\xff\x00\x00\xd6\xff\x91\xff\x90\xff\x00\x00\x7b\xff\x52\xff\x4b\xff\x4a\xff\x50\xff\x83\xff\x58\xfe\x4f\xff\x16\xfd\x4e\xff\x00\x00\x00\x00\x00\x00\x5b\xff\x00\x00\x01\xfd\x9d\xff\x9c\xff\x9b\xff\x64\xff\x5a\xff\x00\x00\x00\x00\x1d\xff\x1d\xff\x1d\xff\x1d\xff\x1f\xff\x11\xff\x11\xff\x00\x00\x3d\xff\x00\x00\x00\x00\x1d\xfe\x00\x00\xc1\xfd\x00\xfe\x00\x00\xfa\xfd\xfe\xfd\x4b\xfe\xfc\xfd\x00\x00\x19\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x4d\xfe\x00\x00\x3b\xfe\x00\x00\x00\x00\x88\xfd\x8a\xfd\x00\x00\x00\x00\x00\x00\x00\x00\xd4\xfe\x04\xff\x00\x00\x05\xff\x06\xff\x02\xff\xdd\xfe\xd6\xfe\xd7\xfe\xdb\xfe\xf9\xfe\xf4\xfe\x00\x00\xd9\xfe\xf8\xfe\x00\x00\xf7\xfe\x00\x00\x00\x00\x00\x00\xeb\xfe\xf6\xfe\xf5\xfe\xf2\xfe\x00\x00\xea\xfe\x00\x00\x00\x00\x00\x00\xc9\xfe\xc7\xfe\x00\x00\x00\x00\xd6\xff\xd6\xff\xbf\xff\xdb\xff\xd8\xff\xde\xff\x55\xff\x00\x00\x00\x00\x00\x00\x00\x00\xdf\xff\x00\x00\xc4\xfd\xe4\xff\xc1\xfd\x00\x00\xd4\xff\x00\x00\x00\x00\x34\xff\x4c\xff\x35\xff\x4d\xff\xd6\xff\x53\xff\x67\xfe\xd6\xff\x7c\xfd\x32\xfe\x00\x00\xd7\xff\xda\xff\xdd\xff\xd2\xfe\x00\x00\xe9\xfe\xec\xfe\xce\xfe\xcb\xfe\xcc\xfe\xca\xfe\x00\x00\x9d\xfe\x9c\xfe\x9a\xfe\x96\xfe\xfd\xfc\x95\xfe\x94\xfe\x00\x00\x00\x00\x98\xfe\xf7\xfc\x00\x00\x42\xfe\x43\xfe\x8d\xfd\x8b\xfd\x8c\xfd\x8a\xfd\x8e\xfd\x4f\xfe\x52\xfe\x00\x00\x92\xfd\x93\xfd\x8f\xfd\xd6\xff\x00\x00\x49\xfe\x05\xfe\x00\x00\x00\x00\xc2\xfd\x00\x00\xc5\xfd\x00\x00\x4d\xfd\x32\xfd\x49\xfd\x3d\xfd\x3c\xfd\x3a\xfd\x3b\xfd\x48\xfd\x47\xfd\x46\xfd\x45\xfd\x44\xfd\x43\xfd\x42\xfd\x41\xfd\x4c\xfd\x38\xfd\x39\xfd\x4a\xfd\x4b\xfd\xf9\xfd\x67\xfd\x8c\xfe\x00\x00\x00\x00\x3e\xff\x3c\xff\x3a\xff\x37\xff\x00\x00\x00\x00\x00\x00\x12\xff\x00\x00\x0f\xff\x00\x00\x00\x00\x20\xff\x1d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xfd\x04\xfd\x03\xfd\x57\xff\x00\x00\xc2\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\xfe\x00\x00\xd7\xff\x93\xff\x00\x00\x00\x00\x9e\xff\xa9\xfd\x00\x00\xab\xfd\x00\x00\x19\xfd\x06\xfe\x53\xfe\x00\x00\x00\x00\x9f\xfd\x00\x00\xa2\xfd\xb6\xfd\xb4\xfd\xb3\xfd\xb2\xfd\x00\x00\xa4\xfd\x09\xfe\xb8\xfd\x5e\xfd\xba\xfd\xbc\xfd\x09\xfe\xb9\xfd\x0b\xfe\x14\xfe\x07\xfe\x03\xfe\x04\xfe\x12\xfe\x13\xfe\x00\x00\x00\x00\x34\xfe\x5a\xfd\x60\xfd\xb6\xff\xb9\xff\x00\x00\x00\x00\xeb\xff\xe8\xff\xe5\xff\x00\x00\x00\x00\x00\x00\x0a\xff\x00\x00\x00\x00\xe7\xff\x09\xff\x6f\xfd\x68\xfd\x0b\xff\xe6\xff\xe9\xff\xd6\xff\xd6\xff\x00\x00\xb7\xff\x83\xfd\x80\xfd\xbd\xfd\x00\x00\x00\x00\xb1\xfd\x00\x00\x00\x00\xa0\xfd\xa1\xfd\xd6\xff\x9c\xfd\x00\x00\xa8\xfd\x00\x00\x00\x00\x25\xfe\xa0\xff\x59\xfd\x58\xfd\x99\xff\x5d\xfd\x63\xfd\x00\x00\x1e\xfe\x92\xff\x8e\xfe\xa6\xfe\xbb\xfe\x00\x00\xaf\xfe\x49\xff\x00\x00\x32\xff\x69\xfe\x65\xfe\x63\xfe\x00\x00\x00\x00\x69\xfe\x25\xff\x31\xff\x30\xff\x2f\xff\x2e\xff\x2d\xff\x2c\xff\x2b\xff\x2a\xff\x00\x00\x88\xfe\xc4\xfe\x7a\xff\x00\x00\x58\xff\x03\xff\x59\xff\x64\xff\x66\xff\x67\xff\x68\xff\x69\xff\x6a\xff\x65\xff\x78\xfe\x6e\xff\x00\x00\x00\x00\x08\xff\x78\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xfd\x12\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\xff\x21\xff\x80\xff\x13\xff\x7f\xff\x00\x00\x10\xff\x7e\xff\x7d\xff\x00\x00\x00\x00\x00\x00\x42\xff\x00\x00\x00\x00\xfd\xfd\x01\xfe\x00\x00\xff\xfd\xfb\xfd\x00\x00\x91\xfd\x4c\xfe\x89\xfd\x00\x00\x00\x00\x00\x00\x9d\xfe\x93\xfe\x99\xfe\x00\x00\xf3\xfe\x00\x00\xc0\xff\xdc\xff\x00\x00\xd7\xff\x7e\xfd\x00\x00\xd7\xff\x56\xff\x00\x00\x00\x00\x00\x00\xd5\xff\xd0\xff\xf0\xff\x00\x00\xfd\xfd\xed\xff\x00\x00\xd0\xff\xce\xff\xcd\xff\xcb\xff\x00\x00\xd1\xff\x00\x00\x00\x00\x00\x00\xe3\xff\xe1\xff\xe0\xff\x54\xff\x7d\xfd\x00\x00\x7b\xfd\x00\x00\x9b\xfe\x97\xfe\x00\x00\x91\xfe\x00\x00\x00\x00\x90\xfd\x00\x00\xc3\xfd\x4a\xfe\x8b\xfe\x7c\xff\x3b\xff\x39\xff\x38\xff\x0e\xff\x14\xff\x22\xff\x00\x00\x00\x00\x00\x00\x00\x00\x1c\xff\x00\x00\x43\xff\x46\xff\x47\xff\x66\xfd\x0d\xfd\x00\x00\x0e\xfd\x05\xfd\x00\x00\x09\xfd\xc8\xfe\x11\xfd\x14\xfd\x15\xfd\x8f\xff\x98\xff\x00\x00\x00\x00\x00\x00\x6f\xff\x86\xff\x19\xfd\x00\x00\x84\xff\x8a\xff\x00\x00\x00\x00\xc1\xfe\xbf\xfe\x87\xff\x19\xfd\x81\xff\x00\x00\x6e\xfd\x00\x00\x00\x00\x00\x00\x29\xff\x28\xff\x27\xff\x26\xff\x6b\xfe\x19\xfd\x00\x00\x66\xfe\x64\xfe\x6c\xfe\x00\x00\x00\x00\xb5\xfe\xb3\xfe\x00\x00\xc8\xfe\x8d\xfe\xa6\xfe\x19\xfd\x8c\xff\xa5\xfe\xa3\xfe\x01\xfd\xa6\xfe\xbb\xfe\x00\x00\x00\x00\x00\x00\xac\xfd\xaa\xfd\x69\xfe\x99\xfd\x97\xfd\x00\x00\xd7\xff\x9e\xfd\xb5\xfd\x00\x00\x00\x00\x00\x00\xa3\xfd\xb7\xfd\xbb\xfd\xb4\xff\xd7\xff\x00\x00\x00\x00\xf1\xfc\xf2\xfc\xb2\xff\x00\x00\xb0\xfd\xae\xfd\xaf\xfd\x9d\xfd\x9a\xfd\x98\xfd\x9b\xfd\x9a\xff\x5c\xfd\x62\xfd\xa6\xfe\x89\xff\x00\x00\xa4\xfe\xd6\xff\xd6\xff\x8b\xff\x00\x00\x00\x00\xaa\xfe\x00\x00\xb1\xfe\xae\xfe\x00\x00\xd8\xfe\x00\x00\xaf\xfe\x48\xff\x33\xff\x00\x00\x00\x00\x6a\xfe\x82\xff\x00\x00\x00\x00\x00\x00\xd6\xff\xd6\xff\xc4\xfe\xc5\xfe\xc4\xfe\x79\xff\x85\xff\xd6\xff\xd6\xff\x6d\xff\x6c\xff\x6b\xff\x8d\xff\x76\xff\x77\xff\x63\xff\x97\xff\x00\x00\x13\xfd\x19\xfd\x00\x00\x06\xfd\x00\x00\x10\xfd\x00\x00\x00\x00\x41\xff\x3f\xff\x1b\xff\x00\x00\x00\x00\x18\xff\x16\xff\x00\x00\x00\x00\x00\x00\x96\xfd\x00\x00\x00\x00\x90\xfe\x00\x00\xc6\xfe\xc7\xff\x00\x00\xcc\xff\xc2\xff\xc1\xff\xc8\xff\x00\x00\x00\x00\xd1\xff\xd2\xff\x00\x00\x00\x00\xcf\xff\xd3\xff\x00\x00\xc5\xff\xc3\xff\xa2\xff\xa1\xff\xca\xff\xc4\xff\x92\xfe\x00\x00\x00\x00\x51\xfe\x00\x00\x00\x00\x00\x00\x17\xff\x19\xff\x44\xff\x00\x00\x45\xff\x0c\xfd\x07\xfd\x00\x00\xd6\xff\xd6\xff\x00\x00\x8e\xff\x19\xfd\x76\xfe\x00\x00\x00\x00\x00\x00\xbe\xfe\xc0\xfe\x86\xfe\x00\x00\x00\x00\x23\xff\x00\x00\x6d\xfd\x62\xfe\xb4\xfe\x00\x00\x00\x00\xaa\xfe\xb2\xfe\x00\x00\x00\x00\xb0\xfe\x00\x00\x00\x00\x00\x00\xa2\xfe\x9e\xfe\x00\x00\x88\xff\x00\x00\xb5\xff\xbe\xff\xb3\xff\x00\x00\xaf\xff\xd0\xff\xad\xfd\x9f\xfe\x00\x00\xa1\xfe\xbc\xfe\xbd\xfe\xd6\xff\xb8\xfe\x00\x00\xad\xfe\x00\xff\x00\x00\x00\x00\xa8\xfe\xac\xfe\xd7\xfe\x24\xff\x89\xfe\x8a\xfe\x83\xfe\xd6\xff\x84\xfe\x82\xfe\x80\xfe\x00\x00\x00\x00\xc3\xfe\x79\xfe\x7a\xfe\x00\x00\x70\xfe\x71\xfe\xd6\xff\x74\xfe\x72\xfe\x73\xfe\x5b\xff\x00\x00\x62\xff\x00\x00\x00\x00\x00\x00\x55\xff\x00\x00\x00\x00\x08\xfd\x40\xff\x00\x00\x1e\xff\x00\x00\x00\x00\x8f\xfe\xc9\xff\x00\x00\x00\x00\xee\xff\xc6\xff\x00\x00\x02\xfe\x00\x00\x0a\xfd\x0b\xfd\x96\xff\x94\xff\x00\x00\x5d\xff\x00\x00\x00\x00\x00\x00\xd7\xff\x77\xfe\x8e\xfe\x72\xff\x00\x00\x00\x00\x81\xfe\x00\x00\x00\x00\x7f\xfe\xd7\xff\x87\xfe\xab\xfe\x00\x00\x00\x00\x00\x00\xd7\xff\xba\xfe\xa0\xfe\x00\x00\xd0\xff\xac\xff\xab\xff\xfe\xfc\xa8\xff\x00\x00\x00\x00\xa9\xff\xaa\xff\x00\x00\x00\x00\xd1\xff\xb0\xff\xb9\xfe\xb7\xfe\x00\x00\xa7\xfe\xa9\xfe\x85\xfe\x7a\xff\x00\x00\x7b\xfe\x75\xff\x7d\xfe\x00\x00\x00\x00\xa6\xfe\xbb\xfe\x75\xfe\x00\x00\x60\xff\x5e\xff\x00\x00\x61\xff\x95\xff\x15\xff\x41\xfe\x5c\xff\x5f\xff\x6f\xfe\xa6\xfe\x6e\xfe\x98\xff\x71\xff\x7c\xfe\x00\x00\x00\x00\x49\xff\x7e\xfe\x00\x00\xad\xff\xb1\xff\x00\x00\xa3\xff\xa6\xff\x00\x00\xa7\xff\xa5\xff\x00\x00\x00\x00\x00\x00\x74\xff\x70\xff\x6d\xfe\x73\xff\x00\x00\xa4\xff\xb6\xfe"#--happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\x04\x00\x04\x00\x04\x00\x02\x00\x04\x00\x04\x00\x11\x00\x12\x00\x13\x00\x04\x00\x38\x00\x11\x00\x2b\x00\x40\x00\x0b\x00\x0b\x00\x47\x00\x48\x00\x49\x00\x0d\x00\x0e\x00\x0d\x00\x0e\x00\x4a\x00\x67\x00\x0d\x00\x0e\x00\x21\x00\x22\x00\x4e\x00\x40\x00\x47\x00\x48\x00\x49\x00\x70\x00\x53\x00\x54\x00\x1b\x00\x0d\x00\x0e\x00\x4a\x00\x17\x00\x40\x00\x13\x00\x0d\x00\x0e\x00\x79\x00\x0d\x00\x0e\x00\x1b\x00\x0d\x00\x0e\x00\x4a\x00\x1b\x00\x40\x00\xd6\x00\x0d\x00\x0e\x00\x0d\x00\x0e\x00\xcb\x00\x0d\x00\x0e\x00\x1f\x00\x4a\x00\x0d\x00\x0e\x00\x3d\x00\xcb\x00\xd6\x00\x66\x00\x67\x00\xd6\x00\x3d\x00\x1b\x00\x23\x00\x01\x00\x1b\x00\x1c\x00\x00\x00\x0d\x00\x0e\x00\x0d\x00\x1b\x00\x1b\x00\x1b\x00\x0d\x00\x0e\x00\x2f\x00\x00\x00\x0d\x00\x0e\x00\xe9\x00\x1c\x00\x14\x00\x15\x00\x4b\x00\x15\x00\x60\x00\x02\x01\x22\x00\x3c\x00\x48\x00\x0a\x00\x4a\x00\x0c\x00\x1b\x00\xf8\x00\xf9\x00\x1e\x00\x24\x00\x24\x00\x24\x00\x02\x01\xf5\x00\x02\x01\x02\x01\x9c\x00\x31\x00\x1e\x00\x50\x00\x53\x00\x54\x00\x02\x01\xf5\x00\x6b\x00\x7c\x00\x4e\x00\x47\x00\x48\x00\x00\x00\x4a\x00\x4b\x00\x28\x00\x3d\x00\x6d\x00\x4f\x00\x52\x00\x3d\x00\x0a\x00\x17\x00\x18\x00\x11\x01\x48\x00\x49\x00\x16\x00\x72\x00\x75\x00\x27\x00\x80\x00\x81\x00\x10\x01\x11\x01\x6d\x00\x25\x00\x2e\x00\x27\x00\x1b\x00\xe9\x00\x6d\x00\x1e\x00\x2c\x00\x2d\x00\x2e\x00\x6d\x00\x9b\x00\x25\x00\xf5\x00\x33\x00\xf8\x00\xf9\x00\x77\x00\xe3\x00\xf8\x00\xf9\x00\x96\x00\x3b\x00\x9b\x00\x75\x00\xe4\x00\x3f\x00\x96\x00\x41\x00\x42\x00\x43\x00\x28\x00\x77\x00\xe3\x00\x18\x00\x90\x00\xf5\x00\xf6\x00\x90\x00\x18\x00\x10\x01\x11\x01\xf5\x00\xf5\x00\xf6\x00\xfe\x00\xff\x00\x25\x00\x9b\x00\x27\x00\x23\x00\xf5\x00\xf6\x00\x02\x01\x2c\x00\x2d\x00\x2e\x00\x9b\x00\x02\x01\x9b\x00\xf5\x00\x33\x00\xf8\x00\xf9\x00\xe5\x00\x75\x00\xd4\x00\xe3\x00\xe9\x00\x3b\x00\x02\x01\xe7\x00\xdc\x00\x3f\x00\x24\x00\x41\x00\x42\x00\x43\x00\xdc\x00\xf4\x00\xf5\x00\xf6\x00\x02\x01\xf8\x00\xf9\x00\xf5\x00\xf6\x00\xcc\x00\x11\x01\xf9\x00\x23\x00\x24\x00\xd4\x00\xcc\x00\x02\x01\xb1\x00\xe5\x00\xb3\x00\xb4\x00\xe5\x00\x02\x01\x02\x01\x02\x01\xe9\x00\x02\x01\x02\x01\x0f\x01\x02\x01\x02\x01\x02\x01\x0e\x01\xf4\x00\xf5\x00\xf6\x00\xf4\x00\xf5\x00\xf6\x00\x9a\x00\xf8\x00\xf9\x00\x15\x01\x17\x01\x16\x01\xe4\x00\x06\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xf5\x00\xf6\x00\xa8\x00\xa9\x00\xaa\x00\x78\x00\x79\x00\xad\x00\xae\x00\xaf\x00\xe3\x00\xf5\x00\x0f\x01\xf5\x00\xe7\x00\xe3\x00\x1b\x00\x86\x00\xe3\x00\xb9\x00\xe3\x00\x23\x00\xe7\x00\x4b\x00\xe7\x00\x27\x00\x06\x00\x07\x00\xf5\x00\xf6\x00\x2c\x00\x1b\x00\xf9\x00\xf5\x00\xf6\x00\x9a\x00\xf5\x00\xf6\x00\xf5\x00\xf6\x00\xf9\x00\x11\x01\xf9\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\x70\x00\xf5\x00\xa8\x00\xa9\x00\xaa\x00\x00\x00\x0e\x01\xad\x00\xae\x00\xaf\x00\xdf\x00\x70\x00\xe1\x00\xe2\x00\x18\x00\x23\x00\xe5\x00\xe6\x00\xf5\x00\xb9\x00\xe9\x00\x29\x00\xe5\x00\x66\x00\x67\x00\x23\x00\xe9\x00\x23\x00\x10\x01\x11\x01\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xf4\x00\xf5\x00\xf6\x00\x1a\x00\xf8\x00\xf9\x00\x70\x00\x01\x01\x10\x01\x11\x01\x04\x01\x05\x01\xea\x00\x02\x01\x3b\x00\xed\x00\x0a\x01\xef\x00\x23\x00\x1a\x00\xdf\x00\x2c\x00\xe1\x00\xe2\x00\x29\x00\xed\x00\xe5\x00\xe6\x00\x23\x00\xfb\x00\xe9\x00\x14\x01\xfe\x00\xff\x00\xe9\x00\x46\x00\x47\x00\x48\x00\x49\x00\xfb\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xf8\x00\xf9\x00\xf8\x00\xf9\x00\xde\x00\xe3\x00\x25\x00\x01\x01\x27\x00\xe7\x00\x04\x01\x05\x01\xe6\x00\x2c\x00\x2d\x00\x2e\x00\x0a\x01\x90\x00\x91\x00\x92\x00\x33\x00\x1a\x00\xe3\x00\xf5\x00\xf6\x00\xe7\x00\xe7\x00\xf9\x00\x3b\x00\xf7\x00\x23\x00\x18\x00\x3f\x00\x7a\x00\x41\x00\x42\x00\x43\x00\x09\x00\x0a\x00\xe3\x00\xf5\x00\xf6\x00\x23\x00\xf9\x00\xf9\x00\x25\x00\xe5\x00\x27\x00\x23\x00\xf5\x00\xa7\x00\x2c\x00\x8d\x00\x4b\x00\x2e\x00\x39\x00\x3a\x00\xf5\x00\xf6\x00\x33\x00\xf5\x00\xf4\x00\xf5\x00\xf6\x00\x75\x00\x25\x00\x26\x00\x3b\x00\xb9\x00\x1a\x00\xbb\x00\x3f\x00\x3b\x00\x41\x00\x42\x00\x43\x00\x10\x01\x11\x01\x23\x00\x33\x00\x34\x00\x35\x00\xf5\x00\xf5\x00\xf6\x00\xf8\x00\xf9\x00\x10\x01\x11\x01\x5b\x00\x31\x00\x5d\x00\xf5\x00\x34\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x08\x01\x69\x00\x6a\x00\x6b\x00\x5b\x00\x81\x00\x00\x00\x10\x01\x11\x01\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x10\x01\x11\x01\x1a\x00\x7a\x00\x9a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\xe7\x00\xe8\x00\x23\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\x4c\x00\x4d\x00\xa8\x00\xa9\x00\xaa\x00\xa7\x00\x8d\x00\xad\x00\xae\x00\xaf\x00\xe3\x00\xf9\x00\x4b\x00\x06\x00\x07\x00\x23\x00\x75\x00\x25\x00\x26\x00\xb9\x00\x28\x00\x29\x00\x18\x00\xb9\x00\x25\x00\xbb\x00\x27\x00\x9a\x00\xf5\x00\xf6\x00\x17\x00\x33\x00\x34\x00\x35\x00\x1b\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\x29\x00\x00\x00\xa8\x00\xa9\x00\xaa\x00\xf5\x00\xf6\x00\xad\x00\xae\x00\xaf\x00\x3e\x00\x3f\x00\x06\x00\x41\x00\x42\x00\x43\x00\xe7\x00\xe8\x00\xdf\x00\xb9\x00\xe1\x00\xe2\x00\x87\x00\x07\x01\xe5\x00\xe6\x00\x80\x00\x81\x00\xe9\x00\x17\x00\xf5\x00\xf6\x00\x7a\x00\xe5\x00\xf9\x00\xf5\x00\xf6\x00\x2d\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\x06\x00\x07\x00\x06\x01\xf4\x00\xf5\x00\xf6\x00\x8d\x00\x01\x01\x07\x01\xe6\x00\x04\x01\x05\x01\xdf\x00\x1b\x00\xe1\x00\xe2\x00\x0a\x01\x17\x00\xe5\x00\xe6\x00\xf5\x00\xf6\x00\xe9\x00\x06\x00\xf5\x00\x1b\x00\xf7\x00\xf8\x00\xf9\x00\xe3\x00\x2c\x00\x1c\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\x08\x01\x17\x00\xf5\x00\x2c\x00\x09\x00\xf8\x00\xf9\x00\x01\x01\xf5\x00\xf6\x00\x04\x01\x05\x01\x10\x01\x11\x01\xda\x00\xdb\x00\x0a\x01\xf5\x00\x9a\x00\x06\x00\xf8\x00\xf9\x00\x1a\x00\x71\x00\x25\x00\xe5\x00\x27\x00\x75\x00\xa4\x00\x10\x01\x11\x01\x23\x00\xa8\x00\x26\x00\xaa\x00\x2d\x00\x17\x00\xad\x00\xae\x00\xaf\x00\xf4\x00\xf5\x00\xf6\x00\xe5\x00\x10\x01\x11\x01\x33\x00\x34\x00\x35\x00\xb9\x00\x3f\x00\x9c\x00\x41\x00\x42\x00\x43\x00\x1d\x00\x5a\x00\x5b\x00\xf4\x00\xf5\x00\xf6\x00\x23\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x25\x00\xe4\x00\x27\x00\x18\x00\x1a\x00\x07\x00\x09\x00\x0a\x00\x06\x00\x07\x00\x23\x00\x0d\x00\x0e\x00\x23\x00\x23\x00\xdd\x00\xde\x00\xdf\x00\xf5\x00\xe1\x00\xe2\x00\x2e\x00\x2c\x00\xe5\x00\xe6\x00\x17\x00\x3f\x00\xe9\x00\x41\x00\x42\x00\x43\x00\x56\x00\x57\x00\x58\x00\x2c\x00\x26\x00\x2e\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\x06\x00\x07\x00\x76\x00\xb3\x00\x33\x00\x34\x00\x35\x00\x01\x01\xe7\x00\xe8\x00\x04\x01\x05\x01\x1c\x00\x81\x00\x82\x00\x27\x00\x0a\x01\x17\x00\x91\x00\x92\x00\x1c\x00\x94\x00\x2e\x00\x5a\x00\x5b\x00\x20\x00\xf9\x00\x9a\x00\x23\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xa4\x00\xd1\x00\x06\x00\x07\x00\xa8\x00\xd5\x00\xaa\x00\x06\x00\x07\x00\xad\x00\xae\x00\xaf\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x17\x00\x2a\x00\xb9\x00\x18\x00\x2d\x00\x17\x00\x1c\x00\x19\x00\x01\x00\x92\x00\xf2\x00\x94\x00\x9b\x00\x1f\x00\x23\x00\x08\x00\x09\x00\x9a\x00\xfa\x00\xfb\x00\xfc\x00\x18\x00\xfe\x00\xff\x00\x00\x01\x23\x00\x25\x00\xa4\x00\x27\x00\x27\x00\x10\x00\xa8\x00\x23\x00\xaa\x00\x2c\x00\x10\x00\xad\x00\xae\x00\xaf\x00\x10\x00\xdf\x00\xf5\x00\xe1\x00\xe2\x00\xf8\x00\xf9\x00\xe5\x00\xe6\x00\xb9\x00\x9c\x00\xe9\x00\x3e\x00\x3f\x00\x29\x00\x41\x00\x42\x00\x43\x00\x75\x00\x57\x00\x58\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\x9b\x00\x10\x01\x11\x01\x9c\x00\xf2\x00\xe3\x00\x25\x00\x01\x01\x27\x00\xe7\x00\x04\x01\x05\x01\xfa\x00\xfb\x00\x1d\x00\x1c\x00\x0a\x01\x58\x00\x59\x00\xdf\x00\x23\x00\xe1\x00\xe2\x00\xf5\x00\xf6\x00\xe5\x00\xe6\x00\xf9\x00\x9c\x00\xe9\x00\x01\x00\x28\x00\x3f\x00\x2a\x00\x41\x00\x42\x00\x43\x00\x08\x00\x09\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\x1c\x00\x55\x00\x56\x00\x57\x00\x58\x00\x8a\x00\x8b\x00\x01\x01\x23\x00\xf5\x00\x04\x01\x05\x01\xf8\x00\xf9\x00\x6e\x00\x2a\x00\x0a\x01\x1d\x00\x55\x00\x56\x00\x57\x00\x58\x00\xea\x00\x39\x00\x3a\x00\xed\x00\x18\x00\xef\x00\xf5\x00\x03\x00\x9a\x00\xf8\x00\xf9\x00\x22\x00\x08\x00\x09\x00\x10\x01\x11\x01\x20\x00\xfb\x00\xa4\x00\x20\x00\xfe\x00\xff\x00\xa8\x00\x28\x00\xaa\x00\x2a\x00\x23\x00\xad\x00\xae\x00\xaf\x00\x90\x00\x91\x00\x92\x00\x10\x01\x11\x01\x5b\x00\x28\x00\x5d\x00\x2a\x00\xb9\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xf2\x00\x69\x00\x6a\x00\x6b\x00\xbc\x00\xbd\x00\xbe\x00\x9a\x00\xfa\x00\xfb\x00\xfc\x00\x2c\x00\xfe\x00\xff\x00\x00\x01\xe3\x00\x28\x00\xa4\x00\x2a\x00\xe7\x00\x28\x00\xa8\x00\x2a\x00\xaa\x00\x8c\x00\x8d\x00\xad\x00\xae\x00\xaf\x00\xdf\x00\xe9\x00\xe1\x00\xe2\x00\xf5\x00\xf6\x00\xe5\x00\xe6\x00\xf9\x00\xb9\x00\xe9\x00\xe3\x00\xf4\x00\xf5\x00\xf6\x00\xe7\x00\xf8\x00\xf9\x00\x29\x00\x2a\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xe0\x00\xe1\x00\xf5\x00\xf6\x00\xf5\x00\xf6\x00\xf9\x00\x01\x01\xf9\x00\xe9\x00\x04\x01\x05\x01\x0f\x01\x06\x00\x07\x00\xfb\x00\x0a\x01\xe3\x00\xfe\x00\xff\x00\xdf\x00\xe7\x00\xe1\x00\xe2\x00\xf8\x00\xf9\x00\xe5\x00\xe6\x00\x29\x00\x2a\x00\xe9\x00\x58\x00\x59\x00\x3a\x00\xe3\x00\xf5\x00\xf6\x00\x18\x00\xe7\x00\xf9\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\xf5\x00\xf6\x00\x01\x01\x4f\x00\xf9\x00\x04\x01\x05\x01\x29\x00\x2a\x00\x71\x00\x3a\x00\x0a\x01\x74\x00\x75\x00\x5b\x00\x28\x00\x5d\x00\x2a\x00\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x18\x00\x69\x00\x6a\x00\x6b\x00\x18\x00\x3c\x00\xf5\x00\x18\x00\xf7\x00\xf8\x00\xf9\x00\xfc\x00\x18\x00\xfe\x00\xff\x00\x00\x01\x5b\x00\x0a\x00\x5d\x00\x0c\x00\x9b\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x0d\x00\x69\x00\x6a\x00\x6b\x00\x10\x01\x11\x01\x9b\x00\x5b\x00\x5c\x00\x5d\x00\x4c\x00\x4d\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x44\x00\x45\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x5a\x00\x5b\x00\x53\x00\x54\x00\x55\x00\x56\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x44\x00\x45\x00\x28\x00\x5b\x00\x2a\x00\x5d\x00\x04\x00\x05\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x06\x00\x07\x00\x6a\x00\x6b\x00\x44\x00\x45\x00\xe3\x00\x5b\x00\x2e\x00\x5d\x00\xe7\x00\x6e\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x29\x00\x2a\x00\x6a\x00\x6b\x00\xf5\x00\xf6\x00\x1b\x00\x5b\x00\xf9\x00\x5d\x00\x29\x00\x2a\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x77\x00\xe6\x00\x6a\x00\x6b\x00\x5e\x00\x4e\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x28\x00\x28\x00\xf5\x00\x2a\x00\xf7\x00\xf8\x00\xf9\x00\x0c\x00\x0d\x00\x0e\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x28\x00\xe6\x00\x2a\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x2a\x00\x09\x00\x2c\x00\x0b\x00\xbc\x00\xbd\x00\xbe\x00\x10\x01\x11\x01\xf5\x00\x5b\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x20\x00\x25\x00\x26\x00\x28\x00\x28\x00\x2a\x00\xf5\x00\x26\x00\xf7\x00\xf8\x00\xf9\x00\x3b\x00\x43\x00\x10\x01\x11\x01\x33\x00\x34\x00\x35\x00\x42\x00\x43\x00\x33\x00\x34\x00\x35\x00\xe5\x00\xda\x00\xdb\x00\xf5\x00\xe6\x00\x43\x00\xf8\x00\xf9\x00\x29\x00\x2a\x00\x10\x01\x11\x01\xe5\x00\x08\x00\x09\x00\xf4\x00\xf5\x00\xf6\x00\x3b\x00\xf5\x00\xe5\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x42\x00\x43\x00\xf4\x00\xf5\x00\xf6\x00\x10\x01\x11\x01\x0c\x00\x0d\x00\x0e\x00\xf4\x00\xf5\x00\xf6\x00\x43\x00\xf5\x00\xe9\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x18\x00\x10\x01\x11\x01\x28\x00\xf2\x00\x2a\x00\xf4\x00\xf5\x00\xf6\x00\x2c\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xf5\x00\x1c\x00\xf7\x00\xf8\x00\xf9\x00\x05\x00\x06\x00\x10\x01\x11\x01\x9d\x00\x9e\x00\x9f\x00\x06\x00\x07\x00\xf5\x00\x0d\x00\x0e\x00\xf8\x00\xf9\x00\x0f\x01\x2e\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x0d\x00\x0e\x00\x10\x01\x11\x01\x17\x00\x23\x00\x19\x00\xe5\x00\x28\x00\xa4\x00\x2a\x00\x20\x00\x1f\x00\xa8\x00\x22\x00\xaa\x00\x10\x01\x11\x01\xad\x00\xae\x00\xaf\x00\x23\x00\xf4\x00\xf5\x00\xf6\x00\xe5\x00\x1a\x00\x98\x00\x99\x00\x9a\x00\xb9\x00\x41\x00\x42\x00\x43\x00\xf5\x00\x0d\x00\x0e\x00\xf8\x00\xf9\x00\xa4\x00\xf4\x00\xf5\x00\xf6\x00\xa8\x00\x18\x00\xaa\x00\x5a\x00\x5b\x00\xad\x00\xae\x00\xaf\x00\x18\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xb9\x00\x10\x01\x11\x01\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\xdf\x00\x18\x00\xe1\x00\xe2\x00\xf2\x00\x18\x00\xe5\x00\xe6\x00\x18\x00\x28\x00\xe9\x00\x2a\x00\xfa\x00\xfb\x00\xfc\x00\x18\x00\xfe\x00\xff\x00\x00\x01\x53\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\x9d\x00\x9e\x00\x9f\x00\xdf\x00\x9b\x00\xe1\x00\xe2\x00\x01\x01\x06\x00\xe5\x00\xe6\x00\x05\x00\x06\x00\xe9\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\xcf\x00\xd0\x00\xd1\x00\x9b\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\x82\x00\x83\x00\x84\x00\x75\x00\x28\x00\xa4\x00\x2a\x00\x01\x01\x28\x00\xa8\x00\x2a\x00\xaa\x00\x0d\x00\x0e\x00\xad\x00\xae\x00\xaf\x00\x7b\x00\x7c\x00\x7d\x00\x23\x00\x28\x00\x5b\x00\x2a\x00\x5d\x00\x7e\x00\xb9\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xe9\x00\x1d\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x82\x00\x83\x00\x84\x00\x0d\x00\x0e\x00\xf4\x00\xf5\x00\xf6\x00\x25\x00\xf8\x00\xf9\x00\x23\x00\x82\x00\x83\x00\x84\x00\x25\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x2a\x00\x28\x00\xdf\x00\x2a\x00\xe1\x00\xe2\x00\xb4\x00\xb5\x00\xe5\x00\xe6\x00\x2c\x00\x0f\x01\xe9\x00\x28\x00\xf5\x00\x2a\x00\x23\x00\xf8\x00\xf9\x00\xe9\x00\x4f\x00\x50\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\x2c\x00\xf4\x00\xf5\x00\xf6\x00\x25\x00\xf8\x00\xf9\x00\x01\x01\x1e\x00\x1f\x00\x20\x00\x1d\x00\x10\x01\x11\x01\x28\x00\x5b\x00\x2a\x00\x5d\x00\x68\x00\xb3\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x0f\x01\xf2\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x82\x00\x83\x00\x84\x00\xfa\x00\xfb\x00\xfc\x00\x0d\x00\xfe\x00\xff\x00\x00\x01\x5b\x00\x28\x00\x5d\x00\x2a\x00\x17\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x0d\x00\x0e\x00\x6a\x00\x6b\x00\x2c\x00\x6d\x00\x2e\x00\xe9\x00\xbd\x00\xbe\x00\xf4\x00\xf5\x00\xf6\x00\xe6\x00\xf8\x00\xf9\x00\x0d\x00\x0e\x00\xf4\x00\xf5\x00\xf6\x00\x1f\x00\xf8\x00\xf9\x00\x2a\x00\xf2\x00\x2c\x00\x1b\x00\xf5\x00\x1d\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\x10\x00\xfe\x00\xff\x00\x00\x01\x18\x00\x1b\x00\x5b\x00\x1d\x00\x5d\x00\x0f\x01\xb3\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x10\x01\x11\x01\x6a\x00\x6b\x00\x49\x00\x6d\x00\x6e\x00\x5b\x00\xb1\x00\x5d\x00\xb3\x00\x1c\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xb3\x00\x1d\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x7a\x00\xb9\x00\x5b\x00\xbb\x00\x5d\x00\x0d\x00\x0e\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x1d\x00\xe6\x00\x6a\x00\x6b\x00\x28\x00\x6d\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x1b\x00\xf2\x00\x0f\x00\x10\x00\xf5\x00\x25\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\x1d\x00\xfe\x00\xff\x00\x00\x01\x4e\x00\x85\x00\xe6\x00\xbc\x00\xbd\x00\xbe\x00\xb3\x00\x9c\x00\xf4\x00\xf5\x00\xf6\x00\x1d\x00\xf8\x00\xf9\x00\xf2\x00\x10\x01\x11\x01\xf5\x00\x48\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\x5b\x00\x17\x00\x5d\x00\x0d\x00\x0e\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x10\x00\x69\x00\x6a\x00\x6b\x00\xbc\x00\xbd\x00\xbe\x00\x10\x01\x11\x01\x82\x00\x83\x00\x84\x00\x82\x00\x83\x00\x84\x00\x10\x00\x5b\x00\x2a\x00\x5d\x00\x61\x00\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x1b\x00\x69\x00\x6a\x00\x6b\x00\x0d\x00\x0e\x00\xf5\x00\x29\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xeb\x00\x0d\x00\x0e\x00\xee\x00\x23\x00\xf0\x00\xf5\x00\xf2\x00\xf7\x00\xf8\x00\xf9\x00\x18\x00\xe6\x00\x10\x01\x11\x01\xfa\x00\xfb\x00\xfc\x00\x0d\x00\xfe\x00\xff\x00\x00\x01\x2a\x00\xfa\x00\xfb\x00\x17\x00\x18\x00\xf5\x00\x23\x00\xf7\x00\xf8\x00\xf9\x00\x4e\x00\x10\x01\x11\x01\x5b\x00\x29\x00\x5d\x00\x17\x00\x18\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x0d\x00\x0e\x00\x6a\x00\x6b\x00\x9b\x00\x6d\x00\x10\x01\x11\x01\x5b\x00\x0a\x00\x5d\x00\x0d\x00\x0e\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x2c\x00\x69\x00\x6a\x00\x6b\x00\xe0\x00\xe1\x00\x0d\x00\x0e\x00\xe6\x00\x23\x00\xf5\x00\xf6\x00\x10\x00\xe9\x00\x29\x00\x2a\x00\xfe\x00\xff\x00\x7c\x00\x7d\x00\xfe\x00\xff\x00\xf2\x00\xf5\x00\x9b\x00\xf7\x00\xf8\x00\xf9\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\x23\x00\x5b\x00\x1f\x00\x5d\x00\x29\x00\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x2a\x00\x69\x00\x6a\x00\x6b\x00\x10\x01\x11\x01\xf5\x00\x9b\x00\xf7\x00\xf8\x00\xf9\x00\x71\x00\x72\x00\xf5\x00\xf6\x00\x9b\x00\x5b\x00\x9b\x00\x5d\x00\x0d\x00\x0e\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x9b\x00\x69\x00\x6a\x00\x6b\x00\x10\x01\x11\x01\x72\x00\x5b\x00\x9b\x00\x5d\x00\x0d\x00\x0e\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x9b\x00\x69\x00\x6a\x00\x6b\x00\x0d\x00\x0e\x00\x2c\x00\x5b\x00\x1b\x00\x5d\x00\xe6\x00\x43\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xe5\x00\x69\x00\x6a\x00\x6b\x00\xe9\x00\xf5\x00\x1c\x00\xf7\x00\xf8\x00\xf9\x00\x2d\x00\xe6\x00\x1d\x00\x29\x00\x2a\x00\xf4\x00\xf5\x00\xf6\x00\x2c\x00\xf8\x00\xf9\x00\x23\x00\x10\x00\x2c\x00\x2c\x00\x2c\x00\xf5\x00\x06\x00\xf7\x00\xf8\x00\xf9\x00\x18\x00\x10\x01\x11\x01\x5b\x00\x18\x00\x5d\x00\x60\x00\x6e\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x23\x00\x69\x00\x6a\x00\x6b\x00\x65\x00\x7d\x00\x10\x01\x11\x01\x7d\x00\x69\x00\xe6\x00\x2c\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x29\x00\x18\x00\x23\x00\x7d\x00\x7d\x00\x7d\x00\xf5\x00\x2a\x00\xf7\x00\xf8\x00\xf9\x00\x9b\x00\x9b\x00\x29\x00\x9b\x00\x20\x00\x5b\x00\x0d\x00\x5d\x00\x29\x00\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x69\x00\x69\x00\x6a\x00\x6b\x00\x10\x01\x11\x01\xf5\x00\x10\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x18\x00\x9b\x00\x1b\x00\x20\x00\x33\x00\x23\x00\x06\x00\x07\x00\x18\x00\x1b\x00\x0a\x00\x9b\x00\x0c\x00\x7d\x00\xf5\x00\x9b\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x18\x00\x10\x01\x11\x01\x17\x00\x23\x00\x19\x00\x17\x00\x2a\x00\x18\x00\x0d\x00\x67\x00\x1f\x00\x23\x00\x20\x00\xf5\x00\x1d\x00\xf7\x00\xf8\x00\xf9\x00\x2c\x00\x28\x00\x10\x01\x11\x01\x5b\x00\x7d\x00\x5d\x00\x1c\x00\x23\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x1c\x00\x69\x00\x6a\x00\x6b\x00\x1c\x00\x10\x01\x11\x01\x5b\x00\x29\x00\x5d\x00\xe6\x00\x65\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x7d\x00\x69\x00\x6a\x00\x6b\x00\x2c\x00\xf5\x00\x1c\x00\xf7\x00\xf8\x00\xf9\x00\x25\x00\x65\x00\x25\x00\x7d\x00\x2c\x00\x1b\x00\x23\x00\x5f\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x6d\x00\xf5\x00\x7c\x00\x1c\x00\xf8\x00\xf9\x00\x1c\x00\x65\x00\x69\x00\x10\x01\x11\x01\x5b\x00\x18\x00\x5d\x00\x29\x00\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x1c\x00\x69\x00\x6a\x00\x6b\x00\x10\x01\x11\x01\xf5\x00\x26\x00\xf7\x00\xf8\x00\xf9\x00\x7d\x00\x9b\x00\x23\x00\x28\x00\x9b\x00\x5b\x00\x2a\x00\x5d\x00\x49\x00\x23\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x18\x00\x69\x00\x6a\x00\x6b\x00\x10\x01\x11\x01\x18\x00\x5b\x00\x0d\x00\x5d\x00\x29\x00\x2e\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x1c\x00\x69\x00\x6a\x00\x6b\x00\x18\x00\x1d\x00\x1d\x00\x5b\x00\x06\x00\x5d\x00\xe6\x00\x1d\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xe9\x00\x69\x00\x6a\x00\x6b\x00\x17\x00\xf5\x00\x23\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\xf4\x00\xf5\x00\xf6\x00\x18\x00\xf8\x00\xf9\x00\x29\x00\x68\x00\x1c\x00\x4c\x00\x1d\x00\x9b\x00\x4c\x00\x18\x00\xf5\x00\x2a\x00\xf7\x00\xf8\x00\xf9\x00\x2a\x00\x1b\x00\x10\x01\x11\x01\x5b\x00\x18\x00\x5d\x00\x23\x00\x0f\x01\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x17\x00\x69\x00\x6a\x00\x6b\x00\x18\x00\x10\x01\x11\x01\x5b\x00\x29\x00\x5d\x00\xe6\x00\x7d\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x65\x00\x69\x00\x6a\x00\x6b\x00\x65\x00\xf5\x00\x2c\x00\xf7\x00\xf8\x00\xf9\x00\x18\x00\x2e\x00\x2c\x00\x18\x00\x09\x00\x09\x00\x19\x00\xba\x00\x64\x00\xe6\x00\x02\x01\x6f\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x03\x01\x0d\x01\xbf\x00\xb3\x00\xa6\x00\xb3\x00\x10\x01\x11\x01\xf5\x00\x1a\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x0d\x01\x03\x01\xf9\x00\xf9\x00\x1b\x00\x26\x00\x0c\x01\x03\x01\x36\x00\x0a\x00\x51\x00\x26\x00\x51\x00\x28\x00\xf5\x00\x51\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x51\x00\x10\x01\x11\x01\x03\x01\x33\x00\x34\x00\x35\x00\xd8\x00\x03\x00\xbf\x00\x03\x01\x03\x01\x8e\x00\x03\x01\xf5\x00\xfb\x00\xf7\x00\xf8\x00\xf9\x00\x51\x00\x4c\x00\x10\x01\x11\x01\x5b\x00\x4c\x00\x5d\x00\x03\x01\x73\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x1c\x00\xf9\x00\x6a\x00\x6b\x00\x76\x00\x10\x01\x11\x01\x5b\x00\x0d\x01\x5d\x00\xe6\x00\x9b\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x9b\x00\x9f\x00\x6a\x00\x6b\x00\x4d\x00\xf5\x00\x2f\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x8f\x00\x36\x00\x95\x00\x34\x00\x30\x00\x52\x00\x50\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\xba\x00\xd1\x00\xf5\x00\xa6\x00\xf7\x00\xf8\x00\xf9\x00\x11\x00\x6f\x00\x10\x01\x11\x01\x5b\x00\x0d\x01\x5d\x00\xba\x00\x35\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x09\x01\x02\x01\x6a\x00\x6b\x00\x6f\x00\x10\x01\x11\x01\x5b\x00\x02\x01\x5d\x00\x84\x00\x02\x01\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x9b\x00\x76\x00\x6a\x00\x6b\x00\x0c\x01\x1d\x00\x18\x00\x5b\x00\x03\x01\x5d\x00\x37\x00\xd1\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x0d\x01\x02\x01\x6a\x00\x6b\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\xf9\x00\x03\x01\x03\x01\x03\x01\x93\x00\x32\x00\x03\x01\x5b\x00\x11\x00\x5d\x00\xe6\x00\x03\x01\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xe9\x00\x2f\x00\x6a\x00\x6b\x00\x31\x00\xf5\x00\x76\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\xf4\x00\xf5\x00\xf6\x00\x2a\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\x10\x01\x11\x01\x5b\x00\xff\xff\x5d\x00\xff\xff\x0f\x01\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\x6b\x00\xff\xff\x10\x01\x11\x01\x5b\x00\xff\xff\x5d\x00\xe6\x00\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\x6b\x00\xff\xff\xf5\x00\xe9\x00\xf7\x00\xf8\x00\xf9\x00\xe6\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf4\x00\xf5\x00\xf6\x00\xff\xff\xf8\x00\xf9\x00\xff\xff\xff\xff\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xe6\x00\xff\xff\x10\x01\x11\x01\x9c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x01\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\x10\x01\x11\x01\xff\xff\x5b\x00\xff\xff\x5d\x00\xff\xff\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\x6b\x00\x10\x01\x11\x01\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\xff\xff\x5d\x00\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\x6b\x00\x10\x01\x11\x01\xff\xff\xff\xff\xff\xff\xe6\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\x00\xff\xff\xff\xff\xee\x00\xff\xff\xf0\x00\xff\xff\xf2\x00\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xe6\x00\xff\xff\xfa\x00\xfb\x00\xfc\x00\xff\xff\xfe\x00\xff\x00\x00\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\x10\x01\x11\x01\x5b\x00\xff\xff\x5d\x00\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\x6b\x00\xff\xff\x10\x01\x11\x01\x5b\x00\xff\xff\x5d\x00\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\x6b\x00\xff\xff\xff\xff\xff\xff\x5b\x00\xff\xff\x5d\x00\xff\xff\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\xff\xff\x5d\x00\xff\xff\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\x6a\x00\x6b\x00\x10\x01\x11\x01\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\xff\xff\x5d\x00\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\xff\xff\x6b\x00\x10\x01\x11\x01\xff\xff\xff\xff\x5b\x00\xff\xff\x5d\x00\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xe6\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\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xe6\x00\x5b\x00\x10\x01\x11\x01\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\x10\x01\x11\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe6\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x10\x01\x11\x01\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\xff\xff\x5d\x00\xff\xff\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x10\x01\x11\x01\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xff\xff\xe6\x00\x5b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xf5\x00\x0b\x01\xf7\x00\xf8\x00\xf9\x00\xff\xff\x10\x01\x11\x01\x5b\x00\xff\xff\x5d\x00\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe6\x00\x10\x01\x11\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\x5b\x00\xff\xff\x5d\x00\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\xf5\x00\xff\xff\xff\xff\xf8\x00\xf9\x00\xff\xff\xff\xff\x10\x01\x11\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\xff\xff\x5d\x00\xff\xff\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x10\x01\x11\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\xff\xff\x5d\x00\xff\xff\xe6\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\x5e\x00\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\x00\x10\x01\x11\x01\xf8\x00\xf9\x00\xff\xff\xff\xff\xe6\x00\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\x10\x01\x11\x01\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\xff\xff\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xff\xff\xff\xff\xe6\x00\xff\xff\xff\xff\xff\xff\x10\x01\x11\x01\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\x7e\x00\x7f\x00\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xe6\x00\xff\xff\xff\xff\xff\xff\xf4\x00\xf5\x00\xf6\x00\xff\xff\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\x10\x01\x11\x01\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xe6\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\x0f\x01\xff\xff\xff\xff\xff\xff\xf5\x00\xff\xff\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\x10\x01\x11\x01\xe9\x00\xff\xff\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\x23\x00\xff\xff\x25\x00\x26\x00\xf5\x00\x28\x00\x29\x00\xf8\x00\xf9\x00\xb9\x00\x10\x01\x11\x01\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xee\x00\xff\xff\x10\x01\x11\x01\xf2\x00\xff\xff\xff\xff\xf5\x00\xff\xff\xff\xff\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xff\xff\xff\xff\xff\xff\xe9\x00\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xf5\x00\xff\xff\xff\xff\xf8\x00\xf9\x00\x10\x01\x11\x01\x12\x01\x13\x01\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xf5\x00\xff\xff\xff\xff\xf8\x00\xf9\x00\xff\xff\x01\x01\xff\xff\xff\xff\xff\xff\x10\x01\x11\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\x10\x01\x11\x01\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xe9\x00\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xf4\x00\xf5\x00\xf6\x00\x2b\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x0f\x01\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\x6d\x00\xff\xff\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\xff\xff\x76\x00\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x92\x00\x93\x00\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\x9a\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x18\x00\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x26\x00\x19\x00\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\x6d\x00\xff\xff\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\xff\xff\x76\x00\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x92\x00\x93\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9a\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\xff\xff\x76\x00\xff\xff\x78\x00\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x92\x00\x93\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x9a\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\x63\x00\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xe9\x00\x6b\x00\xff\xff\xff\xff\xff\xff\x6f\x00\x70\x00\x71\x00\xff\xff\xff\xff\x74\x00\xf4\x00\xf5\x00\xf6\x00\xff\xff\xf8\x00\xf9\x00\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\x0f\x01\xff\xff\xff\xff\x93\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\x63\x00\x64\x00\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\x6f\x00\x70\x00\x71\x00\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\x93\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xeb\x00\x68\x00\x69\x00\xee\x00\x6b\x00\xf0\x00\xff\xff\xf2\x00\x6f\x00\x70\x00\x71\x00\xff\xff\xff\xff\x74\x00\xff\xff\xfa\x00\xfb\x00\xfc\x00\xff\xff\xfe\x00\xff\x00\x00\x01\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\x93\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xeb\x00\x68\x00\x69\x00\xee\x00\x6b\x00\xf0\x00\xff\xff\xf2\x00\x6f\x00\x70\x00\x71\x00\xff\xff\xff\xff\x74\x00\xff\xff\xfa\x00\xfb\x00\xfc\x00\xff\xff\xfe\x00\xff\x00\x00\x01\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\x93\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\x63\x00\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x76\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\x93\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\x63\x00\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\x76\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\x93\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xeb\x00\x68\x00\x69\x00\xee\x00\x6b\x00\xf0\x00\xff\xff\xf2\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xfa\x00\xfb\x00\xfc\x00\xff\xff\xfe\x00\xff\x00\x00\x01\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\x93\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\x17\x00\x18\x00\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\xff\xff\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\x06\x00\x07\x00\xff\xff\x09\x00\x0a\x00\xff\xff\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\x8e\x00\x8f\x00\x24\x00\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\xf4\x00\xf5\x00\xf6\x00\xff\xff\xf8\x00\xf9\x00\xff\xff\x3d\x00\x3e\x00\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xf4\x00\xf5\x00\xf6\x00\xff\xff\xf8\x00\xf9\x00\xff\xff\x0f\x01\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\x7e\x00\x0c\x00\x0d\x00\x81\x00\x82\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\x8e\x00\x8f\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\xff\xff\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\x06\x00\x07\x00\xff\xff\x09\x00\x0a\x00\xff\xff\x0c\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\x8e\x00\x8f\x00\x24\x00\x25\x00\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\x23\x00\xff\xff\x25\x00\x26\x00\xff\xff\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\x34\x00\x35\x00\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\x0d\x00\x81\x00\x82\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\x1a\x00\x8e\x00\x8f\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\x20\x00\x21\x00\x8e\x00\x8f\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\x20\x00\x21\x00\x8e\x00\x8f\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\x52\x00\x21\x00\x8e\x00\x8f\x00\x24\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\x0d\x00\x81\x00\x82\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\xff\xff\x8e\x00\x8f\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\x52\x00\x21\x00\x8e\x00\x8f\x00\x24\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x72\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\x8e\x00\x8f\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x69\x00\xff\xff\x6b\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x7e\x00\x19\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\x09\x00\x0a\x00\x0b\x00\x0c\x00\x72\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x18\x00\x7e\x00\x7f\x00\x0d\x00\x81\x00\x82\x00\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\xff\xff\x17\x00\x26\x00\x19\x00\x28\x00\x8e\x00\x8f\x00\xff\xff\xff\xff\x1f\x00\x2e\x00\x21\x00\xff\xff\xff\xff\x24\x00\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\x8e\x00\x8f\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\x8e\x00\x8f\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x69\x00\xff\xff\x6b\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x7e\x00\x19\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\xff\xff\xff\xff\x8e\x00\x8f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\x8e\x00\x8f\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\x8e\x00\x8f\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\x8e\x00\x8f\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\x8e\x00\x8f\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x6b\x00\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x7e\x00\x19\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\xff\xff\xff\xff\x8e\x00\x8f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\x8e\x00\x8f\x00\x24\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\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x6b\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x7e\x00\x19\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x6b\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x7e\x00\x19\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\x6b\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x7e\x00\x19\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x44\x00\xff\xff\x46\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\x25\x00\x26\x00\xff\xff\x28\x00\x29\x00\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8e\x00\x8f\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\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\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\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\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\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\xff\xff\x19\x00\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\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\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\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\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\x20\x00\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\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\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\x2b\x00\x2c\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\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\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\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\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\x79\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\x79\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\x7a\x00\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\x1b\x00\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\x7a\x00\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\x1c\x00\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\x6c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x73\x00\x74\x00\xff\xff\xff\xff\xff\xff\x78\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x89\x00\x8a\x00\x8b\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\x33\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\x66\x00\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x61\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\x30\x00\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1f\x00\xff\xff\x21\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\xff\xff\x44\x00\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\x4a\x00\x4b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\xff\xff\x06\x00\x07\x00\xff\xff\xff\xff\x0a\x00\xff\xff\x0c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x1f\x00\xff\xff\x06\x00\x07\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\x28\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\xff\xff\x06\x00\x07\x00\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\x1f\x00\xff\xff\x06\x00\x07\x00\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\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\xad\x00\xae\x00\xaf\x00\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x68\x00\x69\x00\xff\xff\x6b\x00\xb9\x00\x01\x00\xff\xff\x03\x00\xff\xff\xff\xff\x06\x00\x07\x00\xff\xff\x75\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x1f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x09\x00\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\x17\x00\xff\xff\x35\x00\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\x34\x00\x35\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\x68\x00\x69\x00\x01\x00\x6b\x00\x03\x00\xff\xff\xff\xff\x06\x00\x07\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\x7e\x00\x7f\x00\x17\x00\x81\x00\x82\x00\xff\xff\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\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\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\x27\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x68\x00\x69\x00\x01\x00\x6b\x00\x03\x00\xff\xff\xff\xff\x06\x00\x07\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\x7e\x00\x7f\x00\x17\x00\x81\x00\x82\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\x06\x00\xff\xff\xff\xff\x24\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\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\x01\x00\x6b\x00\x03\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x17\x00\x81\x00\x82\x00\x68\x00\x69\x00\x01\x00\x6b\x00\x03\x00\xff\xff\xff\xff\x06\x00\x07\x00\xff\xff\x24\x00\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\x06\x00\xff\xff\xff\xff\x24\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\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x01\x00\x81\x00\x82\x00\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x1c\x00\x81\x00\x82\x00\x68\x00\x69\x00\xff\xff\x6b\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\x75\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\x17\x00\x18\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\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\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\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x01\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x1d\x00\xff\xff\x68\x00\x69\x00\x06\x00\x6b\x00\xff\xff\x24\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\x17\x00\x18\x00\xff\xff\x7e\x00\x7f\x00\x01\x00\x81\x00\x82\x00\xff\xff\xff\xff\x06\x00\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\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x68\x00\x69\x00\x01\x00\x6b\x00\x03\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x17\x00\x81\x00\x82\x00\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\x03\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\x06\x00\xff\xff\xff\xff\x24\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\x17\x00\xff\xff\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\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\xff\xff\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\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x01\x00\xff\xff\xff\xff\x68\x00\x69\x00\x06\x00\x6b\x00\xff\xff\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\x17\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x01\x00\x81\x00\x82\x00\x68\x00\x69\x00\x06\x00\x6b\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\x17\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\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\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\x01\x00\x6b\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x17\x00\x81\x00\x82\x00\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\x19\x00\xff\xff\xff\xff\x01\x00\xff\xff\xff\xff\x1f\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\x01\x00\xff\xff\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x6b\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\x17\x00\x81\x00\x82\x00\x68\x00\x69\x00\x01\x00\x6b\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\x7e\x00\x7f\x00\x17\x00\x81\x00\x82\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\x01\x00\x6b\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x17\x00\x81\x00\x82\x00\x68\x00\x69\x00\x01\x00\x6b\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x17\x00\x81\x00\x82\x00\x68\x00\x69\x00\x01\x00\x6b\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\x7e\x00\x7f\x00\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\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\xff\xff\xff\xff\xff\xff\x7e\x00\x7f\x00\x01\x00\x81\x00\x82\x00\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\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\x17\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x01\x00\x81\x00\x82\x00\x68\x00\x69\x00\xff\xff\x6b\x00\xff\xff\xff\xff\xff\xff\x26\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\x7e\x00\x7f\x00\x01\x00\x81\x00\x82\x00\xff\xff\xff\xff\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\x26\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\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6b\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\x6b\x00\x17\x00\x52\x00\x53\x00\x54\x00\x55\x00\x01\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x26\x00\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\x6b\x00\x17\x00\xff\xff\xff\xff\xff\xff\x01\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\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\x2e\x00\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x01\x00\x6b\x00\xff\xff\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\x01\x00\xff\xff\x6b\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\x01\x00\xff\xff\x6b\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\x6b\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\x6b\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\xff\xff\xff\xff\x81\x00\x82\x00\xff\xff\xff\xff\x6b\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x7e\x00\x01\x00\xff\xff\x81\x00\x82\x00\xff\xff\x06\x00\x6b\x00\x08\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\x7e\x00\xff\xff\xff\xff\x81\x00\x82\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\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\x7c\x00\x7d\x00\x7e\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xff\xff\xc9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\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\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xff\xff\xc9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\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\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc5\x00\xc6\x00\xc7\x00\xff\xff\xc9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\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\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\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\xc6\x00\xc7\x00\xff\xff\xc9\x00\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xd2\x00\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xb9\x00\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\x01\x01\xd7\x00\xff\xff\xd9\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xb9\x00\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xb9\x00\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\x01\x01\xd7\x00\xff\xff\xd9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\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\xc8\x00\xc9\x00\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xd2\x00\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xb9\x00\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\x01\x01\xd7\x00\xff\xff\xd9\x00\xff\xff\xac\x00\xad\x00\xae\x00\xaf\x00\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xb9\x00\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xb9\x00\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\x01\x01\xd7\x00\xff\xff\xd9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\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\xc8\x00\xc9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\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\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\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\xc8\x00\xc9\x00\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xd2\x00\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xb9\x00\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xff\xff\xd9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xc9\x00\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd3\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\x01\x01\x02\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xb0\x00\xff\xff\xff\xff\xb3\x00\xb4\x00\xff\xff\xb6\x00\xff\xff\xb8\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xec\x00\xff\xff\xee\x00\xff\xff\xff\xff\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x00\x01\x01\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xb0\x00\xff\xff\xff\xff\xb3\x00\xb4\x00\xff\xff\xb6\x00\xff\xff\xff\xff\xb9\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\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb6\x00\xff\xff\xff\xff\xb9\x00\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xc2\x00\xc3\x00\xe9\x00\xff\xff\xff\xff\xec\x00\xff\xff\xee\x00\xff\xff\xff\xff\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xff\xff\xfd\x00\xff\xff\xff\x00\x00\x01\x01\x01\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xec\x00\xff\xff\xee\x00\xff\xff\xff\xff\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xff\xff\xfd\x00\xff\xff\xff\x00\x00\x01\x01\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb6\x00\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc3\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xca\x00\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xb2\x00\xff\xff\xff\xff\xff\xff\xb6\x00\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xec\x00\xff\xff\xee\x00\xff\xff\xff\xff\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xff\xff\xfd\x00\xff\xff\xff\x00\x00\x01\x01\x01\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xec\x00\xff\xff\xee\x00\xff\xff\xff\xff\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xff\xff\xfd\x00\xff\xff\xff\x00\x00\x01\x01\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xb2\x00\xff\xff\xff\xff\xff\xff\xb6\x00\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb6\x00\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xec\x00\xff\xff\xee\x00\xff\xff\xff\xff\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xff\xff\xfd\x00\xff\xff\xff\x00\x00\x01\x01\x01\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xec\x00\xff\xff\xee\x00\xff\xff\xff\xff\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xff\xff\xfd\x00\xff\xff\xff\x00\x00\x01\x01\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb6\x00\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb6\x00\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xec\x00\xff\xff\xee\x00\xff\xff\xff\xff\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xff\xff\xfd\x00\xff\xff\xff\x00\x00\x01\x01\x01\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xec\x00\xff\xff\xee\x00\xff\xff\xff\xff\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xff\xff\xfd\x00\xff\xff\xff\x00\x00\x01\x01\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb6\x00\xff\xff\xff\xff\xb9\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\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xec\x00\xff\xff\xee\x00\xff\xff\xff\xff\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xff\xff\xfd\x00\xff\xff\xff\x00\x00\x01\x01\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xcd\x00\xce\x00\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xce\x00\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb8\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb7\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x00\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\x01\x01\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xff\xff\xff\xff\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xa5\x00\xff\xff\xe9\x00\xa8\x00\xa9\x00\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xb9\x00\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xa8\x00\xff\xff\xaa\x00\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xac\x00\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xbd\x00\xbe\x00\x01\x01\xc0\x00\xc1\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xb9\x00\xff\xff\xff\xff\xbc\x00\xbd\x00\xbe\x00\xff\xff\xc0\x00\xc1\x00\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xad\x00\xae\x00\xaf\x00\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xb9\x00\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\x01\x01\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xdf\x00\xff\xff\xe1\x00\xe2\x00\xff\xff\xff\xff\xe5\x00\xe6\x00\xff\xff\xff\xff\xe9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xf7\x00\xf8\x00\xf9\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\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\x12\x00\x0e\x00\x10\x00\xa8\x00\x14\x00\xa9\x00\xae\x03\xaf\x03\xb0\x03\x0c\x00\xf0\x04\x22\x05\x08\x05\xb0\x00\xa0\x00\x59\x02\x85\x03\xb3\x02\xb4\x02\xb5\x00\x51\x02\xb5\x00\x1b\x02\xff\x00\x67\x03\xb5\x00\x51\x02\x23\x05\x24\x05\xf7\x03\xb0\x00\xcc\x03\xb3\x02\xb4\x02\x47\x02\x72\x04\x73\x04\x50\x02\xb5\x00\xa7\x04\xb1\x00\xae\xff\xb0\x00\x8a\x04\xb5\x00\xa7\x04\x30\x05\xb5\x00\x1b\x02\x80\x03\xb5\x00\xf0\x02\x33\x03\x50\x02\xb0\x00\x04\x01\xb5\x00\xf0\x02\xb5\x00\xad\x04\xda\x01\xb5\x00\xad\x04\xc2\x02\x4f\x04\xb5\x00\xbc\x04\x54\x02\x91\x02\xfe\x00\xca\x03\x84\x00\xf8\x00\x52\x02\x80\x03\xe0\x01\x5f\x04\x19\xfd\xa7\x01\xa0\x01\xb5\x00\xbc\x04\x7a\x03\x7e\x03\x18\x02\x50\x02\xb5\x00\xf4\x04\x76\x01\xa0\x01\xb5\x00\xf4\x04\x7e\x04\xa3\x00\x8c\x04\x8d\x04\xd5\x04\x02\x05\x23\x04\xf9\x00\x55\x05\x77\x01\xae\x00\xdb\x00\xaf\x00\xdd\x00\x50\x02\x31\x00\x32\x00\xa1\x01\x8e\x04\x60\x04\x8e\x04\xf9\x00\x89\x00\xdb\x01\xf9\x00\xff\xff\x7b\x03\xa1\x01\x90\x03\x9a\x04\x73\x04\xdb\x01\x89\x00\xc9\x04\x24\x04\x50\x04\x19\x02\x5a\x00\xa0\x01\x5b\x00\x5c\x00\xe0\x00\xf6\x04\x17\x00\x1a\x02\xdd\x02\xf5\x04\xdb\x00\x4c\x02\x4d\x02\xa4\x04\xcd\x03\xb4\x02\x80\x04\xc4\x02\xb0\x00\x2b\x03\xd6\x04\xd7\x04\x6e\x02\x8c\x00\x17\x00\xe7\x01\xca\x01\xe8\x01\x43\x05\xd2\x04\x19\xfd\xa1\x01\x4e\x02\xea\x01\xeb\x01\xde\x02\x14\x03\xbb\x04\x89\x00\xec\x01\x8a\x00\x32\x00\xbe\x04\xb5\x02\x31\x00\x32\x00\xa9\x04\xed\x01\x84\x03\xb0\x00\xf8\x03\xee\x01\xa8\x04\xef\x01\xf0\x01\xf1\x01\x37\x03\xbd\x04\xb5\x02\x9d\x03\xaf\x04\x2e\x00\x95\x01\xae\x04\x34\x02\x48\x02\x8c\x00\xf9\x03\x2e\x00\x74\x04\x1a\x03\xd7\x00\xe7\x01\x81\x03\xe8\x01\xc7\x01\x2e\x00\x95\x01\xb2\x00\x9e\x03\xea\x01\xeb\x01\x7f\x03\xf1\x04\x22\x03\x89\x00\xec\x01\x8a\x00\x32\x00\xb1\x03\x89\x01\x1d\x02\x25\x05\x7a\x02\xed\x01\xb2\x00\x26\x05\x55\x02\xee\x01\x65\x05\xef\x01\xf0\x01\xf1\x01\x53\x02\x2d\x00\x2e\x00\x2f\x00\xb2\x00\x31\x00\x32\x00\x2e\x00\x95\x01\xf3\x02\x09\x05\x96\x01\x57\x05\x58\x05\x1c\x02\xf1\x02\xb2\x00\xbf\x01\x47\x03\xc0\x01\xc1\x01\xb1\x03\x0d\x00\x0d\x00\x0d\x00\x7a\x02\x0d\x00\x0d\x00\xb2\x03\xa1\x00\xa1\x00\x0d\x00\x27\x05\x2d\x00\x2e\x00\x2f\x00\x2d\x00\x2e\x00\x2f\x00\xf2\x01\x31\x00\x32\x00\x0f\x00\x13\x00\x11\x00\xf8\x03\x3a\x00\xf3\x01\x1a\x00\xf4\x01\x1c\x00\x2e\x00\x74\x04\x1d\x00\x1e\x00\x1f\x00\xd0\x04\xd1\x04\x20\x00\x21\x00\x22\x00\x25\x05\xf9\x03\xb2\x03\x89\x00\x26\x05\xb5\x02\x50\x02\xbf\x04\x8f\x04\x23\x00\x8f\x04\xd8\x01\x90\x04\x46\x03\x90\x04\xd9\x01\xa3\x01\xa4\x01\x2e\x00\x95\x01\xda\x01\x50\x02\x96\x01\x2e\x00\x95\x01\xf2\x01\x2e\x00\x95\x01\x2e\x00\x95\x01\x96\x01\x45\x05\x96\x01\xf3\x01\x1a\x00\xf4\x01\x1c\x00\x61\x04\x89\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\x27\x05\x20\x00\x21\x00\x22\x00\x26\x00\x47\x02\x27\x00\x28\x00\x70\x02\x08\x04\x29\x00\x2a\x00\x89\x00\x23\x00\x2b\x00\x09\x04\x81\x04\x3c\x01\x84\x00\x3c\x02\x82\x04\xe0\x01\x57\x04\x8c\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x2d\x00\x2e\x00\x2f\x00\x39\x02\x31\x00\x32\x00\x5f\x05\x33\x00\xe4\x04\x8c\x00\xf5\x01\xf6\x01\x38\x03\xa4\x01\xe1\x01\x39\x03\xf7\x01\x3a\x03\x08\x04\x69\x01\x26\x00\x3a\x02\x27\x00\x28\x00\x1e\x05\xb9\x04\x29\x00\x2a\x00\xcf\x00\x3b\x03\x2b\x00\xa5\x01\x3c\x03\xd7\x00\xd2\x04\xb1\x02\xb2\x02\xb3\x02\xb4\x02\x3b\x03\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xc0\x04\x32\x00\x31\x00\x32\x00\xbc\x03\x8f\x04\xe7\x01\x33\x00\xe8\x01\x90\x04\xf5\x01\xf6\x01\xbd\x03\xe9\x01\xea\x01\xeb\x01\xf7\x01\x8c\x01\x8d\x01\x8e\x01\xec\x01\x3b\x02\x8f\x04\x2e\x00\x95\x01\x2a\x05\x90\x04\x96\x01\xed\x01\x30\x00\x3c\x02\xc3\x01\xee\x01\x41\x03\xef\x01\xf0\x01\xf1\x01\xda\x00\xdb\x00\x4c\x04\x2e\x00\x95\x01\xcf\x00\x96\x01\x96\x01\xe7\x01\x47\x03\xe8\x01\x36\x03\x89\x00\x14\x02\x6a\x01\x42\x03\xd5\x04\x3f\x03\x0d\x05\x0b\x05\x2e\x00\x95\x01\xec\x01\x89\x00\x2d\x00\x2e\x00\x2f\x00\xb0\x00\x3e\x03\xdf\x00\xed\x01\x15\x02\x38\x02\x16\x02\xee\x01\x37\x03\xef\x01\xf0\x01\xf1\x01\x48\x02\x8c\x00\xc7\x01\xe2\x00\x60\x01\xe4\x00\x89\x00\x2e\x00\xdc\x03\x8a\x00\x32\x00\x48\x02\x8c\x00\x7b\x00\x95\x00\x7c\x00\x89\x00\x96\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xdd\x03\x0c\x05\x86\x00\x87\x00\x2f\x02\x34\x05\xff\xff\x3d\x01\x8c\x00\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x48\x02\x8c\x00\xce\x00\x14\x04\xf2\x01\xda\x00\xdb\x00\xdc\x00\xdd\x00\xae\x02\xaf\x02\xcf\x00\xf3\x01\x1a\x00\xf4\x01\x1c\x00\x8c\x03\x8d\x03\x1d\x00\x1e\x00\x1f\x00\x77\x04\x15\x04\x20\x00\x21\x00\x22\x00\xb5\x02\x96\x01\xd5\x04\x3a\x00\x3b\x00\xe1\x02\xb0\x00\x7f\x01\xdf\x00\x23\x00\xe0\x00\xe2\x02\x36\x02\x15\x02\xe7\x01\x16\x02\xe8\x01\xf2\x01\x2e\x00\x95\x01\x80\x04\xe2\x00\x60\x01\xe4\x00\x50\x02\xf3\x01\x1a\x00\xf4\x01\x1c\x00\x37\x02\xff\xff\x1d\x00\x1e\x00\x1f\x00\x2e\x00\x71\x03\x20\x00\x21\x00\x22\x00\x63\x02\x64\x02\x3a\x00\xef\x01\xf0\x01\xf1\x01\xc6\x02\xc7\x02\x26\x00\x23\x00\x27\x00\x28\x00\x86\x01\x72\x03\x29\x00\x2a\x00\x54\x05\xd7\x04\x2b\x00\xb1\x02\x2e\x00\xc8\x02\x3d\x05\x47\x03\x96\x01\x2e\x00\x71\x03\x95\xfd\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x3a\x00\x3b\x00\xc9\x02\x2d\x00\x2e\x00\x2f\x00\x3e\x05\x33\x00\xde\x03\x88\x00\xf5\x01\xf6\x01\x26\x00\x50\x02\x27\x00\x28\x00\xf7\x01\x69\x03\x29\x00\x2a\x00\x2e\x00\xdc\x03\x2b\x00\x3a\x00\x89\x00\x50\x02\x30\x00\x8a\x00\x32\x00\x2b\x05\x91\x02\x79\x01\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x9f\x04\xb1\x02\x89\x00\x91\x02\xda\x00\x8a\x00\x32\x00\x33\x00\x2e\x00\x95\x01\xf5\x01\xf6\x01\x8b\x00\x8c\x00\xb3\x01\xb4\x01\xf7\x01\x89\x00\xf2\x01\x3a\x00\xb0\x01\x32\x00\xce\x01\xf2\x03\xe7\x01\xb5\x01\xe8\x01\xac\x04\x65\x02\x8b\x00\x8c\x00\xc7\x01\x1d\x00\xdf\x00\x1f\x00\x78\x01\xb1\x02\x20\x00\x21\x00\x22\x00\x2d\x00\x2e\x00\x2f\x00\x47\x03\x2c\x02\x8c\x00\xe2\x00\x60\x01\xe4\x00\x23\x00\xdd\x04\xff\xff\xef\x01\xf0\x01\xf1\x01\x1c\x05\x69\x03\x6a\x03\x2d\x00\x2e\x00\x2f\x00\x1d\x05\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xe7\x01\x52\x04\xe8\x01\xc6\x01\xcb\x01\x9a\x01\xda\x00\xdb\x00\x3a\x00\x3b\x00\x36\x03\xb5\x00\x9b\x01\xcf\x00\xc7\x01\x66\x02\x67\x02\x26\x00\xf9\x03\x27\x00\x28\x00\xc8\x03\x6a\x01\x29\x00\x68\x02\x80\x04\xdd\x04\x2b\x00\xef\x01\xf0\x01\xf1\x01\xd0\x03\xba\x02\xbb\x02\xc9\x01\xdf\x00\xca\x01\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x3a\x00\x3b\x00\xd7\x02\xd1\x00\xe2\x00\x60\x01\xe4\x00\x33\x00\xae\x02\xdb\x03\xf5\x01\xf6\x01\xfb\x00\xd8\x02\xd9\x02\x29\x03\xf7\x01\xc2\x04\xde\x04\xdf\x04\xb4\x00\xe0\x04\xca\x01\xb0\x04\x6a\x03\x71\x02\x96\x01\xf2\x01\x3c\x02\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x65\x02\x8e\x02\x3a\x00\x3b\x00\x1d\x00\x8f\x02\x1f\x00\x3a\x00\x3b\x00\x20\x00\x21\x00\x22\x00\xe7\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x80\x04\x6e\x03\x23\x00\xff\x04\x6f\x03\xbf\x00\xfb\x00\xc0\x00\x8e\x01\x35\x05\xd2\x00\xe0\x04\xba\x00\xc1\x00\x00\x05\x8f\x01\xac\x00\xf2\x01\xd3\x00\xd4\x00\xd5\x00\x5d\x05\xd6\x00\xd7\x00\xd8\x00\xd2\x01\xe7\x01\x65\x02\xe8\x01\xd3\x01\xf8\x00\x1d\x00\x5e\x05\x1f\x00\xd4\x01\xf7\x00\x20\x00\x21\x00\x22\x00\xf6\x00\x26\x00\x89\x00\x27\x00\x28\x00\x8a\x00\x32\x00\x29\x00\x2a\x00\x23\x00\xff\xff\x2b\x00\x63\x02\x64\x02\xe5\x00\xef\x01\xf0\x01\xf1\x01\xb0\x00\xcf\x03\xbb\x02\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xb9\x00\x8b\x00\x8c\x00\xff\xff\x0f\x02\x93\x01\xe7\x01\x33\x00\xe8\x01\x94\x01\xf5\x01\xf6\x01\xd3\x00\xd4\x00\x5f\x05\xb4\x00\xf7\x01\x91\x01\x92\x01\x26\x00\x1d\x05\x27\x00\x28\x00\x2e\x00\x95\x01\x29\x00\x2a\x00\x96\x01\xff\xff\x2b\x00\x90\x01\xf7\xfd\xbb\x03\xf7\xfd\xef\x01\xf0\x01\xf1\x01\x8f\x01\xac\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xa3\x00\xbc\x02\xb9\x02\xba\x02\xbb\x02\x99\x03\x79\x02\x33\x00\x36\x03\x89\x00\xf5\x01\xf6\x01\x8a\x00\x32\x00\x21\x02\x4f\x04\xf7\x01\x51\x02\xb8\x02\xb9\x02\xba\x02\xbb\x02\x38\x03\x0a\x05\x0b\x05\x39\x03\x42\x02\x37\x04\x89\x00\xaa\x00\xf2\x01\x8a\x00\x32\x00\x41\x02\xab\x00\xac\x00\x8b\x00\x8c\x00\x40\x02\x3b\x03\x65\x02\x3f\x02\x3c\x03\xd7\x00\x1d\x00\xf6\xfd\x1f\x00\xf6\xfd\x3e\x02\x20\x00\x21\x00\x22\x00\x8c\x01\x8d\x01\x8e\x01\x8b\x00\x8c\x00\x7b\x00\xef\xfd\x7c\x00\xef\xfd\x23\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x0f\x02\x0c\x05\x86\x00\x87\x00\x08\x01\x09\x01\x0a\x01\xf2\x01\xd3\x00\xd4\x00\x70\x01\x3d\x02\xd6\x00\xd7\x00\xd8\x00\x93\x01\xee\xfd\x65\x02\xee\xfd\x94\x01\xed\xfd\x1d\x00\xed\xfd\x1f\x00\x5e\x02\x5f\x02\x20\x00\x21\x00\x22\x00\x26\x00\x7a\x02\x27\x00\x28\x00\x2e\x00\x95\x01\x29\x00\x2a\x00\x96\x01\x23\x00\x2b\x00\x93\x01\x7b\x02\x2e\x00\x2f\x00\x94\x01\x31\x00\x32\x00\x44\x03\x45\x03\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xbb\x00\xbc\x00\x2e\x00\x95\x01\x2e\x00\x16\x04\x96\x01\x33\x00\x17\x04\xbd\x00\xf5\x01\xf6\x01\x7c\x02\xa3\x01\xa4\x01\x19\x03\xf7\x01\x93\x01\x1a\x03\xd7\x00\x26\x00\x94\x01\x27\x00\x28\x00\x31\x00\x32\x00\x29\x00\x2a\x00\x44\x03\x45\x03\x2b\x00\x91\x01\xb7\x02\x38\x05\x93\x01\x2e\x00\x95\x01\x35\x02\x94\x01\x96\x01\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x19\x02\x5a\x00\x8a\x04\x5b\x00\x5c\x00\x2e\x00\x95\x01\x33\x00\x1a\x02\x96\x01\xf5\x01\xf6\x01\xe9\x03\xea\x03\xf2\x03\x49\x05\xf7\x01\xf3\x03\xf4\x03\x7b\x00\xeb\xfd\x7c\x00\xeb\xfd\x88\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x33\x02\x0c\x05\x86\x00\x87\x00\x32\x02\x5b\x03\x89\x00\x31\x02\x30\x00\x8a\x00\x32\x00\x70\x01\x27\xfd\xd6\x00\xd7\x00\xd8\x00\x7b\x00\xdb\x00\x7c\x00\xdd\x00\x29\x02\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x2a\x02\x0c\x05\x86\x00\x87\x00\x8b\x00\x8c\x00\x28\x02\x7b\x00\x5c\x03\x5d\x03\xad\x03\xae\x03\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x71\x04\x6e\x04\xc5\x00\x87\x00\x5e\x03\xc7\x00\xda\x04\x6a\x03\xfe\x03\xff\x03\x00\x04\x01\x04\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x6d\x04\x6e\x04\xec\xfd\x7b\x00\xec\xfd\x7c\x00\x38\x00\x39\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xa3\x01\xa4\x01\x6f\x04\x87\x00\xf8\x04\x6e\x04\x93\x01\x7b\x00\x23\x02\x7c\x00\x94\x01\x21\x02\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x44\x03\x45\x03\x6f\x04\x87\x00\x2e\x00\x95\x01\x20\x02\x7b\x00\x96\x01\x7c\x00\x3c\x05\x3d\x05\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x1b\x02\x88\x00\x6f\x04\x87\x00\xd3\x04\x14\x02\xd4\x04\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x12\x02\xea\xfd\x89\x00\xea\xfd\x30\x00\x8a\x00\x32\x00\xb7\x00\xb5\x00\xb6\x00\x96\x03\x97\x03\x77\x02\x78\x02\x79\x02\xe9\xfd\x88\x00\xe9\xfd\xda\x00\xdb\x00\xdc\x00\xdd\x00\x4c\x03\xda\x00\x4d\x03\xdc\x00\x58\x02\x09\x01\x0a\x01\x8b\x00\x8c\x00\x89\x00\x2e\x02\x30\x00\x8a\x00\x32\x00\x88\x00\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xc9\x00\x7f\x01\xdf\x00\xe8\xfd\xe0\x00\xe8\xfd\x89\x00\xdf\x00\x30\x00\x8a\x00\x32\x00\xe7\x04\xe7\x01\x8b\x00\x8c\x00\xe2\x00\x60\x01\xe4\x00\xe8\x04\xe9\x04\xe2\x00\x60\x01\xe4\x00\x7b\x03\x26\x03\xb4\x01\x89\x00\x88\x00\xe6\x01\x8a\x00\x32\x00\x51\x05\x52\x05\x8b\x00\x8c\x00\xb5\x01\x57\x02\xac\x00\x2d\x00\x2e\x00\x2f\x00\xe7\x04\x89\x00\x78\x03\x30\x00\x8a\x00\x32\x00\x88\x00\xe8\x04\xe9\x04\x2d\x00\x2e\x00\x2f\x00\x8b\x00\x8c\x00\xb4\x00\xb5\x00\xb6\x00\x2d\x00\x2e\x00\x2f\x00\xe4\x01\x89\x00\x7a\x02\x30\x00\x8a\x00\x32\x00\x88\x00\xe3\x01\x8b\x00\x8c\x00\xe7\xfd\x0f\x02\xe7\xfd\x7b\x02\x2e\x00\x2f\x00\xe2\x01\x31\x00\x32\x00\xd3\x00\xd4\x00\x89\x00\xdd\x01\x30\x00\x8a\x00\x32\x00\x89\x01\x8a\x01\x8b\x00\x8c\x00\x4d\x03\x49\x03\x4a\x03\x3a\x00\x3b\x00\x89\x00\xb5\x00\x9d\x01\x8a\x00\x32\x00\x7c\x02\xca\x01\xea\x04\xeb\x04\xec\x04\xed\x04\xb5\x00\x9c\x01\x8b\x00\x8c\x00\x3f\x01\xd0\x01\x40\x01\x76\x03\xe6\xfd\x65\x02\xe6\xfd\xd1\x01\x41\x01\x1d\x00\xd7\x01\x1f\x00\x8b\x00\x8c\x00\x20\x00\x21\x00\x22\x00\xd0\x01\x2d\x00\x2e\x00\x2f\x00\x75\x03\xcf\x01\x3f\x05\xec\x04\xed\x04\x23\x00\x15\x05\xf0\x01\xf1\x01\x89\x00\xb5\x00\x15\x03\x8a\x00\x32\x00\x65\x02\x2d\x00\x2e\x00\x2f\x00\x1d\x00\xc8\x01\x1f\x00\x0e\x05\x6a\x03\x20\x00\x21\x00\x22\x00\xbf\x01\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x23\x00\x8b\x00\x8c\x00\x7b\x04\x77\x02\x78\x02\x79\x02\x7c\x04\x26\x00\xbe\x01\x27\x00\x28\x00\xd2\x00\xbd\x01\x29\x00\x2a\x00\x2a\xfd\xe5\xfd\x2b\x00\xe5\xfd\xd3\x00\xd4\x00\xd5\x00\x2d\xfd\xd6\x00\xd7\x00\xd8\x00\xaa\x01\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x48\x03\x49\x03\x4a\x03\x26\x00\xa8\x01\x27\x00\x28\x00\x33\x00\x3a\x00\x29\x00\x2a\x00\x12\x03\x8a\x01\x2b\x00\x7b\x04\x77\x02\x78\x02\x79\x02\xfd\x04\x1b\x04\x1c\x04\x1d\x04\x1c\x03\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x10\x04\x11\x04\x12\x04\xb0\x00\xe4\xfd\x16\x05\xe4\xfd\x33\x00\xe3\xfd\x1d\x00\xe3\xfd\x1f\x00\xb5\x00\x11\x03\x20\x00\x21\x00\x22\x00\x09\x04\x0a\x04\x0b\x04\x17\x03\xe2\xfd\x7b\x00\xe2\xfd\x7c\x00\x10\x03\x23\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x7a\x02\x0c\x03\xcf\x00\x87\x00\xd0\x00\xc7\x00\x40\x04\x11\x04\x12\x04\xb5\x00\x10\x03\x7b\x02\x2e\x00\x2f\x00\x0e\x03\x31\x00\x32\x00\x0b\x03\x3b\x04\x11\x04\x12\x04\x0d\x03\x75\x02\x76\x02\x77\x02\x78\x02\x79\x02\x0a\x03\xdb\xfd\x26\x00\xdb\xfd\x27\x00\x28\x00\x02\x03\x03\x03\x29\x00\x2a\x00\xcd\x01\x7c\x02\x2b\x00\xda\xfd\x89\x00\xda\xfd\xcf\x00\x8a\x00\x32\x00\x7a\x02\xbd\x02\xbe\x02\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x6a\x01\x7b\x02\x2e\x00\x2f\x00\xfe\x02\x31\x00\x32\x00\x33\x00\xc5\x04\xc6\x04\xc7\x04\xf3\x02\x8b\x00\x8c\x00\xd8\xfd\x7b\x00\xd8\xfd\x7c\x00\xdb\x02\xd1\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x7c\x02\x0f\x02\xcf\x00\x87\x00\xd0\x00\xc7\x00\xc2\x04\x11\x04\x12\x04\xd3\x00\xd4\x00\x70\x01\xe9\x02\xd6\x00\xd7\x00\xd8\x00\x7b\x00\xc6\xfd\x7c\x00\xc6\xfd\xda\x02\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xe4\x02\xe5\x02\xc5\x00\x87\x00\x91\x02\x45\x02\x1f\x04\x7a\x02\xad\x02\x0a\x01\xd4\x01\x2e\x00\x2f\x00\x88\x00\xb0\x01\x32\x00\xb5\x00\x6c\x02\x7b\x02\x2e\x00\x2f\x00\xc2\x02\x31\x00\x32\x00\x68\xfe\xd2\x00\x68\xfe\x50\x02\x89\x00\x2e\x04\x30\x00\x8a\x00\x32\x00\xd3\x00\xd4\x00\xd5\x00\xc0\x02\xd6\x00\xd7\x00\xd8\x00\xbe\x01\x43\x05\x7b\x00\x45\x05\x7c\x00\x7c\x02\xd1\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x8b\x00\x8c\x00\xc9\x00\x87\x00\x95\x02\xca\x00\xcb\x00\x7b\x00\x07\x03\xc4\x00\xc0\x01\xdd\x01\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x46\x02\x8e\x02\xc5\x00\x87\x00\xc6\x00\xc7\x00\x8c\x02\x15\x02\x7b\x00\x16\x02\x7c\x00\x6a\x02\x6b\x02\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x89\x02\x88\x00\xc5\x00\x87\x00\x82\x02\xcb\x04\xd0\x02\xd1\x02\xd2\x02\xd3\x02\xd4\x02\xd5\x02\x88\x02\xb5\x04\xa7\x03\xa8\x03\x89\x00\x81\x02\x30\x00\x8a\x00\x32\x00\xd3\x00\xd4\x00\xd5\x00\x63\x02\xd6\x00\xd7\x00\xd8\x00\x5c\x02\xcc\x04\x88\x00\x00\x05\x09\x01\x0a\x01\xcc\x00\xdf\x02\xaf\x01\x2e\x00\x2f\x00\x62\x02\xb0\x01\x32\x00\x0f\x02\x8b\x00\x8c\x00\x89\x00\xae\x00\x30\x00\x8a\x00\x32\x00\xd3\x00\xd4\x00\x7b\x00\xaa\x03\x7c\x00\xa3\x03\xa4\x03\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xa7\x03\x85\x00\x86\x00\x87\x00\xfb\x04\x09\x01\x0a\x01\x8b\x00\x8c\x00\x4c\x05\x11\x04\x12\x04\x62\x05\x11\x04\x12\x04\xa6\x03\x7b\x00\xa0\x03\x7c\x00\x54\x01\x88\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x50\x02\x45\x01\x86\x00\x87\x00\xa0\x03\xa1\x03\x89\x00\x9d\x03\x30\x00\x8a\x00\x32\x00\x88\x00\x50\x03\x51\x03\x52\x03\x53\x03\x54\x03\x55\x03\x56\x03\x57\x03\x7a\x01\xb5\x00\x91\x03\x7b\x01\xcc\xfe\xe4\x01\x89\x00\xeb\x00\x30\x00\x8a\x00\x32\x00\x9c\x03\x88\x00\x8b\x00\x8c\x00\xd3\x00\xd4\x00\x7d\x01\x95\x03\xd6\x00\xd7\x00\xd8\x00\x8e\x03\x6f\x03\xd4\x00\x23\x03\x4d\x02\x89\x00\x75\x03\x30\x00\x8a\x00\x32\x00\x8f\x03\x8b\x00\x8c\x00\x7b\x00\x8b\x03\x7c\x00\x22\x03\x4d\x02\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x29\x04\x2b\x04\xc5\x00\x87\x00\x89\x03\x42\x02\x8b\x00\x8c\x00\x7b\x00\xdb\x00\x7c\x00\x29\x04\x2a\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x88\x03\xae\x01\x86\x00\x87\x00\xbb\x00\xbc\x00\x1f\x04\x20\x04\x88\x00\x87\x03\x2e\x00\xe3\x03\x83\x03\xbd\x00\x63\x04\x64\x04\x51\x04\xd7\x00\xb4\x04\x0b\x04\x1a\x03\xd7\x00\x2a\x02\x89\x00\x85\x03\x30\x00\x8a\x00\x32\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x82\x03\x7b\x00\xc2\x02\x7c\x00\x71\x03\x88\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x6d\x03\x45\x03\x86\x00\x87\x00\x8b\x00\x8c\x00\x89\x00\x66\x03\x30\x00\x8a\x00\x32\x00\xaa\x04\xab\x04\x2e\x00\x99\x04\x65\x03\x7b\x00\x64\x03\x7c\x00\x1f\x05\x20\x05\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x63\x03\x40\x03\x86\x00\x87\x00\x8b\x00\x8c\x00\x60\x03\x7b\x00\x62\x03\x7c\x00\x19\x05\x1a\x05\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x61\x03\xe6\x03\x86\x00\x87\x00\x0f\x05\x10\x05\x5a\x03\x7b\x00\x50\x02\x7c\x00\x88\x00\x3f\x03\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x41\x01\x60\x04\x86\x00\x87\x00\x42\x01\x89\x00\xb4\x00\x30\x00\x8a\x00\x32\x00\x35\x03\x88\x00\x30\x03\x61\x05\x64\x04\x2d\x00\x2e\x00\x2f\x00\x2a\x03\x31\x00\x32\x00\x2e\x03\x26\x03\x2a\x03\xcd\x01\xc9\x01\x89\x00\x3a\x00\x30\x00\x8a\x00\x32\x00\x1f\x03\x8b\x00\x8c\x00\x7b\x00\x1e\x03\x7c\x00\x25\x04\x21\x02\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x19\x04\x4b\x04\x86\x00\x87\x00\x14\x04\x10\x04\x8b\x00\x8c\x00\x03\x04\x0d\x04\x88\x00\x4d\x03\xe8\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xf2\x03\xf0\x03\xd0\xfe\x03\x04\xf7\x03\xee\x03\x89\x00\xeb\x03\x30\x00\x8a\x00\x32\x00\xdb\x03\xda\x03\xd8\x03\xd9\x03\xd7\x03\x7b\x00\xd6\x03\x7c\x00\xd5\x03\x88\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xd4\x03\x11\x05\x86\x00\x87\x00\x8b\x00\x8c\x00\x89\x00\xc0\x02\x30\x00\x8a\x00\x32\x00\x88\x00\xcf\x03\xcc\x03\x20\x02\xc4\x03\xc5\x03\xc3\x03\x3a\x00\x3b\x00\xc2\x03\x50\x02\xdb\x00\xbb\x03\xdd\x00\xb9\x03\x89\x00\xba\x03\x30\x00\x8a\x00\x32\x00\x88\x00\x88\x04\x8b\x00\x8c\x00\xbf\x00\x87\x04\xc0\x00\x85\x04\xa0\x03\x7e\x04\x7b\x04\x7a\x04\xc1\x00\x6d\x04\x71\x04\x89\x00\x6c\x04\x30\x00\x8a\x00\x32\x00\x66\x04\xe0\x00\x8b\x00\x8c\x00\x7b\x00\x68\x04\x7c\x00\x5d\x04\x57\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x56\x04\x05\x05\x86\x00\x87\x00\xb4\x00\x8b\x00\x8c\x00\x7b\x00\x54\x04\x7c\x00\x88\x00\x14\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x10\x04\x33\x05\x86\x00\x87\x00\x4b\x04\x89\x00\x40\x04\x30\x00\x8a\x00\x32\x00\x3a\x04\x14\x04\x39\x04\x03\x04\x91\x02\x50\x02\x2e\x03\x30\x04\x95\x03\x76\x02\x77\x02\x78\x02\x79\x02\x17\x00\x89\x00\xc4\x04\xb7\x04\x8a\x00\x32\x00\x65\xfd\x14\x04\x0d\x04\x8b\x00\x8c\x00\x7b\x00\xb3\x04\x7c\x00\xb2\x04\x88\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xa4\x04\x31\x05\x86\x00\x87\x00\x8b\x00\x8c\x00\x89\x00\x9c\x04\x30\x00\x8a\x00\x32\x00\xa7\x04\x9f\x04\x9e\x04\x96\x04\x9d\x04\x7b\x00\x99\x04\x7c\x00\x98\x04\x95\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x94\x04\x52\x05\x86\x00\x87\x00\x8b\x00\x8c\x00\x8c\x04\x7b\x00\xfd\x04\x7c\x00\xfa\x04\xf4\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xf3\x04\x4d\x05\x86\x00\x87\x00\xda\x04\xe7\x04\xdd\x04\x7b\x00\x3a\x00\x7c\x00\x88\x00\xd0\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x7a\x02\x4a\x05\x86\x00\x87\x00\xca\x04\x89\x00\x3c\x02\x30\x00\x8a\x00\x32\x00\x88\x00\x7b\x02\x2e\x00\x2f\x00\x22\x05\x31\x00\x32\x00\x1f\x05\x19\x05\x64\xfd\x05\x05\x08\x05\x04\x05\x02\x05\x47\x05\x89\x00\x44\x05\x30\x00\x8a\x00\x32\x00\x41\x05\x50\x02\x8b\x00\x8c\x00\x7b\x00\x30\x05\x7c\x00\x2f\x05\x7c\x02\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x2d\x05\x48\x05\x86\x00\x87\x00\x57\x05\x8b\x00\x8c\x00\x7b\x00\xf2\x03\x7c\x00\x88\x00\x10\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x14\x04\x66\x05\x86\x00\x87\x00\x14\x04\x89\x00\x66\x04\x30\x00\x8a\x00\x32\x00\x5c\x05\x65\x05\x66\x04\x15\x00\x87\x01\x86\x01\x84\x01\x06\x01\xe6\x00\x88\x00\x44\x01\xba\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x4b\x02\x56\x02\x12\x02\x44\x02\x1e\x02\xcc\x00\x8b\x00\x8c\x00\x89\x00\xa8\x01\x30\x00\x8a\x00\x32\x00\x88\x00\xa1\x01\x9e\x01\x17\x03\x14\x03\x0e\x03\xe7\x02\xd5\x02\xe6\x02\xce\x02\x5c\x02\xc5\x02\xdf\x00\xc4\x02\xe0\x00\x89\x00\xc2\x02\x30\x00\x8a\x00\x32\x00\x88\x00\xc0\x02\x8b\x00\x8c\x00\x8c\x02\xe2\x00\x60\x01\xe4\x00\x86\x02\xaa\x03\x5a\x02\x84\x02\x60\x02\x89\x03\x5f\x02\x89\x00\x19\x03\x30\x00\x8a\x00\x32\x00\x7c\x03\x57\x03\x8b\x00\x8c\x00\x7b\x00\x4e\x03\x7c\x00\x2e\x03\x58\x03\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x24\x03\x20\x03\xe5\x00\x87\x00\x0e\x04\x8b\x00\x8c\x00\x7b\x00\x28\x04\x7c\x00\x88\x00\x06\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x01\x04\x05\x04\x2b\x02\x87\x00\xfc\x03\x89\x00\xf0\x03\x30\x00\x8a\x00\x32\x00\x88\x00\xf5\x03\xee\x03\xec\x03\xeb\x03\xe7\x03\xd2\x03\xd1\x03\x0d\x04\x76\x02\x77\x02\x78\x02\x79\x02\xc9\x03\xc6\x03\x89\x00\xc5\x03\x30\x00\x8a\x00\x32\x00\x85\x04\x68\x04\x8b\x00\x8c\x00\x7b\x00\x83\x04\x7c\x00\x88\x04\x5d\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x66\x04\x5b\x04\xe2\x02\x87\x00\x41\x04\x8b\x00\x8c\x00\x7b\x00\x54\x04\x7c\x00\x3d\x04\x3e\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x36\x04\x3a\x04\xdb\x02\x87\x00\x3c\x04\x2e\x04\x9d\x03\x7b\x00\x2c\x04\x7c\x00\xa5\x04\x35\x04\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xc4\x04\xa2\x04\x74\x02\x87\x00\xbf\x03\x76\x02\x77\x02\x78\x02\x79\x02\x17\x04\xe5\x04\xdb\x04\xce\x04\x17\x05\x3a\x05\x06\x05\x7b\x00\x2d\x05\x7c\x00\x88\x00\x41\x05\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x7a\x02\x53\x05\x73\x02\x87\x00\x4f\x05\x89\x00\x4b\x05\x30\x00\x8a\x00\x32\x00\x88\x00\x7b\x02\x2e\x00\x2f\x00\x63\x05\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x7c\x02\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x72\x02\x87\x00\x00\x00\x8b\x00\x8c\x00\x7b\x00\x00\x00\x7c\x00\x88\x00\x00\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x71\x02\x87\x00\x00\x00\x89\x00\x7a\x02\x30\x00\x8a\x00\x32\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x02\x2e\x00\x2f\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x88\x00\x00\x00\x8b\x00\x8c\x00\xdf\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x88\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x6d\x02\x87\x00\x8b\x00\x8c\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x77\x03\x87\x00\x8b\x00\x8c\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7a\x01\x00\x00\x00\x00\x7b\x01\x00\x00\xa2\x03\x00\x00\xeb\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x88\x00\x00\x00\xd3\x00\xd4\x00\x7d\x01\x00\x00\xd6\x00\xd7\x00\xd8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x66\x03\x87\x00\x00\x00\x8b\x00\x8c\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x5a\x03\x87\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\xdf\x03\x00\x00\x88\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x00\x00\xe0\x03\x00\x00\x00\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x7c\x00\x00\x00\x88\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x5a\x04\x87\x00\x8b\x00\x8c\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\xdf\x03\x00\x00\x00\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x00\x00\xe0\x03\x8b\x00\x8c\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x69\x04\x00\x00\x00\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x00\x00\x6a\x04\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x88\x00\x7b\x00\x00\x00\xc2\x00\x00\x00\x00\x00\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x88\x00\x2d\x02\x8b\x00\x8c\x00\x00\x00\x00\x00\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x03\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x6b\x03\x00\x00\x88\x00\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x00\x00\x88\x00\xca\x02\x00\x00\x00\x00\x00\x00\x00\x00\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x89\x00\xf7\x04\x30\x00\x8a\x00\x32\x00\x00\x00\x8b\x00\x8c\x00\x7b\x00\x00\x00\xa0\x04\x00\x00\x00\x00\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x8b\x00\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x7b\x00\x00\x00\x12\x05\x00\x00\x00\x00\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x89\x00\x00\x00\x00\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x39\x05\x00\x00\x00\x00\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x8b\x00\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x00\x00\x00\x36\x05\x00\x00\x88\x00\xc3\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x62\x04\x76\x02\x77\x02\x78\x02\x79\x02\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x42\x04\x00\x00\x43\x04\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x00\x00\x44\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x89\x00\x8b\x00\x8c\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x45\x04\x46\x04\x00\x00\xe8\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\xe9\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x8b\x00\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x42\x04\x00\x00\xb7\x04\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x00\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x4f\x01\x00\x00\x50\x01\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\xb8\x04\x46\x04\x7a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x00\x00\x00\x00\x7b\x02\x2e\x00\x2f\x00\x00\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x89\x00\x00\x00\x30\x00\x8a\x00\x32\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x47\x04\x00\x00\x4d\x01\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\xe1\x02\x00\x00\x7f\x01\xdf\x00\x89\x00\xe0\x00\x38\x05\x48\x04\x32\x00\x23\x00\x8b\x00\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x00\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x59\x04\x76\x02\x77\x02\x78\x02\x79\x02\x00\x00\x00\x00\xea\x00\x00\x00\x8b\x00\x8c\x00\xeb\x00\x00\x00\x00\x00\x89\x00\x00\x00\x00\x00\x8a\x00\x32\x00\xd3\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x47\x04\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x89\x00\x00\x00\x00\x00\x48\x04\x32\x00\x8b\x00\x8c\x00\xec\x00\xed\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x89\x00\x00\x00\x00\x00\x8a\x00\x32\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x8b\x00\x8c\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x50\x02\x00\x00\x7a\x02\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x7b\x02\x2e\x00\x2f\x00\x4b\x00\x31\x00\x32\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x7c\x02\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x01\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\x00\x00\x6b\x00\xfb\x01\xfc\x01\xfd\x01\xfe\x01\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x17\x00\x00\x00\xff\x01\x00\x02\x01\x02\x02\x02\xa6\x00\x72\x00\x00\x00\x03\x02\x00\x00\x73\x00\x00\x00\x00\x00\x04\x02\x00\x00\x00\x00\x75\x00\x76\x00\x05\x02\x77\x00\x78\x00\x06\x02\x07\x02\x08\x02\x09\x02\x00\x00\x0a\x02\x79\x00\x7a\x00\x7b\x00\x0b\x02\x0c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x02\x0e\x02\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x00\x00\x0f\x02\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x11\x02\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\xdf\x00\x47\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\xe2\x00\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x01\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\x00\x00\x6b\x00\xfb\x01\xfc\x01\xfd\x01\xfe\x01\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x17\x00\x00\x00\xff\x01\x00\x02\x01\x02\x02\x02\xa6\x00\x72\x00\x00\x00\x03\x02\x00\x00\x73\x00\x00\x00\x00\x00\x04\x02\x00\x00\x00\x00\x75\x00\x76\x00\x05\x02\x77\x00\x78\x00\x06\x02\x07\x02\x08\x02\x09\x02\x00\x00\x0a\x02\x79\x00\x7a\x00\x7b\x00\x0b\x02\x0c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x02\x0e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x02\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x01\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\x00\x00\x6b\x00\xfb\x01\xfc\x01\xfd\x01\xfe\x01\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\xff\x01\x00\x02\x01\x02\x02\x02\xa6\x00\x72\x00\x00\x00\x03\x02\x00\x00\x73\x00\x00\x00\x00\x00\x04\x02\x00\x00\x00\x00\x75\x00\x76\x00\x05\x02\x77\x00\x78\x00\x06\x02\x07\x02\x08\x02\x09\x02\x00\x00\x0a\x02\x79\x00\x7a\x00\x7b\x00\x0b\x02\x0c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x02\x0e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x02\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x4e\x05\x76\x02\x77\x02\x78\x02\x79\x02\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\xe2\x04\xe3\x04\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x7a\x02\x6f\x00\x00\x00\x00\x00\x00\x00\xff\x01\x00\x02\x01\x02\x00\x00\x00\x00\x72\x00\x7b\x02\x2e\x00\x2f\x00\x00\x00\x31\x00\x32\x00\xe4\x04\x00\x00\x00\x00\x75\x00\x76\x00\x05\x02\x77\x00\x78\x00\x06\x02\x07\x02\x08\x02\x09\x02\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x7c\x02\x00\x00\x00\x00\x0e\x02\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\xe2\x04\xe3\x04\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\xff\x01\x00\x02\x01\x02\x00\x00\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x04\x00\x00\x00\x00\x75\x00\x76\x00\x05\x02\x77\x00\x78\x00\x06\x02\x07\x02\x08\x02\x09\x02\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x02\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x7a\x01\x6d\x00\x6e\x00\x7b\x01\x6f\x00\x7c\x01\x00\x00\xeb\x00\xff\x01\x00\x02\x01\x02\x00\x00\x00\x00\x72\x00\x00\x00\xd3\x00\xd4\x00\x7d\x01\x00\x00\xd6\x00\xd7\x00\xd8\x00\x00\x00\x75\x00\x76\x00\x05\x02\x77\x00\x78\x00\x06\x02\x07\x02\x08\x02\x09\x02\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x02\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x7a\x01\x6d\x00\x6e\x00\x7b\x01\x6f\x00\xe4\x01\x00\x00\xeb\x00\xff\x01\x00\x02\x01\x02\x00\x00\x00\x00\x72\x00\x00\x00\xd3\x00\xd4\x00\x7d\x01\x00\x00\xd6\x00\xd7\x00\xd8\x00\x00\x00\x75\x00\x76\x00\x05\x02\x77\x00\x78\x00\x06\x02\x07\x02\x08\x02\x09\x02\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x02\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\xef\x04\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x00\x00\x00\x03\x02\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x04\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x06\x02\x07\x02\x08\x02\x09\x02\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x02\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\xf9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\xef\x04\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x00\x00\x00\x03\x02\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x04\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x06\x02\x07\x02\x08\x02\x09\x02\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x02\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x7a\x01\x6d\x00\x6e\x00\x7b\x01\x6f\x00\xa2\x03\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x00\x00\x00\xd3\x00\xd4\x00\x7d\x01\x00\x00\xd6\x00\xd7\x00\xd8\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x06\x02\x07\x02\x08\x02\x09\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x0e\x02\xda\x00\xdb\x00\xdc\x00\xdd\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\xde\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\xcf\x00\x94\x00\x00\x00\xdf\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\x00\x00\x00\x00\x95\x00\x00\x00\xe2\x00\xe3\x00\xe4\x00\xc0\x03\x77\x02\x78\x02\x79\x02\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x60\x05\x76\x02\x77\x02\x78\x02\x79\x02\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x00\x00\xef\x00\xdb\x00\x00\x00\xdd\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\xf0\x00\x00\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x7a\x02\x00\x00\x00\x00\xf1\x00\x00\x00\x00\x00\x95\x00\xf2\x00\xf3\x00\x96\x00\xf4\x00\x7b\x02\x2e\x00\x2f\x00\x00\x00\x31\x00\x32\x00\x00\x00\x97\x00\x98\x00\x7a\x02\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x7b\x02\x2e\x00\x2f\x00\x00\x00\x31\x00\x32\x00\x00\x00\x7c\x02\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xdb\x00\x75\x00\xdd\x00\x8e\x00\x77\x00\x78\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x74\x01\x91\x00\x00\x00\x9f\x00\xa0\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\xcf\x00\x94\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x00\x00\xef\x00\xdb\x00\x00\x00\xdd\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\xf0\x00\x00\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf1\x00\x00\x00\x00\x00\x95\x00\x00\x00\xf3\x00\x96\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x00\x00\x00\x9a\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\xe1\x02\x00\x00\x7f\x01\xdf\x00\x00\x00\xe0\x00\xe2\x02\x67\xfe\x00\x00\x67\xfe\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x00\x60\x01\xe4\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x8e\x00\x77\x00\x78\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\x91\x00\xce\x00\x9f\x00\xa0\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\xcf\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\xc9\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x44\x02\x93\x00\x9f\x00\xa0\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\xfb\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x03\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x5d\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x02\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x8e\x00\x77\x00\x78\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\xce\x04\x91\x00\x00\x00\x9f\x00\xa0\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x03\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x5d\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x05\x00\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x9f\x00\xa0\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x33\x05\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x75\x00\x91\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x9f\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x02\x00\x00\x00\x00\x6f\x00\x00\x00\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xcd\x02\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xde\x00\x75\x00\xce\x02\x8e\x00\x77\x00\x78\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\x00\x00\x00\x90\x00\xdf\x00\x91\x00\xe0\x00\x9f\x00\xa0\x00\x00\x00\x00\x00\x92\x00\xe1\x00\x93\x00\x00\x00\x00\x00\x94\x00\xe2\x00\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x03\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x75\x00\x91\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x94\x00\x00\xff\x00\x00\x00\x00\x9f\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\xf2\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x03\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x75\x00\x91\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x94\x00\x00\xff\x00\x00\x00\x00\x9f\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x90\x00\x00\x00\x91\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x9f\x00\xa0\x00\x94\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x75\x00\x91\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x9f\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x04\x75\x00\x91\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x9f\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x8f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x00\x75\x00\x91\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x92\x00\x00\x00\x93\x00\x00\x00\x00\x00\x94\x00\x00\x00\x00\x00\x00\x00\x9f\x00\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x97\x00\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x00\x00\x9a\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x7f\x01\xdf\x00\x00\x00\xe0\x00\x80\x01\x00\x00\x00\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x00\x60\x01\xe4\x00\x81\x01\x82\x01\x83\x01\x84\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x00\xa0\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x74\x01\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\xcf\x00\x4a\x00\x5f\x01\xdf\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x4b\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x75\x01\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x69\x01\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\xcf\x00\x4a\x00\x5f\x01\xdf\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x4b\x00\x6a\x01\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\xce\x01\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\xc7\x01\x4a\x00\x5f\x01\xdf\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\xc6\x01\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\xc7\x01\x4a\x00\x5f\x01\xdf\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x64\x01\x49\x00\x00\x00\x00\x00\x4a\x00\x5f\x01\xdf\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x5f\x01\xdf\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x4b\x00\xcd\x01\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\xc7\x01\x4a\x00\x5f\x01\xdf\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x5f\x01\xdf\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x60\x01\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x26\x02\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x71\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x74\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x02\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\xfa\x02\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x50\x02\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x02\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\xfa\x02\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x04\x01\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x02\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x2d\x03\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xee\x02\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x4f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x72\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x00\x7a\x00\x7b\x00\x9a\x02\x36\x00\x37\x00\x38\x00\x39\x00\x9b\x02\x3b\x00\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x01\x9c\x02\x9d\x02\x9e\x02\x9f\x02\xa0\x02\xa1\x02\xa2\x02\xa3\x02\xa4\x02\xa5\x02\xa6\x02\xa7\x02\xa8\x02\xa9\x02\x1e\x01\x1f\x01\x20\x01\x21\x01\x22\x01\x23\x01\x24\x01\x25\x01\xaa\x02\xab\x02\x28\x01\xac\x02\x2a\x01\x2b\x01\x2c\x01\x2d\x01\x2e\x01\x2f\x01\x30\x01\x31\x01\x32\x01\x33\x01\x34\x01\x35\x01\x36\x01\x37\x01\x38\x01\x39\x01\x3a\x01\x3b\x01\xad\x02\x76\x00\x00\x00\x77\x00\x78\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x02\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x6b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x72\x00\x00\x00\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x54\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdf\x01\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x00\x00\x47\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\x00\x00\x00\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x00\x00\x57\x00\x58\x00\x59\x00\x00\x00\x5a\x00\x00\x00\x5b\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x37\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\xdb\x00\x00\x00\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x7e\x02\x99\x03\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x37\x00\x7f\x02\x00\x00\x3a\x00\x3b\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x03\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x03\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x37\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x00\x00\xb6\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x03\x00\x00\x00\x00\x75\x00\x76\x00\xb8\x03\x77\x00\x78\x00\x7e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x37\x00\x7f\x02\x00\x00\x3a\x00\x3b\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x03\x00\x00\x00\x00\x00\x00\xb4\x03\x00\x00\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\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\x79\x01\x21\x00\x22\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x23\x00\x35\x00\x00\x00\x37\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x00\x00\xb6\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x03\x00\x00\x00\x00\x75\x00\x76\x00\xb8\x03\x77\x00\x78\x00\x7e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x7f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\xda\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\xb7\x02\x00\x00\x80\x02\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x00\x60\x01\xe4\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\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\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x6d\x00\x6e\x00\x35\x00\x6f\x00\x37\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x00\x00\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\x00\x76\x00\x44\x01\x77\x00\x78\x00\x00\x00\x00\x00\x35\x00\x00\x00\x37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\xb9\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\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x6d\x00\x6e\x00\x35\x00\x6f\x00\x37\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x00\x00\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\x00\x76\x00\xb4\x03\x77\x00\x78\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x35\x00\x6f\x00\x37\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\xb7\x01\x77\x00\x78\x00\x6d\x00\x6e\x00\x35\x00\x6f\x00\x37\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x00\x00\x4a\x00\x00\x00\x00\x00\xb9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x05\x00\x00\x00\x00\x75\x00\x76\x00\x2a\x05\x77\x00\x78\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x01\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x35\x00\x77\x00\x78\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x74\x03\x77\x00\x78\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x75\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xfd\x00\x00\x99\x01\x0f\xfd\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x01\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x01\x92\x04\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\x93\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x76\x00\x00\x00\x77\x00\x78\x00\x35\x00\x00\x00\x37\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\xb7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\xd9\x04\x00\x00\x6d\x00\x6e\x00\x3a\x00\x6f\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x01\x5a\x05\x00\x00\x75\x00\x76\x00\x35\x00\x77\x00\x78\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5b\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x01\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x6d\x00\x6e\x00\x35\x00\x6f\x00\x37\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\xb7\x01\x77\x00\x78\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x37\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x05\x00\x00\x00\x00\x75\x00\x76\x00\x2a\x05\x77\x00\x78\x00\xb7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x01\x00\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\x93\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\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\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x35\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x3a\x00\x6f\x00\x00\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\xb1\x02\x00\x00\x00\x00\x75\x00\x76\x00\x35\x00\x77\x00\x78\x00\x6d\x00\x6e\x00\x3a\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x01\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x35\x00\x6f\x00\x00\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\xb7\x02\x77\x00\x78\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\x3f\x01\x00\x00\x40\x01\x00\x00\x00\x00\x35\x00\x00\x00\x00\x00\x41\x01\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x35\x00\x00\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x75\x00\x76\x00\x00\x00\x77\x00\x78\x00\xb7\x02\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x6f\x00\x00\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\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x76\x04\x77\x00\x78\x00\x6d\x00\x6e\x00\x35\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x76\x00\x4e\x04\x77\x00\x78\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x35\x00\x6f\x00\x00\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x76\x04\x77\x00\x78\x00\x6d\x00\x6e\x00\x35\x00\x6f\x00\x00\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x4e\x04\x77\x00\x78\x00\x6d\x00\x6e\x00\x35\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x76\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\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\x00\x00\x00\x00\x00\x00\x75\x00\x76\x00\x35\x00\x77\x00\x78\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\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\x4a\x02\x00\x00\x00\x00\x75\x00\x76\x00\x35\x00\x77\x00\x78\x00\x6d\x00\x6e\x00\x00\x00\x6f\x00\x00\x00\x00\x00\x00\x00\x4b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x02\x00\x00\x00\x00\x75\x00\x76\x00\x35\x00\x77\x00\x78\x00\x00\x00\x00\x00\x3a\x00\x3b\x00\x00\x00\x00\x00\x00\x00\xbc\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\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x35\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x4a\x02\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x35\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\xa2\x04\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x6f\x00\x4a\x02\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\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\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x59\x04\x00\x00\x00\x00\x4a\x02\x00\x00\x00\x00\x00\x00\x35\x00\x6f\x00\x00\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\xc5\xfe\x00\x00\x6f\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x35\x00\x00\x00\x6f\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x6f\x00\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x6f\x00\xc5\xfe\xc5\xfe\xc5\xfe\xc5\xfe\x00\x00\xc5\xfe\xc5\xfe\xc5\xfe\xc5\xfe\xc5\xfe\xc5\xfe\xc5\xfe\xc5\xfe\xc5\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\xc5\xfe\x5d\x00\x9b\x00\x9c\x00\x9d\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\xfe\x0c\x01\x00\x00\xc5\xfe\xc5\xfe\x00\x00\x0d\x01\x6f\x00\x0e\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\x75\x00\x00\x00\x00\x00\x77\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x01\x10\x01\x11\x01\x12\x01\x13\x01\x14\x01\x15\x01\x16\x01\x17\x01\x18\x01\x19\x01\x1a\x01\x1b\x01\x1c\x01\x1d\x01\x1e\x01\x1f\x01\x20\x01\x21\x01\x22\x01\x23\x01\x24\x01\x25\x01\x26\x01\x27\x01\x28\x01\x29\x01\x2a\x01\x2b\x01\x2c\x01\x2d\x01\x2e\x01\x2f\x01\x30\x01\x31\x01\x32\x01\x33\x01\x34\x01\x35\x01\x36\x01\x37\x01\x38\x01\x39\x01\x3a\x01\x3b\x01\x3c\x01\xe9\x02\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\xfe\x02\xf5\x02\xf6\x02\xf7\x02\x00\x00\xf8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\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\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xe9\x02\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\xf4\x02\xf5\x02\xf6\x02\xf7\x02\x00\x00\xf8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\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\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xe9\x02\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x26\x04\xf6\x02\xf7\x02\x00\x00\xf8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\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\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xe9\x02\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x21\x04\xf7\x02\x00\x00\xf8\x02\x00\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\xec\x02\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x23\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x33\x00\x26\x02\x00\x00\x24\x02\x51\x01\x52\x01\xfc\x00\x21\x00\x22\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x23\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x23\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x33\x00\x23\x02\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xe9\x02\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xea\x02\xeb\x02\x00\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\xec\x02\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x23\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x33\x00\x85\x02\x00\x00\x24\x02\x00\x00\xfb\x00\xfc\x00\x21\x00\x22\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x23\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x23\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x33\x00\x93\x03\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xe9\x02\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x03\xeb\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\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\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xe9\x02\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x04\xeb\x02\x00\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\xec\x02\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x23\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xe9\x02\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x19\x04\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xec\x02\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\xa6\x00\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x33\x00\x02\x01\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x49\x01\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x48\x01\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\xc1\x00\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xb9\x01\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x2b\x03\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x1a\x04\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x04\x04\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xbe\x03\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x78\x04\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x34\x04\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x32\x04\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x31\x04\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x30\x04\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xb3\x04\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\xfa\x04\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xca\x04\xa7\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x6b\x01\x00\x00\x00\x00\x6c\x01\x66\x01\x00\x00\x6d\x01\x00\x00\x6e\x01\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x58\x01\x00\x00\x59\x01\x00\x00\x00\x00\x5a\x01\x6f\x01\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x70\x01\x5b\x01\xd6\x00\x71\x01\x72\x01\x33\x00\x54\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x64\x01\x00\x00\x00\x00\x65\x01\x66\x01\x00\x00\x67\x01\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x01\x00\x00\x00\x00\x23\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x61\x01\x62\x01\x2b\x00\x00\x00\x00\x00\x58\x01\x00\x00\x59\x01\x00\x00\x00\x00\x5a\x01\xeb\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x00\x00\x5b\x01\x00\x00\x5c\x01\x5d\x01\x33\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x58\x01\x00\x00\x59\x01\x00\x00\x00\x00\x5a\x01\xeb\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x00\x00\x5b\x01\x00\x00\x5c\x01\x5d\x01\x33\x00\x54\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x55\x01\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x01\x54\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x57\x01\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\xc3\x01\x00\x00\x00\x00\x00\x00\xc4\x01\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x58\x01\x00\x00\x59\x01\x00\x00\x00\x00\x5a\x01\xeb\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x00\x00\x5b\x01\x00\x00\x5c\x01\x5d\x01\x33\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x58\x01\x00\x00\x59\x01\x00\x00\x00\x00\x5a\x01\xeb\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x00\x00\x5b\x01\x00\x00\x5c\x01\x5d\x01\x33\x00\x54\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x08\x03\x00\x00\x00\x00\x00\x00\xc4\x01\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x54\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x01\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x58\x01\x00\x00\x59\x01\x00\x00\x00\x00\x5a\x01\xeb\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x00\x00\x5b\x01\x00\x00\x5c\x01\x5d\x01\x33\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x58\x01\x00\x00\x59\x01\x00\x00\x00\x00\x5a\x01\xeb\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x00\x00\x5b\x01\x00\x00\x5c\x01\x5d\x01\x33\x00\x54\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x03\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x02\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x58\x01\x00\x00\x59\x01\x00\x00\x00\x00\x5a\x01\xeb\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x00\x00\x5b\x01\x00\x00\x5c\x01\x5d\x01\x33\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x58\x01\x00\x00\x59\x01\x00\x00\x00\x00\x5a\x01\xeb\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x00\x00\x5b\x01\x00\x00\x5c\x01\x5d\x01\x33\x00\xfb\x02\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfc\x02\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x58\x01\x00\x00\x59\x01\x00\x00\x00\x00\x5a\x01\xeb\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xd3\x00\xd4\x00\x00\x00\x5b\x01\x00\x00\x5c\x01\x5d\x01\x33\x00\xa3\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x30\x03\x31\x03\x00\x00\x00\x00\x00\x00\x32\x03\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x33\x04\x00\x00\x00\x00\x00\x00\x32\x03\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\xa3\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x00\x00\x00\x4b\x01\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x05\x03\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x03\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x03\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x92\x02\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x02\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa3\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x03\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\xa3\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x03\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x05\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\xac\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\xaa\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x02\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\xfa\x02\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x02\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\xee\x02\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x02\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x89\x02\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x02\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x82\x02\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92\x03\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x27\x03\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x04\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x25\x04\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x04\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x47\x05\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x01\x1a\x00\x47\x01\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\xd5\x01\x1a\x00\x47\x01\x1c\x00\x00\x00\x33\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x76\x04\x1a\x00\x47\x01\x1c\x00\x00\x00\x00\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\xb1\x01\x00\x00\x2b\x00\xb2\x01\x1e\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x23\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\xb2\x01\x00\x00\x1f\x00\x00\x00\x00\x00\x20\x00\x21\x00\x22\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\xdd\x01\xfc\x00\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x02\x21\x00\x22\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x23\x00\x00\x00\x00\x00\x96\x02\x09\x01\x0a\x01\x33\x00\x97\x02\x98\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95\x02\x21\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x00\x00\x00\x00\x96\x02\x09\x01\x0a\x01\x00\x00\x97\x02\xab\x03\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4e\x01\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4c\x01\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x02\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x01\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x01\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x01\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1c\x03\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x03\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x02\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x03\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x03\x21\x00\x22\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x23\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x33\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x26\x00\x00\x00\x27\x00\x28\x00\x00\x00\x00\x00\x29\x00\x2a\x00\x00\x00\x00\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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 (11, 787) [-	(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),-	(694 , happyReduce_694),-	(695 , happyReduce_695),-	(696 , happyReduce_696),-	(697 , happyReduce_697),-	(698 , happyReduce_698),-	(699 , happyReduce_699),-	(700 , happyReduce_700),-	(701 , happyReduce_701),-	(702 , happyReduce_702),-	(703 , happyReduce_703),-	(704 , happyReduce_704),-	(705 , happyReduce_705),-	(706 , happyReduce_706),-	(707 , happyReduce_707),-	(708 , happyReduce_708),-	(709 , happyReduce_709),-	(710 , happyReduce_710),-	(711 , happyReduce_711),-	(712 , happyReduce_712),-	(713 , happyReduce_713),-	(714 , happyReduce_714),-	(715 , happyReduce_715),-	(716 , happyReduce_716),-	(717 , happyReduce_717),-	(718 , happyReduce_718),-	(719 , happyReduce_719),-	(720 , happyReduce_720),-	(721 , happyReduce_721),-	(722 , happyReduce_722),-	(723 , happyReduce_723),-	(724 , happyReduce_724),-	(725 , happyReduce_725),-	(726 , happyReduce_726),-	(727 , happyReduce_727),-	(728 , happyReduce_728),-	(729 , happyReduce_729),-	(730 , happyReduce_730),-	(731 , happyReduce_731),-	(732 , happyReduce_732),-	(733 , happyReduce_733),-	(734 , happyReduce_734),-	(735 , happyReduce_735),-	(736 , happyReduce_736),-	(737 , happyReduce_737),-	(738 , happyReduce_738),-	(739 , happyReduce_739),-	(740 , happyReduce_740),-	(741 , happyReduce_741),-	(742 , happyReduce_742),-	(743 , happyReduce_743),-	(744 , happyReduce_744),-	(745 , happyReduce_745),-	(746 , happyReduce_746),-	(747 , happyReduce_747),-	(748 , happyReduce_748),-	(749 , happyReduce_749),-	(750 , happyReduce_750),-	(751 , happyReduce_751),-	(752 , happyReduce_752),-	(753 , happyReduce_753),-	(754 , happyReduce_754),-	(755 , happyReduce_755),-	(756 , happyReduce_756),-	(757 , happyReduce_757),-	(758 , happyReduce_758),-	(759 , happyReduce_759),-	(760 , happyReduce_760),-	(761 , happyReduce_761),-	(762 , happyReduce_762),-	(763 , happyReduce_763),-	(764 , happyReduce_764),-	(765 , happyReduce_765),-	(766 , happyReduce_766),-	(767 , happyReduce_767),-	(768 , happyReduce_768),-	(769 , happyReduce_769),-	(770 , happyReduce_770),-	(771 , happyReduce_771),-	(772 , happyReduce_772),-	(773 , happyReduce_773),-	(774 , happyReduce_774),-	(775 , happyReduce_775),-	(776 , happyReduce_776),-	(777 , happyReduce_777),-	(778 , happyReduce_778),-	(779 , happyReduce_779),-	(780 , happyReduce_780),-	(781 , happyReduce_781),-	(782 , happyReduce_782),-	(783 , happyReduce_783),-	(784 , happyReduce_784),-	(785 , happyReduce_785),-	(786 , happyReduce_786),-	(787 , happyReduce_787)-	]--happy_n_terms = 157 :: Int-happy_n_nonterms = 280 :: Int--happyReduce_11 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_11 = happySpecReduce_2  0# happyReduction_11-happyReduction_11 happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOut15 happy_x_2 of { happy_var_2 -> -	happyIn14-		 (let (os,ss,l) = happy_var_1 in map (\x -> x os ss l) happy_var_2-	)}}--happyReduce_12 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_12 = happySpecReduce_2  1# happyReduction_12-happyReduction_12 happy_x_2-	happy_x_1-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> -	case happyOut15 happy_x_2 of { happy_var_2 -> -	happyIn15-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_13 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_13 = happySpecReduce_1  1# happyReduction_13-happyReduction_13 happy_x_1-	 =  case happyOut22 happy_x_1 of { happy_var_1 -> -	happyIn15-		 ([happy_var_1]-	)}--happyReduce_14 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_14 = happyMonadReduce 2# 2# happyReduction_14-happyReduction_14 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOut17 happy_x_2 of { happy_var_2 -> -	( checkPageModule happy_var_2 happy_var_1)}})-	) (\r -> happyReturn (happyIn16 r))--happyReduce_15 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_15 = happyMonadReduce 5# 2# 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) tk-	 = happyThen ((case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 XCodeTagOpen) -> -	case happyOut22 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 XCodeTagClose) -> -	case happyOut17 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 (happyIn16 r))--happyReduce_16 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_16 = happySpecReduce_2  2# happyReduction_16-happyReduction_16 happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOut22 happy_x_2 of { happy_var_2 -> -	happyIn16-		 (let (os,ss,l) = happy_var_1 in happy_var_2 os ss l-	)}}--happyReduce_17 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_17 = happyMonadReduce 9# 3# happyReduction_17-happyReduction_17 (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 happyOut202 happy_x_2 of { happy_var_2 -> -	case happyOut205 happy_x_3 of { happy_var_3 -> -	case happyOut207 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 XStdTagClose) -> -	case happyOut200 happy_x_6 of { happy_var_6 -> -	case happyOutTok happy_x_7 of { (Loc happy_var_7 XCloseTagOpen) -> -	case happyOut202 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 (happyIn17 r))--happyReduce_18 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_18 = happyReduce 5# 3# happyReduction_18-happyReduction_18 (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 happyOut202 happy_x_2 of { happy_var_2 -> -	case happyOut205 happy_x_3 of { happy_var_3 -> -	case happyOut207 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 XEmptyTagClose) -> -	happyIn17-		 (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_19 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_19 = happySpecReduce_3  4# happyReduction_19-happyReduction_19 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut272 happy_x_1 of { happy_var_1 -> -	case happyOut19 happy_x_2 of { happy_var_2 -> -	case happyOut273 happy_x_3 of { happy_var_3 -> -	happyIn18-		 (let (os,ss,ml) = happy_var_2 in (os,happy_var_1:ss++[happy_var_3],happy_var_1 <^^> happy_var_3)-	)}}}--happyReduce_20 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_20 = happySpecReduce_3  5# happyReduction_20-happyReduction_20 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut20 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	case happyOut19 happy_x_3 of { happy_var_3 -> -	happyIn19-		 (let (os,ss,ml) = happy_var_3;-                                                             ss' = reverse happy_var_2 ++ ss;-                                                             l'  = case happy_var_2 of-                                                                    [] -> ann happy_var_1-                                                                    _  -> ann happy_var_1 <++> nIS (last happy_var_2);-                                                         in (happy_var_1 : os, ss', Just $ l'  <+?> ml)-	)}}}--happyReduce_21 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_21 = happySpecReduce_0  5# happyReduction_21-happyReduction_21  =  happyIn19-		 (([],[],Nothing)-	)--happyReduce_22 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_22 = happyReduce 4# 6# happyReduction_22-happyReduction_22 (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 happyOut21 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 PragmaEnd) -> -	happyIn20-		 (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_23 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_23 = happySpecReduce_3  6# happyReduction_23-happyReduction_23 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> -	happyIn20-		 (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_24 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_24 = happySpecReduce_3  6# happyReduction_24-happyReduction_24 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 ANN) -> -	case happyOut103 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> -	happyIn20-		 (AnnModulePragma (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2-	)}}}--happyReduce_25 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_25 = happySpecReduce_3  7# happyReduction_25-happyReduction_25 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut21 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut263 happy_x_3 of { happy_var_3 -> -	happyIn21-		 ((fst happy_var_1 ++ [happy_var_3], snd happy_var_1 ++ [happy_var_2])-	)}}}--happyReduce_26 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_26 = happySpecReduce_2  7# happyReduction_26-happyReduction_26 happy_x_2-	happy_x_1-	 =  case happyOut263 happy_x_2 of { happy_var_2 -> -	happyIn21-		 (([happy_var_2],[])-	)}--happyReduce_27 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_27 = happySpecReduce_2  8# happyReduction_27-happyReduction_27 happy_x_2-	happy_x_1-	 =  case happyOut23 happy_x_1 of { happy_var_1 -> -	case happyOut25 happy_x_2 of { happy_var_2 -> -	happyIn22-		 (let (is,ds,ss1,inf) = happy_var_2-                 in \os ss l -> Module (l <++> inf <** (ss ++ ss1)) happy_var_1 os is ds-	)}}--happyReduce_28 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_28 = happyReduce 5# 9# happyReduction_28-happyReduction_28 (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 happyOut283 happy_x_2 of { happy_var_2 -> -	case happyOut24 happy_x_3 of { happy_var_3 -> -	case happyOut29 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 KW_Where) -> -	happyIn23-		 (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_29 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_29 = happySpecReduce_0  9# happyReduction_29-happyReduction_29  =  happyIn23-		 (Nothing-	)--happyReduce_30 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_30 = happySpecReduce_3  10# happyReduction_30-happyReduction_30 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) -> -	happyIn24-		 (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_31 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_31 = happySpecReduce_3  10# happyReduction_31-happyReduction_31 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) -> -	happyIn24-		 (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_32 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_32 = happySpecReduce_0  10# happyReduction_32-happyReduction_32  =  happyIn24-		 (Nothing-	)--happyReduce_33 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_33 = happySpecReduce_3  11# happyReduction_33-happyReduction_33 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> -	case happyOut26 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> -	happyIn25-		 (let (is,ds,ss) = happy_var_2 in (is,ds,happy_var_1:ss ++ [happy_var_3], happy_var_1 <^^> happy_var_3)-	)}}}--happyReduce_34 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_34 = happyReduce 4# 11# happyReduction_34-happyReduction_34 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut272 happy_x_1 of { happy_var_1 -> -	case happyOut26 happy_x_2 of { happy_var_2 -> -	case happyOut273 happy_x_3 of { happy_var_3 -> -	happyIn25-		 (let (is,ds,ss) = happy_var_2 in (is,ds,happy_var_1:ss ++ [happy_var_3], happy_var_1 <^^> happy_var_3)-	) `HappyStk` happyRest}}}--happyReduce_35 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_35 = happyReduce 4# 12# happyReduction_35-happyReduction_35 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut37 happy_x_2 of { happy_var_2 -> -	case happyOut27 happy_x_3 of { happy_var_3 -> -	case happyOut58 happy_x_4 of { happy_var_4 -> -	happyIn26-		 ((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_36 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_36 = happySpecReduce_2  12# happyReduction_36-happyReduction_36 happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut58 happy_x_2 of { happy_var_2 -> -	happyIn26-		 (([], fst happy_var_2, reverse happy_var_1 ++ snd happy_var_2)-	)}}--happyReduce_37 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_37 = happySpecReduce_3  12# happyReduction_37-happyReduction_37 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut37 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn26-		 ((reverse (fst happy_var_2), [], reverse happy_var_1 ++ snd happy_var_2 ++ reverse happy_var_3)-	)}}}--happyReduce_38 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_38 = happySpecReduce_1  12# happyReduction_38-happyReduction_38 happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	happyIn26-		 (([], [], reverse happy_var_1)-	)}--happyReduce_39 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_39 = happySpecReduce_2  13# happyReduction_39-happyReduction_39 happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 SemiColon) -> -	happyIn27-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_40 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_40 = happySpecReduce_1  14# happyReduction_40-happyReduction_40 happy_x_1-	 =  case happyOut27 happy_x_1 of { happy_var_1 -> -	happyIn28-		 (happy_var_1-	)}--happyReduce_41 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_41 = happySpecReduce_0  14# happyReduction_41-happyReduction_41  =  happyIn28-		 ([]-	)--happyReduce_42 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_42 = happySpecReduce_1  15# happyReduction_42-happyReduction_42 happy_x_1-	 =  case happyOut30 happy_x_1 of { happy_var_1 -> -	happyIn29-		 (Just happy_var_1-	)}--happyReduce_43 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_43 = happySpecReduce_0  15# happyReduction_43-happyReduction_43  =  happyIn29-		 (Nothing-	)--happyReduce_44 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_44 = happyReduce 4# 16# happyReduction_44-happyReduction_44 (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 happyOut32 happy_x_2 of { happy_var_2 -> -	case happyOut31 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> -	happyIn30-		 (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_45 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_45 = happySpecReduce_3  16# happyReduction_45-happyReduction_45 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut31 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn30-		 (ExportSpecList (happy_var_1 <^^> happy_var_3 <** (happy_var_1:happy_var_2++[happy_var_3])) []-	)}}}--happyReduce_46 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_46 = happySpecReduce_1  17# happyReduction_46-happyReduction_46 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Comma) -> -	happyIn31-		 ([happy_var_1]-	)}--happyReduce_47 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_47 = happySpecReduce_0  17# happyReduction_47-happyReduction_47  =  happyIn31-		 ([  ]-	)--happyReduce_48 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_48 = happySpecReduce_3  18# happyReduction_48-happyReduction_48 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut32 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut33 happy_x_3 of { happy_var_3 -> -	happyIn32-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)-	)}}}--happyReduce_49 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_49 = happySpecReduce_1  18# happyReduction_49-happyReduction_49 happy_x_1-	 =  case happyOut33 happy_x_1 of { happy_var_1 -> -	happyIn32-		 (([happy_var_1],[])-	)}--happyReduce_50 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_50 = happySpecReduce_1  19# happyReduction_50-happyReduction_50 happy_x_1-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> -	happyIn33-		 (EVar (ann happy_var_1) happy_var_1-	)}--happyReduce_51 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_51 = happyMonadReduce 2# 19# happyReduction_51-happyReduction_51 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> -	case happyOut36 happy_x_2 of { happy_var_2 -> -	( do { checkEnabled ExplicitNamespaces;-                                                      return (EAbs (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 (happyIn33 r))--happyReduce_52 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_52 = happySpecReduce_1  19# happyReduction_52-happyReduction_52 happy_x_1-	 =  case happyOut285 happy_x_1 of { happy_var_1 -> -	happyIn33-		 (EAbs (ann happy_var_1) (NoNamespace (ann happy_var_1)) happy_var_1-	)}--happyReduce_53 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_53 = happySpecReduce_3  19# happyReduction_53-happyReduction_53 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut285 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) -> -	happyIn33-		 (EThingWith (ann happy_var_1 <++> nIS happy_var_3 <** [happy_var_2,happy_var_3])    (NoWildcard noSrcSpan) happy_var_1 []-	)}}}--happyReduce_54 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_54 = happyMonadReduce 4# 19# happyReduction_54-happyReduction_54 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut285 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> -	case happyOut34 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> -	( mkEThingWith (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))}}}})-	) (\r -> happyReturn (happyIn33 r))--happyReduce_55 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_55 = happySpecReduce_2  19# happyReduction_55-happyReduction_55 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Module) -> -	case happyOut283 happy_x_2 of { happy_var_2 -> -	happyIn33-		 (EModuleContents (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_56 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_56 = happyMonadReduce 2# 19# happyReduction_56-happyReduction_56 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Pattern) -> -	case happyOut247 happy_x_2 of { happy_var_2 -> -	(  do { checkEnabled PatternSynonyms;-                                                      return $ EAbs (nIS happy_var_1 <++> (ann happy_var_2) <** [happy_var_1])-                                                                 (PatternNamespace (nIS happy_var_1)) happy_var_2 })}})-	) (\r -> happyReturn (happyIn33 r))--happyReduce_57 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_57 = happySpecReduce_3  20# happyReduction_57-happyReduction_57 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut34 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut35 happy_x_3 of { happy_var_3 -> -	happyIn34-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)-	)}}}--happyReduce_58 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_58 = happySpecReduce_1  20# happyReduction_58-happyReduction_58 happy_x_1-	 =  case happyOut35 happy_x_1 of { happy_var_1 -> -	happyIn34-		 (([happy_var_1],[])-	)}--happyReduce_59 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_59 = happySpecReduce_1  21# happyReduction_59-happyReduction_59 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DotDot) -> -	happyIn35-		 (Left happy_var_1-	)}--happyReduce_60 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_60 = happySpecReduce_1  21# happyReduction_60-happyReduction_60 happy_x_1-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> -	happyIn35-		 (Right happy_var_1-	)}--happyReduce_61 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_61 = happySpecReduce_1  22# happyReduction_61-happyReduction_61 happy_x_1-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> -	happyIn36-		 (happy_var_1-	)}--happyReduce_62 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_62 = happySpecReduce_1  22# happyReduction_62-happyReduction_62 happy_x_1-	 =  case happyOut247 happy_x_1 of { happy_var_1 -> -	happyIn36-		 (happy_var_1-	)}--happyReduce_63 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_63 = happySpecReduce_3  23# happyReduction_63-happyReduction_63 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut37 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_2 of { happy_var_2 -> -	case happyOut38 happy_x_3 of { happy_var_3 -> -	happyIn37-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)-	)}}}--happyReduce_64 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_64 = happySpecReduce_1  23# happyReduction_64-happyReduction_64 happy_x_1-	 =  case happyOut38 happy_x_1 of { happy_var_1 -> -	happyIn37-		 (([happy_var_1],[])-	)}--happyReduce_65 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_65 = happyReduce 8# 24# happyReduction_65-happyReduction_65 (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 happyOut39 happy_x_2 of { happy_var_2 -> -	case happyOut40 happy_x_3 of { happy_var_3 -> -	case happyOut41 happy_x_4 of { happy_var_4 -> -	case happyOut42 happy_x_5 of { happy_var_5 -> -	case happyOut283 happy_x_6 of { happy_var_6 -> -	case happyOut43 happy_x_7 of { happy_var_7 -> -	case happyOut44 happy_x_8 of { happy_var_8 -> -	happyIn38-		 (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_66 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_66 = happySpecReduce_2  25# happyReduction_66-happyReduction_66 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) -> -	happyIn39-		 ((True,[happy_var_1,happy_var_2])-	)}}--happyReduce_67 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_67 = happySpecReduce_0  25# happyReduction_67-happyReduction_67  =  happyIn39-		 ((False,[])-	)--happyReduce_68 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_68 = happyMonadReduce 1# 26# happyReduction_68-happyReduction_68 (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 (happyIn40 r))--happyReduce_69 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_69 = happySpecReduce_0  26# happyReduction_69-happyReduction_69  =  happyIn40-		 ((False, [])-	)--happyReduce_70 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_70 = happySpecReduce_1  27# happyReduction_70-happyReduction_70 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Qualified) -> -	happyIn41-		 ((True,[happy_var_1])-	)}--happyReduce_71 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_71 = happySpecReduce_0  27# happyReduction_71-happyReduction_71  =  happyIn41-		 ((False, [])-	)--happyReduce_72 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_72 = happyMonadReduce 1# 28# happyReduction_72-happyReduction_72 (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 (happyIn42 r))--happyReduce_73 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_73 = happySpecReduce_0  28# happyReduction_73-happyReduction_73  =  happyIn42-		 ((Nothing,[])-	)--happyReduce_74 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_74 = happySpecReduce_2  29# happyReduction_74-happyReduction_74 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_As) -> -	case happyOut283 happy_x_2 of { happy_var_2 -> -	happyIn43-		 ((Just happy_var_2,[happy_var_1],Just (nIS happy_var_1 <++> ann happy_var_2))-	)}}--happyReduce_75 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_75 = happySpecReduce_0  29# happyReduction_75-happyReduction_75  =  happyIn43-		 ((Nothing,[],Nothing)-	)--happyReduce_76 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_76 = happySpecReduce_1  30# happyReduction_76-happyReduction_76 happy_x_1-	 =  case happyOut45 happy_x_1 of { happy_var_1 -> -	happyIn44-		 (Just happy_var_1-	)}--happyReduce_77 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_77 = happySpecReduce_0  30# happyReduction_77-happyReduction_77  =  happyIn44-		 (Nothing-	)--happyReduce_78 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_78 = happyReduce 5# 31# happyReduction_78-happyReduction_78 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut46 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> -	case happyOut47 happy_x_3 of { happy_var_3 -> -	case happyOut31 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> -	happyIn45-		 (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_79 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_79 = happyReduce 4# 31# happyReduction_79-happyReduction_79 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut46 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> -	case happyOut31 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> -	happyIn45-		 (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_80 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_80 = happySpecReduce_1  32# happyReduction_80-happyReduction_80 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Hiding) -> -	happyIn46-		 ((True,Just (nIS happy_var_1),[happy_var_1])-	)}--happyReduce_81 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_81 = happySpecReduce_0  32# happyReduction_81-happyReduction_81  =  happyIn46-		 ((False,Nothing,[])-	)--happyReduce_82 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_82 = happySpecReduce_3  33# happyReduction_82-happyReduction_82 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut47 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut48 happy_x_3 of { happy_var_3 -> -	happyIn47-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)-	)}}}--happyReduce_83 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_83 = happySpecReduce_1  33# happyReduction_83-happyReduction_83 happy_x_1-	 =  case happyOut48 happy_x_1 of { happy_var_1 -> -	happyIn47-		 (([happy_var_1],[])-	)}--happyReduce_84 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_84 = happySpecReduce_1  34# happyReduction_84-happyReduction_84 happy_x_1-	 =  case happyOut241 happy_x_1 of { happy_var_1 -> -	happyIn48-		 (IVar (ann happy_var_1) happy_var_1-	)}--happyReduce_85 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_85 = happyMonadReduce 2# 34# happyReduction_85-happyReduction_85 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> -	case happyOut241 happy_x_2 of { happy_var_2 -> -	( do { checkEnabled ExplicitNamespaces;-                                                      return (IAbs (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 (happyIn48 r))--happyReduce_86 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_86 = happyMonadReduce 2# 34# happyReduction_86-happyReduction_86 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Pattern) -> -	case happyOut245 happy_x_2 of { happy_var_2 -> -	( do { checkEnabled PatternSynonyms;-                                                      return (IAbs (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1, srcInfoSpan (ann happy_var_2)]) (PatternNamespace (nIS happy_var_1 <** [happy_var_1])) happy_var_2) })}})-	) (\r -> happyReturn (happyIn48 r))--happyReduce_87 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_87 = happySpecReduce_1  34# happyReduction_87-happyReduction_87 happy_x_1-	 =  case happyOut284 happy_x_1 of { happy_var_1 -> -	happyIn48-		 (IAbs (ann happy_var_1) (NoNamespace (ann happy_var_1)) happy_var_1-	)}--happyReduce_88 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_88 = happyReduce 4# 34# happyReduction_88-happyReduction_88 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut284 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) -> -	happyIn48-		 (IThingAll  (ann happy_var_1 <++> nIS happy_var_4 <** [happy_var_2,happy_var_3,happy_var_4]) happy_var_1-	) `HappyStk` happyRest}}}}--happyReduce_89 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_89 = happySpecReduce_3  34# happyReduction_89-happyReduction_89 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut284 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) -> -	happyIn48-		 (IThingWith (ann happy_var_1 <++> nIS happy_var_3 <** [happy_var_2,happy_var_3])    happy_var_1 []-	)}}}--happyReduce_90 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_90 = happyReduce 4# 34# happyReduction_90-happyReduction_90 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut284 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> -	case happyOut49 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> -	happyIn48-		 (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_91 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_91 = happySpecReduce_3  35# happyReduction_91-happyReduction_91 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut49 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut50 happy_x_3 of { happy_var_3 -> -	happyIn49-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)-	)}}}--happyReduce_92 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_92 = happySpecReduce_1  35# happyReduction_92-happyReduction_92 happy_x_1-	 =  case happyOut50 happy_x_1 of { happy_var_1 -> -	happyIn49-		 (([happy_var_1],[])-	)}--happyReduce_93 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_93 = happySpecReduce_1  36# happyReduction_93-happyReduction_93 happy_x_1-	 =  case happyOut241 happy_x_1 of { happy_var_1 -> -	happyIn50-		 (VarName (ann happy_var_1) happy_var_1-	)}--happyReduce_94 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_94 = happySpecReduce_1  36# happyReduction_94-happyReduction_94 happy_x_1-	 =  case happyOut245 happy_x_1 of { happy_var_1 -> -	happyIn50-		 (ConName (ann happy_var_1) happy_var_1-	)}--happyReduce_95 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_95 = happySpecReduce_3  37# happyReduction_95-happyReduction_95 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut53 happy_x_1 of { happy_var_1 -> -	case happyOut52 happy_x_2 of { happy_var_2 -> -	case happyOut54 happy_x_3 of { happy_var_3 -> -	happyIn51-		 (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_96 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_96 = happySpecReduce_0  38# happyReduction_96-happyReduction_96  =  happyIn52-		 ((Nothing, [])-	)--happyReduce_97 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_97 = happyMonadReduce 1# 38# happyReduction_97-happyReduction_97 (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 (happyIn52 r))--happyReduce_98 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_98 = happySpecReduce_1  39# happyReduction_98-happyReduction_98 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Infix) -> -	happyIn53-		 (AssocNone  $ nIS happy_var_1-	)}--happyReduce_99 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_99 = happySpecReduce_1  39# happyReduction_99-happyReduction_99 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_InfixL) -> -	happyIn53-		 (AssocLeft  $ nIS happy_var_1-	)}--happyReduce_100 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_100 = happySpecReduce_1  39# happyReduction_100-happyReduction_100 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_InfixR) -> -	happyIn53-		 (AssocRight $ nIS happy_var_1-	)}--happyReduce_101 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_101 = happySpecReduce_3  40# happyReduction_101-happyReduction_101 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut54 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut253 happy_x_3 of { happy_var_3 -> -	happyIn54-		 (let (ops,ss,l) = happy_var_1 in (happy_var_3 : ops, happy_var_2 : ss, l <++> ann happy_var_3)-	)}}}--happyReduce_102 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_102 = happySpecReduce_1  40# happyReduction_102-happyReduction_102 happy_x_1-	 =  case happyOut253 happy_x_1 of { happy_var_1 -> -	happyIn54-		 (([happy_var_1],[],ann happy_var_1)-	)}--happyReduce_103 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_103 = happySpecReduce_0  41# happyReduction_103-happyReduction_103  =  happyIn55-		 (Nothing-	)--happyReduce_104 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_104 = happySpecReduce_1  41# happyReduction_104-happyReduction_104 happy_x_1-	 =  case happyOut56 happy_x_1 of { happy_var_1 -> -	happyIn55-		 (Just happy_var_1-	)}--happyReduce_105 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_105 = happyReduce 4# 42# happyReduction_105-happyReduction_105 (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 Bar) -> -	case happyOut287 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightArrow) -> -	case happyOut57 happy_x_4 of { happy_var_4 -> -	happyIn56-		 (InjectivityInfo (nIS happy_var_1 <++> ann (last happy_var_4) <** [happy_var_1,happy_var_3]) happy_var_2 (reverse happy_var_4)-	) `HappyStk` happyRest}}}}--happyReduce_106 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_106 = happySpecReduce_2  43# happyReduction_106-happyReduction_106 happy_x_2-	happy_x_1-	 =  case happyOut57 happy_x_1 of { happy_var_1 -> -	case happyOut287 happy_x_2 of { happy_var_2 -> -	happyIn57-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_107 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_107 = happySpecReduce_1  43# happyReduction_107-happyReduction_107 happy_x_1-	 =  case happyOut287 happy_x_1 of { happy_var_1 -> -	happyIn57-		 ([happy_var_1]-	)}--happyReduce_108 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_108 = happyMonadReduce 2# 44# happyReduction_108-happyReduction_108 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut59 happy_x_1 of { happy_var_1 -> -	case happyOut28 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 (happyIn58 r))--happyReduce_109 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_109 = happySpecReduce_3  45# happyReduction_109-happyReduction_109 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut59 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_2 of { happy_var_2 -> -	case happyOut60 happy_x_3 of { happy_var_3 -> -	happyIn59-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)-	)}}}--happyReduce_110 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_110 = happySpecReduce_1  45# happyReduction_110-happyReduction_110 happy_x_1-	 =  case happyOut60 happy_x_1 of { happy_var_1 -> -	happyIn59-		 (([happy_var_1],[])-	)}--happyReduce_111 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_111 = happyMonadReduce 1# 46# happyReduction_111-happyReduction_111 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut65 happy_x_1 of { happy_var_1 -> -	( checkEnabled RoleAnnotations >> return happy_var_1)})-	) (\r -> happyReturn (happyIn60 r))--happyReduce_112 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_112 = happyMonadReduce 4# 46# happyReduction_112-happyReduction_112 (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 happyOut105 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 Equals) -> -	case happyOut119 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 (happyIn60 r))--happyReduce_113 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_113 = happyMonadReduce 6# 46# happyReduction_113-happyReduction_113 (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 KW_Type) -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Family) -> -	case happyOut107 happy_x_3 of { happy_var_3 -> -	case happyOut62 happy_x_4 of { happy_var_4 -> -	case happyOut55 happy_x_5 of { happy_var_5 -> -	case happyOut69 happy_x_6 of { happy_var_6 -> -	( do { dh <- checkSimpleType happy_var_3;-                       let {l = nIS happy_var_1 <++> ann happy_var_3 <** [happy_var_1,happy_var_2]};-                       case happy_var_6 of {-                         Nothing    -> return (TypeFamDecl l dh happy_var_4 happy_var_5);-                         Just (x,a) -> return (ClosedTypeFamDecl (l <** [a]) dh happy_var_4 happy_var_5 x); }})}}}}}})-	) (\r -> happyReturn (happyIn60 r))--happyReduce_114 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_114 = happyMonadReduce 5# 46# happyReduction_114-happyReduction_114 (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 happyOut104 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 Equals) -> -	case happyOut119 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 (happyIn60 r))--happyReduce_115 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_115 = happyMonadReduce 4# 46# happyReduction_115-happyReduction_115 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut73 happy_x_1 of { happy_var_1 -> -	case happyOut120 happy_x_2 of { happy_var_2 -> -	case happyOut136 happy_x_3 of { happy_var_3 -> -	case happyOut144 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 (listToMaybe happy_var_4) <** ss};-                       checkDataOrNew happy_var_1 qds;-                       return (DataDecl l happy_var_1 cs dh (reverse qds) (reverse happy_var_4)) })}}}})-	) (\r -> happyReturn (happyIn60 r))--happyReduce_116 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_116 = happyMonadReduce 5# 46# happyReduction_116-happyReduction_116 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut73 happy_x_1 of { happy_var_1 -> -	case happyOut120 happy_x_2 of { happy_var_2 -> -	case happyOut155 happy_x_3 of { happy_var_3 -> -	case happyOut132 happy_x_4 of { happy_var_4 -> -	case happyOut144 happy_x_5 of { happy_var_5 -> -	( do { (cs,dh) <- checkDataHeader happy_var_2;-                       let { (gs,ss,minf) = happy_var_4;-                             derivs' = reverse happy_var_5;-                             l = ann happy_var_1 <+?> minf <+?> fmap ann (listToMaybe 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 [] derivs')-                        _ -> checkEnabled GADTs >> return (GDataDecl l happy_var_1 cs dh (fst happy_var_3) (reverse gs) derivs') })}}}}})-	) (\r -> happyReturn (happyIn60 r))--happyReduce_117 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_117 = happyMonadReduce 4# 46# happyReduction_117-happyReduction_117 (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 happyOut120 happy_x_3 of { happy_var_3 -> -	case happyOut61 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) happy_var_4 <** [happy_var_1,happy_var_2]};-                       return (DataFamDecl l cs dh happy_var_4) })}}}})-	) (\r -> happyReturn (happyIn60 r))--happyReduce_118 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_118 = happyMonadReduce 5# 46# happyReduction_118-happyReduction_118 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut73 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Instance) -> -	case happyOut119 happy_x_3 of { happy_var_3 -> -	case happyOut136 happy_x_4 of { happy_var_4 -> -	case happyOut144 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 (listToMaybe happy_var_5) <** happy_var_2:ss };-                       checkDataOrNew happy_var_1 qds;-                       return (DataInsDecl l happy_var_1 happy_var_3 (reverse qds) (reverse happy_var_5)) })}}}}})-	) (\r -> happyReturn (happyIn60 r))--happyReduce_119 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_119 = happyMonadReduce 6# 46# happyReduction_119-happyReduction_119 (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 happyOut73 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 KW_Instance) -> -	case happyOut119 happy_x_3 of { happy_var_3 -> -	case happyOut155 happy_x_4 of { happy_var_4 -> -	case happyOut132 happy_x_5 of { happy_var_5 -> -	case happyOut144 happy_x_6 of { happy_var_6 -> -	( do { -- (cs,c,t) <- checkDataHeader happy_var_4;-                       checkEnabled TypeFamilies ;-                       let {(gs,ss,minf) = happy_var_5;-                            derivs' = reverse happy_var_6;-                            l = ann happy_var_1 <+?> minf <+?> fmap ann (listToMaybe derivs') <** (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) derivs') })}}}}}})-	) (\r -> happyReturn (happyIn60 r))--happyReduce_120 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_120 = happyMonadReduce 4# 46# happyReduction_120-happyReduction_120 (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 happyOut120 happy_x_2 of { happy_var_2 -> -	case happyOut129 happy_x_3 of { happy_var_3 -> -	case happyOut157 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 (happyIn60 r))--happyReduce_121 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_121 = happyMonadReduce 4# 46# happyReduction_121-happyReduction_121 (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 happyOut68 happy_x_2 of { happy_var_2 -> -	case happyOut120 happy_x_3 of { happy_var_3 -> -	case happyOut163 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 (happyIn60 r))--happyReduce_122 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_122 = happyMonadReduce 5# 46# happyReduction_122-happyReduction_122 (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_Deriving) -> -	case happyOut282 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_Instance) -> -	case happyOut68 happy_x_4 of { happy_var_4 -> -	case happyOut120 happy_x_5 of { happy_var_5 -> -	( do { checkEnabled StandaloneDeriving ;-                       ih <- checkInstHeader happy_var_5;-                       let {l = nIS happy_var_1 <++> ann happy_var_5 <** [happy_var_1,happy_var_3]};-                       return (DerivDecl l happy_var_2 happy_var_4 ih) })}}}}})-	) (\r -> happyReturn (happyIn60 r))--happyReduce_123 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_123 = happyReduce 4# 46# happyReduction_123-happyReduction_123 (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 happyOut74 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> -	happyIn60-		 (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_124 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_124 = happyMonadReduce 1# 46# happyReduction_124-happyReduction_124 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut176 happy_x_1 of { happy_var_1 -> -	( do-              checkToplevel happy_var_1-              checkExpr happy_var_1 >>= \e -> return (SpliceDecl (ann e) e))})-	) (\r -> happyReturn (happyIn60 r))--happyReduce_125 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_125 = happyReduce 5# 46# happyReduction_125-happyReduction_125 (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 happyOut90 happy_x_3 of { happy_var_3 -> -	case happyOut91 happy_x_4 of { happy_var_4 -> -	case happyOut92 happy_x_5 of { happy_var_5 -> -	happyIn60-		 (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_126 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_126 = happyReduce 4# 46# happyReduction_126-happyReduction_126 (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 happyOut90 happy_x_3 of { happy_var_3 -> -	case happyOut92 happy_x_4 of { happy_var_4 -> -	happyIn60-		 (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_127 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_127 = happySpecReduce_3  46# happyReduction_127-happyReduction_127 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 RULES) -> -	case happyOut93 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> -	happyIn60-		 (RulePragmaDecl (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) $ reverse happy_var_2-	)}}}--happyReduce_128 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_128 = happySpecReduce_3  46# happyReduction_128-happyReduction_128 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DEPRECATED) -> -	case happyOut99 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> -	happyIn60-		 (DeprPragmaDecl (happy_var_1 <^^> happy_var_3 <** (happy_var_1:snd happy_var_2++[happy_var_3])) $ reverse (fst happy_var_2)-	)}}}--happyReduce_129 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_129 = happySpecReduce_3  46# happyReduction_129-happyReduction_129 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 WARNING) -> -	case happyOut99 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> -	happyIn60-		 (WarnPragmaDecl (happy_var_1 <^^> happy_var_3 <** (happy_var_1:snd happy_var_2++[happy_var_3])) $ reverse (fst happy_var_2)-	)}}}--happyReduce_130 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_130 = happySpecReduce_3  46# happyReduction_130-happyReduction_130 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 ANN) -> -	case happyOut103 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> -	happyIn60-		 (AnnPragma      (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2-	)}}}--happyReduce_131 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_131 = happyReduce 4# 46# happyReduction_131-happyReduction_131 (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 COMPLETE) -> -	case happyOut246 happy_x_2 of { happy_var_2 -> -	case happyOut156 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 PragmaEnd) -> -	happyIn60-		 (let com = maybe [] ((:[]) . fst) happy_var_3; ts = fmap snd happy_var_3 in-(CompletePragma (happy_var_1 <^^> happy_var_4 <** ([happy_var_1] ++ fst happy_var_2 ++ com ++ [happy_var_4])) (snd happy_var_2) ts)-	) `HappyStk` happyRest}}}}--happyReduce_132 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_132 = happySpecReduce_1  46# happyReduction_132-happyReduction_132 happy_x_1-	 =  case happyOut77 happy_x_1 of { happy_var_1 -> -	happyIn60-		 (happy_var_1-	)}--happyReduce_133 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_133 = happySpecReduce_0  47# happyReduction_133-happyReduction_133  =  happyIn61-		 (Nothing-	)--happyReduce_134 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_134 = happySpecReduce_2  47# happyReduction_134-happyReduction_134 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DoubleColon) -> -	case happyOut149 happy_x_2 of { happy_var_2 -> -	happyIn61-		 ((Just $ KindSig (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2)-	)}}--happyReduce_135 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_135 = happySpecReduce_0  48# happyReduction_135-happyReduction_135  =  happyIn62-		 (Nothing-	)--happyReduce_136 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_136 = happySpecReduce_2  48# happyReduction_136-happyReduction_136 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DoubleColon) -> -	case happyOut149 happy_x_2 of { happy_var_2 -> -	happyIn62-		 ((Just $ KindSig  (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2)-	)}}--happyReduce_137 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_137 = happySpecReduce_2  48# happyReduction_137-happyReduction_137 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Equals) -> -	case happyOut126 happy_x_2 of { happy_var_2 -> -	happyIn62-		 ((Just $ TyVarSig (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2)-	)}}--happyReduce_138 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_138 = happySpecReduce_0  49# happyReduction_138-happyReduction_138  =  happyIn63-		 ((Nothing, Nothing)-	)--happyReduce_139 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_139 = happySpecReduce_2  49# happyReduction_139-happyReduction_139 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DoubleColon) -> -	case happyOut149 happy_x_2 of { happy_var_2 -> -	happyIn63-		 ((Just (KindSig (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2), Nothing)-	)}}--happyReduce_140 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_140 = happySpecReduce_3  49# happyReduction_140-happyReduction_140 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Equals) -> -	case happyOut126 happy_x_2 of { happy_var_2 -> -	case happyOut56 happy_x_3 of { happy_var_3 -> -	happyIn63-		 ((Just (TyVarSig (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2), Just happy_var_3)-	)}}}--happyReduce_141 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_141 = happySpecReduce_0  50# happyReduction_141-happyReduction_141  =  happyIn64-		 ((Nothing, Nothing, Nothing)-	)--happyReduce_142 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_142 = happySpecReduce_2  50# happyReduction_142-happyReduction_142 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DoubleColon) -> -	case happyOut149 happy_x_2 of { happy_var_2 -> -	happyIn64-		 ((Just (KindSig (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2), Nothing, Nothing)-	)}}--happyReduce_143 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_143 = happySpecReduce_3  50# happyReduction_143-happyReduction_143 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Equals) -> -	case happyOut119 happy_x_2 of { happy_var_2 -> -	case happyOut55 happy_x_3 of { happy_var_3 -> -	happyIn64-		 ((Nothing, Just (happy_var_1, happy_var_2), happy_var_3)-	)}}}--happyReduce_144 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_144 = happyMonadReduce 4# 51# happyReduction_144-happyReduction_144 (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_Role) -> -	case happyOut117 happy_x_3 of { happy_var_3 -> -	case happyOut66 happy_x_4 of { happy_var_4 -> -	( mkRoleAnnotDecl happy_var_1 happy_var_2 happy_var_3 (reverse happy_var_4))}}}})-	) (\r -> happyReturn (happyIn65 r))--happyReduce_145 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_145 = happySpecReduce_0  52# happyReduction_145-happyReduction_145  =  happyIn66-		 ([]-	)--happyReduce_146 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_146 = happySpecReduce_2  52# happyReduction_146-happyReduction_146 happy_x_2-	happy_x_1-	 =  case happyOut66 happy_x_1 of { happy_var_1 -> -	case happyOut67 happy_x_2 of { happy_var_2 -> -	happyIn66-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_147 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_147 = happySpecReduce_1  53# happyReduction_147-happyReduction_147 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn67-		 (let (VarId v) = unLoc happy_var_1 in (Just v, nIS $ loc happy_var_1)-	)}--happyReduce_148 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_148 = happySpecReduce_1  53# happyReduction_148-happyReduction_148 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Underscore) -> -	happyIn67-		 ((Nothing, nIS happy_var_1)-	)}--happyReduce_149 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_149 = happySpecReduce_2  54# happyReduction_149-happyReduction_149 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 OVERLAP) -> -	happyIn68-		 (Just (Overlap (nIS happy_var_1))-	)}--happyReduce_150 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_150 = happySpecReduce_2  54# happyReduction_150-happyReduction_150 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 OVERLAPS) -> -	happyIn68-		 (Just (Overlaps (nIS happy_var_1))-	)}--happyReduce_151 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_151 = happySpecReduce_2  54# happyReduction_151-happyReduction_151 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 OVERLAPPING) -> -	happyIn68-		 (Just (Overlapping (nIS happy_var_1))-	)}--happyReduce_152 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_152 = happySpecReduce_2  54# happyReduction_152-happyReduction_152 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 OVERLAPPABLE) -> -	happyIn68-		 (Just (Overlappable (nIS happy_var_1))-	)}--happyReduce_153 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_153 = happySpecReduce_2  54# happyReduction_153-happyReduction_153 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 INCOHERENT) -> -	happyIn68-		 (Just (Incoherent (nIS happy_var_1))-	)}--happyReduce_154 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_154 = happySpecReduce_2  54# happyReduction_154-happyReduction_154 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 NO_OVERLAP) -> -	happyIn68-		 (Just (NoOverlap (nIS happy_var_1))-	)}--happyReduce_155 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_155 = happySpecReduce_0  54# happyReduction_155-happyReduction_155  =  happyIn68-		 (Nothing-	)--happyReduce_156 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_156 = happySpecReduce_0  55# happyReduction_156-happyReduction_156  =  happyIn69-		 (Nothing-	)--happyReduce_157 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_157 = happySpecReduce_2  55# happyReduction_157-happyReduction_157 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> -	case happyOut70 happy_x_2 of { happy_var_2 -> -	happyIn69-		 (Just (happy_var_2, happy_var_1)-	)}}--happyReduce_158 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_158 = happySpecReduce_3  56# happyReduction_158-happyReduction_158 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut71 happy_x_2 of { happy_var_2 -> -	happyIn70-		 (happy_var_2-	)}--happyReduce_159 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_159 = happySpecReduce_3  56# happyReduction_159-happyReduction_159 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut71 happy_x_2 of { happy_var_2 -> -	happyIn70-		 (happy_var_2-	)}--happyReduce_160 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_160 = happySpecReduce_3  57# happyReduction_160-happyReduction_160 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> -	case happyOut72 happy_x_3 of { happy_var_3 -> -	happyIn71-		 (happy_var_1 ++ [happy_var_3]-	)}}--happyReduce_161 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_161 = happySpecReduce_2  57# happyReduction_161-happyReduction_161 happy_x_2-	happy_x_1-	 =  case happyOut71 happy_x_1 of { happy_var_1 -> -	happyIn71-		 (happy_var_1-	)}--happyReduce_162 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_162 = happySpecReduce_1  57# happyReduction_162-happyReduction_162 happy_x_1-	 =  case happyOut72 happy_x_1 of { happy_var_1 -> -	happyIn71-		 ([happy_var_1]-	)}--happyReduce_163 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_163 = happyMonadReduce 3# 58# happyReduction_163-happyReduction_163 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut119 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Equals) -> -	case happyOut119 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 (happyIn72 r))--happyReduce_164 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_164 = happySpecReduce_1  59# happyReduction_164-happyReduction_164 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Data) -> -	happyIn73-		 (DataType $ nIS happy_var_1-	)}--happyReduce_165 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_165 = happySpecReduce_1  59# happyReduction_165-happyReduction_165 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_NewType) -> -	happyIn73-		 (NewType  $ nIS happy_var_1-	)}--happyReduce_166 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_166 = happyMonadReduce 1# 60# happyReduction_166-happyReduction_166 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut122 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 (happyIn74 r))--happyReduce_167 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_167 = happySpecReduce_1  60# happyReduction_167-happyReduction_167 happy_x_1-	 =  case happyOut106 happy_x_1 of { happy_var_1 -> -	happyIn74-		 (([happy_var_1],[])-	)}--happyReduce_168 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_168 = happySpecReduce_0  60# happyReduction_168-happyReduction_168  =  happyIn74-		 (([],[])-	)--happyReduce_169 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_169 = happyMonadReduce 3# 61# happyReduction_169-happyReduction_169 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut76 happy_x_2 of { happy_var_2 -> -	case happyOut28 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 (happyIn75 r))--happyReduce_170 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_170 = happySpecReduce_1  61# happyReduction_170-happyReduction_170 happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	happyIn75-		 (([],reverse happy_var_1)-	)}--happyReduce_171 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_171 = happySpecReduce_3  62# happyReduction_171-happyReduction_171 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut76 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_2 of { happy_var_2 -> -	case happyOut77 happy_x_3 of { happy_var_3 -> -	happyIn76-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)-	)}}}--happyReduce_172 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_172 = happySpecReduce_1  62# happyReduction_172-happyReduction_172 happy_x_1-	 =  case happyOut77 happy_x_1 of { happy_var_1 -> -	happyIn76-		 (([happy_var_1],[])-	)}--happyReduce_173 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_173 = happySpecReduce_1  63# happyReduction_173-happyReduction_173 happy_x_1-	 =  case happyOut79 happy_x_1 of { happy_var_1 -> -	happyIn77-		 (happy_var_1-	)}--happyReduce_174 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_174 = happySpecReduce_1  63# happyReduction_174-happyReduction_174 happy_x_1-	 =  case happyOut51 happy_x_1 of { happy_var_1 -> -	happyIn77-		 (happy_var_1-	)}--happyReduce_175 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_175 = happySpecReduce_1  63# happyReduction_175-happyReduction_175 happy_x_1-	 =  case happyOut168 happy_x_1 of { happy_var_1 -> -	happyIn77-		 (happy_var_1-	)}--happyReduce_176 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_176 = happySpecReduce_1  63# happyReduction_176-happyReduction_176 happy_x_1-	 =  case happyOut274 happy_x_1 of { happy_var_1 -> -	happyIn77-		 (happy_var_1-	)}--happyReduce_177 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_177 = happySpecReduce_1  63# happyReduction_177-happyReduction_177 happy_x_1-	 =  case happyOut280 happy_x_1 of { happy_var_1 -> -	happyIn77-		 (happy_var_1-	)}--happyReduce_178 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_178 = happySpecReduce_3  64# happyReduction_178-happyReduction_178 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> -	case happyOut75 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> -	happyIn78-		 (BDecls (happy_var_1 <^^> happy_var_3 <** (happy_var_1:snd happy_var_2++[happy_var_3])) (fst happy_var_2)-	)}}}--happyReduce_179 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_179 = happySpecReduce_3  64# happyReduction_179-happyReduction_179 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut272 happy_x_1 of { happy_var_1 -> -	case happyOut75 happy_x_2 of { happy_var_2 -> -	case happyOut273 happy_x_3 of { happy_var_3 -> -	happyIn78-		 (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_180 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_180 = happySpecReduce_1  65# happyReduction_180-happyReduction_180 happy_x_1-	 =  case happyOut80 happy_x_1 of { happy_var_1 -> -	happyIn79-		 (happy_var_1-	)}--happyReduce_181 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_181 = happySpecReduce_1  65# happyReduction_181-happyReduction_181 happy_x_1-	 =  case happyOut81 happy_x_1 of { happy_var_1 -> -	happyIn79-		 (happy_var_1-	)}--happyReduce_182 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_182 = happyMonadReduce 3# 66# happyReduction_182-happyReduction_182 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut178 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> -	case happyOut119 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 (happyIn80 r))--happyReduce_183 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_183 = happyMonadReduce 5# 66# happyReduction_183-happyReduction_183 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut178 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut89 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 DoubleColon) -> -	case happyOut119 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 (happyIn80 r))--happyReduce_184 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_184 = happyReduce 4# 67# happyReduction_184-happyReduction_184 (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 happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut243 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 PragmaEnd) -> -	happyIn81-		 (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_185 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_185 = happyReduce 4# 67# happyReduction_185-happyReduction_185 (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 happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut243 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 PragmaEnd) -> -	happyIn81-		 (InlineConlikeSig (happy_var_1 <^^> happy_var_4 <** [happy_var_1,happy_var_4]) happy_var_2 happy_var_3-	) `HappyStk` happyRest}}}}--happyReduce_186 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_186 = happyReduce 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)-	 = case happyOutTok happy_x_1 of { (Loc happy_var_1 SPECIALISE) -> -	case happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut243 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 DoubleColon) -> -	case happyOut82 happy_x_5 of { happy_var_5 -> -	case happyOutTok happy_x_6 of { (Loc happy_var_6 PragmaEnd) -> -	happyIn81-		 (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_187 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_187 = happyReduce 6# 67# happyReduction_187-happyReduction_187 (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 happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut243 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 DoubleColon) -> -	case happyOut82 happy_x_5 of { happy_var_5 -> -	case happyOutTok happy_x_6 of { (Loc happy_var_6 PragmaEnd) -> -	happyIn81-		 (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_188 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_188 = happyMonadReduce 4# 67# happyReduction_188-happyReduction_188 (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 happyOut120 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 (happyIn81 r))--happyReduce_189 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_189 = happySpecReduce_3  67# happyReduction_189-happyReduction_189 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 MINIMAL) -> -	case happyOut84 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 PragmaEnd) -> -	happyIn81-		 (MinimalPragma (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2-	)}}}--happyReduce_190 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_190 = happySpecReduce_1  68# happyReduction_190-happyReduction_190 happy_x_1-	 =  case happyOut83 happy_x_1 of { happy_var_1 -> -	happyIn82-		 (([happy_var_1],[])-	)}--happyReduce_191 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_191 = happySpecReduce_3  68# happyReduction_191-happyReduction_191 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 Comma) -> -	case happyOut82 happy_x_3 of { happy_var_3 -> -	happyIn82-		 ((happy_var_1 : fst happy_var_3, happy_var_2 : snd happy_var_3)-	)}}}--happyReduce_192 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_192 = happyMonadReduce 1# 69# happyReduction_192-happyReduction_192 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut120 happy_x_1 of { happy_var_1 -> -	( checkType $ mkTyForall (ann happy_var_1) Nothing Nothing happy_var_1)})-	) (\r -> happyReturn (happyIn83 r))--happyReduce_193 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_193 = happySpecReduce_1  70# happyReduction_193-happyReduction_193 happy_x_1-	 =  case happyOut85 happy_x_1 of { happy_var_1 -> -	happyIn84-		 (Just happy_var_1-	)}--happyReduce_194 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_194 = happySpecReduce_0  70# happyReduction_194-happyReduction_194  =  happyIn84-		 (Nothing-	)--happyReduce_195 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_195 = happySpecReduce_1  71# happyReduction_195-happyReduction_195 happy_x_1-	 =  case happyOut86 happy_x_1 of { happy_var_1 -> -	happyIn85-		 (happy_var_1-	)}--happyReduce_196 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_196 = happySpecReduce_3  71# happyReduction_196-happyReduction_196 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 Bar) -> -	case happyOut85 happy_x_3 of { happy_var_3 -> -	happyIn85-		 (OrFormula (ann happy_var_1 <++>  ann happy_var_3 <** [happy_var_2]) [happy_var_1,happy_var_3]-	)}}}--happyReduce_197 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_197 = happySpecReduce_1  72# happyReduction_197-happyReduction_197 happy_x_1-	 =  case happyOut87 happy_x_1 of { happy_var_1 -> -	happyIn86-		 (happy_var_1-	)}--happyReduce_198 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_198 = happySpecReduce_3  72# happyReduction_198-happyReduction_198 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut87 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut86 happy_x_3 of { happy_var_3 -> -	happyIn86-		 (AndFormula (ann happy_var_1 <++> ann happy_var_3 <** [happy_var_2]) [happy_var_1,happy_var_3]-	)}}}--happyReduce_199 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_199 = happySpecReduce_3  73# happyReduction_199-happyReduction_199 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut85 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn87-		 (ParenFormula (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2-	)}}}--happyReduce_200 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_200 = happySpecReduce_1  73# happyReduction_200-happyReduction_200 happy_x_1-	 =  case happyOut241 happy_x_1 of { happy_var_1 -> -	happyIn87-		 (VarFormula (ann happy_var_1) happy_var_1-	)}--happyReduce_201 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_201 = happySpecReduce_1  74# happyReduction_201-happyReduction_201 happy_x_1-	 =  case happyOut78 happy_x_1 of { happy_var_1 -> -	happyIn88-		 (happy_var_1-	)}--happyReduce_202 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_202 = happySpecReduce_3  74# happyReduction_202-happyReduction_202 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> -	case happyOut234 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> -	happyIn88-		 (IPBinds (happy_var_1 <^^> happy_var_3 <** snd happy_var_2) (fst happy_var_2)-	)}}}--happyReduce_203 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_203 = happySpecReduce_3  74# happyReduction_203-happyReduction_203 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut272 happy_x_1 of { happy_var_1 -> -	case happyOut234 happy_x_2 of { happy_var_2 -> -	happyIn88-		 (let l' =  ann . last $ fst happy_var_2-                                         in IPBinds (nIS happy_var_1 <++> l' <** snd happy_var_2) (fst happy_var_2)-	)}}--happyReduce_204 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_204 = happySpecReduce_3  75# happyReduction_204-happyReduction_204 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut89 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut241 happy_x_3 of { happy_var_3 -> -	happyIn89-		 (let (ns,ss,l) = happy_var_1 in (happy_var_3 : ns, happy_var_2 : ss, l <++> ann happy_var_3)-	)}}}--happyReduce_205 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_205 = happyMonadReduce 1# 75# happyReduction_205-happyReduction_205 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut243 happy_x_1 of { happy_var_1 -> -	( do { n <- checkUnQual happy_var_1;-                                              return ([n],[],ann n) })})-	) (\r -> happyReturn (happyIn89 r))--happyReduce_206 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_206 = happySpecReduce_1  76# happyReduction_206-happyReduction_206 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_StdCall) -> -	happyIn90-		 (StdCall    (nIS happy_var_1)-	)}--happyReduce_207 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_207 = happySpecReduce_1  76# happyReduction_207-happyReduction_207 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CCall) -> -	happyIn90-		 (CCall      (nIS happy_var_1)-	)}--happyReduce_208 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_208 = happySpecReduce_1  76# happyReduction_208-happyReduction_208 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CPlusPlus) -> -	happyIn90-		 (CPlusPlus  (nIS happy_var_1)-	)}--happyReduce_209 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_209 = happySpecReduce_1  76# happyReduction_209-happyReduction_209 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_DotNet) -> -	happyIn90-		 (DotNet     (nIS happy_var_1)-	)}--happyReduce_210 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_210 = happySpecReduce_1  76# happyReduction_210-happyReduction_210 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Jvm) -> -	happyIn90-		 (Jvm        (nIS happy_var_1)-	)}--happyReduce_211 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_211 = happySpecReduce_1  76# happyReduction_211-happyReduction_211 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Js) -> -	happyIn90-		 (Js         (nIS happy_var_1)-	)}--happyReduce_212 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_212 = happySpecReduce_1  76# happyReduction_212-happyReduction_212 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_JavaScript) -> -	happyIn90-		 (JavaScript (nIS happy_var_1)-	)}--happyReduce_213 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_213 = happySpecReduce_1  76# happyReduction_213-happyReduction_213 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CApi) -> -	happyIn90-		 (CApi       (nIS happy_var_1)-	)}--happyReduce_214 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_214 = happySpecReduce_1  77# happyReduction_214-happyReduction_214 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Safe) -> -	happyIn91-		 (Just $ PlaySafe  (nIS happy_var_1) False-	)}--happyReduce_215 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_215 = happySpecReduce_1  77# happyReduction_215-happyReduction_215 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Unsafe) -> -	happyIn91-		 (Just $ PlayRisky (nIS happy_var_1)-	)}--happyReduce_216 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_216 = happySpecReduce_1  77# happyReduction_216-happyReduction_216 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Threadsafe) -> -	happyIn91-		 (Just $ PlaySafe  (nIS happy_var_1) True-	)}--happyReduce_217 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_217 = happySpecReduce_1  77# happyReduction_217-happyReduction_217 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Interruptible) -> -	happyIn91-		 (Just $ PlayInterruptible (nIS happy_var_1)-	)}--happyReduce_218 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_218 = happySpecReduce_0  77# happyReduction_218-happyReduction_218  =  happyIn91-		 (Nothing-	)--happyReduce_219 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_219 = happyReduce 4# 78# happyReduction_219-happyReduction_219 (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 happyOut242 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleColon) -> -	case happyOut104 happy_x_4 of { happy_var_4 -> -	happyIn92-		 (let Loc l (StringTok (s,_)) = happy_var_1 in (Just s, happy_var_2, happy_var_4, [l,happy_var_3])-	) `HappyStk` happyRest}}}}--happyReduce_220 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_220 = happySpecReduce_3  78# happyReduction_220-happyReduction_220 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut242 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> -	case happyOut104 happy_x_3 of { happy_var_3 -> -	happyIn92-		 ((Nothing, happy_var_1, happy_var_3, [happy_var_2])-	)}}}--happyReduce_221 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_221 = happySpecReduce_3  79# happyReduction_221-happyReduction_221 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut93 happy_x_1 of { happy_var_1 -> -	case happyOut94 happy_x_3 of { happy_var_3 -> -	happyIn93-		 (happy_var_3 : happy_var_1-	)}}--happyReduce_222 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_222 = happySpecReduce_2  79# happyReduction_222-happyReduction_222 happy_x_2-	happy_x_1-	 =  case happyOut93 happy_x_1 of { happy_var_1 -> -	happyIn93-		 (happy_var_1-	)}--happyReduce_223 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_223 = happySpecReduce_1  79# happyReduction_223-happyReduction_223 happy_x_1-	 =  case happyOut94 happy_x_1 of { happy_var_1 -> -	happyIn93-		 ([happy_var_1]-	)}--happyReduce_224 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_224 = happySpecReduce_0  79# happyReduction_224-happyReduction_224  =  happyIn93-		 ([]-	)--happyReduce_225 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_225 = happyMonadReduce 6# 80# happyReduction_225-happyReduction_225 (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 happyOut95 happy_x_2 of { happy_var_2 -> -	case happyOut96 happy_x_3 of { happy_var_3 -> -	case happyOut176 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 Equals) -> -	case happyOut174 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 (happyIn94 r))--happyReduce_226 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_226 = happySpecReduce_0  81# happyReduction_226-happyReduction_226  =  happyIn95-		 (Nothing-	)--happyReduce_227 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_227 = happySpecReduce_3  81# happyReduction_227-happyReduction_227 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) -> -	happyIn95-		 (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_228 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_228 = happyReduce 4# 81# happyReduction_228-happyReduction_228 (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) -> -	happyIn95-		 (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_229 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_229 = happySpecReduce_0  82# happyReduction_229-happyReduction_229  =  happyIn96-		 ((Nothing,[])-	)--happyReduce_230 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_230 = happySpecReduce_3  82# happyReduction_230-happyReduction_230 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Forall) -> -	case happyOut97 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 Dot) -> -	happyIn96-		 ((Just happy_var_2,[happy_var_1,happy_var_3])-	)}}}--happyReduce_231 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_231 = happySpecReduce_1  83# happyReduction_231-happyReduction_231 happy_x_1-	 =  case happyOut98 happy_x_1 of { happy_var_1 -> -	happyIn97-		 ([happy_var_1]-	)}--happyReduce_232 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_232 = happySpecReduce_2  83# happyReduction_232-happyReduction_232 happy_x_2-	happy_x_1-	 =  case happyOut98 happy_x_1 of { happy_var_1 -> -	case happyOut97 happy_x_2 of { happy_var_2 -> -	happyIn97-		 (happy_var_1 : happy_var_2-	)}}--happyReduce_233 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_233 = happySpecReduce_1  84# happyReduction_233-happyReduction_233 happy_x_1-	 =  case happyOut260 happy_x_1 of { happy_var_1 -> -	happyIn98-		 (RuleVar (ann happy_var_1) happy_var_1-	)}--happyReduce_234 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_234 = happyReduce 5# 84# happyReduction_234-happyReduction_234 (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 happyOut260 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleColon) -> -	case happyOut119 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> -	happyIn98-		 (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_235 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_235 = happySpecReduce_3  85# happyReduction_235-happyReduction_235 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 SemiColon) -> -	case happyOut100 happy_x_3 of { happy_var_3 -> -	happyIn99-		 ((fst happy_var_3 : fst happy_var_1, snd happy_var_1 ++ (happy_var_2:snd happy_var_3))-	)}}}--happyReduce_236 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_236 = happySpecReduce_2  85# happyReduction_236-happyReduction_236 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 SemiColon) -> -	happyIn99-		 ((fst happy_var_1, snd happy_var_1 ++ [happy_var_2])-	)}}--happyReduce_237 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_237 = happySpecReduce_1  85# happyReduction_237-happyReduction_237 happy_x_1-	 =  case happyOut100 happy_x_1 of { happy_var_1 -> -	happyIn99-		 (([fst happy_var_1],snd happy_var_1)-	)}--happyReduce_238 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_238 = happySpecReduce_0  85# happyReduction_238-happyReduction_238  =  happyIn99-		 (([],[])-	)--happyReduce_239 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_239 = happySpecReduce_2  86# happyReduction_239-happyReduction_239 happy_x_2-	happy_x_1-	 =  case happyOut101 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { happy_var_2 -> -	happyIn100-		 (let Loc l (StringTok (s,_)) = happy_var_2 in ((fst happy_var_1,s),snd happy_var_1 ++ [l])-	)}}--happyReduce_240 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_240 = happySpecReduce_1  87# happyReduction_240-happyReduction_240 happy_x_1-	 =  case happyOut102 happy_x_1 of { happy_var_1 -> -	happyIn101-		 (([happy_var_1],[])-	)}--happyReduce_241 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_241 = happySpecReduce_3  87# happyReduction_241-happyReduction_241 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut102 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut101 happy_x_3 of { happy_var_3 -> -	happyIn101-		 ((happy_var_1 : fst happy_var_3, happy_var_2 : snd happy_var_3)-	)}}}--happyReduce_242 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_242 = happySpecReduce_1  88# happyReduction_242-happyReduction_242 happy_x_1-	 =  case happyOut245 happy_x_1 of { happy_var_1 -> -	happyIn102-		 (happy_var_1-	)}--happyReduce_243 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_243 = happySpecReduce_1  88# happyReduction_243-happyReduction_243 happy_x_1-	 =  case happyOut241 happy_x_1 of { happy_var_1 -> -	happyIn102-		 (happy_var_1-	)}--happyReduce_244 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_244 = happyMonadReduce 3# 89# happyReduction_244-happyReduction_244 (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 happyOut263 happy_x_2 of { happy_var_2 -> -	case happyOut187 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 (happyIn103 r))--happyReduce_245 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_245 = happyMonadReduce 2# 89# happyReduction_245-happyReduction_245 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Module) -> -	case happyOut187 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 (happyIn103 r))--happyReduce_246 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_246 = happyMonadReduce 2# 89# happyReduction_246-happyReduction_246 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut102 happy_x_1 of { happy_var_1 -> -	case happyOut187 happy_x_2 of { happy_var_2 -> -	( checkExpr happy_var_2 >>= \e -> return (Ann (happy_var_1 <> e) happy_var_1 e))}})-	) (\r -> happyReturn (happyIn103 r))--happyReduce_247 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_247 = happyMonadReduce 1# 90# happyReduction_247-happyReduction_247 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut105 happy_x_1 of { happy_var_1 -> -	( checkType happy_var_1)})-	) (\r -> happyReturn (happyIn104 r))--happyReduce_248 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_248 = happySpecReduce_1  91# happyReduction_248-happyReduction_248 happy_x_1-	 =  case happyOut110 happy_x_1 of { happy_var_1 -> -	happyIn105-		 (splitTilde happy_var_1-	)}--happyReduce_249 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_249 = happySpecReduce_3  91# happyReduction_249-happyReduction_249 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut110 happy_x_1 of { happy_var_1 -> -	case happyOut118 happy_x_2 of { happy_var_2 -> -	case happyOut105 happy_x_3 of { happy_var_3 -> -	happyIn105-		 (TyInfix (happy_var_1 <> happy_var_3) happy_var_1 happy_var_2 happy_var_3-	)}}}--happyReduce_250 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_250 = happySpecReduce_3  91# happyReduction_250-happyReduction_250 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut110 happy_x_1 of { happy_var_1 -> -	case happyOut288 happy_x_2 of { happy_var_2 -> -	case happyOut105 happy_x_3 of { happy_var_3 -> -	happyIn105-		 (TyInfix (happy_var_1 <> happy_var_3) happy_var_1 (UnpromotedName (ann happy_var_2) happy_var_2) happy_var_3-	)}}}--happyReduce_251 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_251 = happySpecReduce_3  91# happyReduction_251-happyReduction_251 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 happyOut120 happy_x_3 of { happy_var_3 -> -	happyIn105-		 (TyFun (happy_var_1 <> happy_var_3 <** [happy_var_2]) (splitTilde happy_var_1) happy_var_3-	)}}}--happyReduce_252 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_252 = happyMonadReduce 1# 92# happyReduction_252-happyReduction_252 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut107 happy_x_1 of { happy_var_1 -> -	( checkType happy_var_1)})-	) (\r -> happyReturn (happyIn106 r))--happyReduce_253 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_253 = happySpecReduce_3  93# happyReduction_253-happyReduction_253 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut244 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> -	case happyOut105 happy_x_3 of { happy_var_3 -> -	happyIn107-		 (let l = (happy_var_1 <> happy_var_3 <** [happy_var_2]) in TyPred l $ IParam l happy_var_1 happy_var_3-	)}}}--happyReduce_254 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_254 = happySpecReduce_1  93# happyReduction_254-happyReduction_254 happy_x_1-	 =  case happyOut105 happy_x_1 of { happy_var_1 -> -	happyIn107-		 (happy_var_1-	)}--happyReduce_255 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_255 = happyMonadReduce 1# 94# happyReduction_255-happyReduction_255 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut110 happy_x_1 of { happy_var_1 -> -	( checkType (splitTilde happy_var_1))})-	) (\r -> happyReturn (happyIn108 r))--happyReduce_256 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_256 = happyMonadReduce 1# 95# happyReduction_256-happyReduction_256 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut111 happy_x_1 of { happy_var_1 -> -	( checkType happy_var_1)})-	) (\r -> happyReturn (happyIn109 r))--happyReduce_257 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_257 = happySpecReduce_2  96# happyReduction_257-happyReduction_257 happy_x_2-	happy_x_1-	 =  case happyOut110 happy_x_1 of { happy_var_1 -> -	case happyOut111 happy_x_2 of { happy_var_2 -> -	happyIn110-		 (TyApp (happy_var_1 <> happy_var_2) happy_var_1 happy_var_2-	)}}--happyReduce_258 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_258 = happySpecReduce_1  96# happyReduction_258-happyReduction_258 happy_x_1-	 =  case happyOut111 happy_x_1 of { happy_var_1 -> -	happyIn110-		 (happy_var_1-	)}--happyReduce_259 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_259 = happySpecReduce_1  97# happyReduction_259-happyReduction_259 happy_x_1-	 =  case happyOut116 happy_x_1 of { happy_var_1 -> -	happyIn111-		 (TyCon   (ann happy_var_1) happy_var_1-	)}--happyReduce_260 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_260 = happyMonadReduce 1# 97# happyReduction_260-happyReduction_260 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut286 happy_x_1 of { happy_var_1 -> -	( checkTyVar happy_var_1)})-	) (\r -> happyReturn (happyIn111 r))--happyReduce_261 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_261 = happySpecReduce_2  97# happyReduction_261-happyReduction_261 happy_x_2-	happy_x_1-	 =  case happyOut113 happy_x_1 of { happy_var_1 -> -	case happyOut111 happy_x_2 of { happy_var_2 -> -	happyIn111-		 (let (mstrict, mupack) = happy_var_1-                                        in bangType mstrict mupack happy_var_2-	)}}--happyReduce_262 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_262 = happySpecReduce_3  97# happyReduction_262-happyReduction_262 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut122 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn111-		 (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_263 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_263 = happySpecReduce_3  97# happyReduction_263-happyReduction_263 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> -	case happyOut124 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> -	happyIn111-		 (TyUnboxedSum (happy_var_1 <^^> happy_var_3 <** (happy_var_1: reverse (happy_var_3: snd happy_var_2))) (reverse (fst happy_var_2))-	)}}}--happyReduce_264 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_264 = happySpecReduce_3  97# happyReduction_264-happyReduction_264 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> -	case happyOut123 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> -	happyIn111-		 (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_265 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_265 = happySpecReduce_3  97# happyReduction_265-happyReduction_265 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> -	case happyOut107 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> -	happyIn111-		 (TyList  (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2-	)}}}--happyReduce_266 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_266 = happySpecReduce_3  97# happyReduction_266-happyReduction_266 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 ParArrayLeftSquare) -> -	case happyOut107 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 ParArrayRightSquare) -> -	happyIn111-		 (TyParArray  (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2-	)}}}--happyReduce_267 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_267 = happySpecReduce_3  97# happyReduction_267-happyReduction_267 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut120 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn111-		 (TyParen (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2-	)}}}--happyReduce_268 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_268 = happyReduce 5# 97# happyReduction_268-happyReduction_268 (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 happyOut120 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleColon) -> -	case happyOut149 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> -	happyIn111-		 (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_269 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_269 = happySpecReduce_3  97# happyReduction_269-happyReduction_269 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THParenEscape) -> -	case happyOut174 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn111-		 (let l = (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) in TySplice l $ ParenSplice l happy_var_2-	)}}}--happyReduce_270 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_270 = happySpecReduce_1  97# happyReduction_270-happyReduction_270 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn111-		 (let Loc l (THIdEscape s) = happy_var_1 in TySplice (nIS l) $ IdSplice (nIS l) s-	)}--happyReduce_271 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_271 = happySpecReduce_1  97# happyReduction_271-happyReduction_271 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Underscore) -> -	happyIn111-		 (TyWildCard (nIS happy_var_1) Nothing-	)}--happyReduce_272 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_272 = happySpecReduce_1  97# happyReduction_272-happyReduction_272 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn111-		 (let Loc l (THQuasiQuote (n,q)) = happy_var_1 in TyQuasiQuote (nIS l) n q-	)}--happyReduce_273 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_273 = happyMonadReduce 1# 97# happyReduction_273-happyReduction_273 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut112 happy_x_1 of { happy_var_1 -> -	( checkEnabled DataKinds >> return (TyPromoted (ann happy_var_1) happy_var_1))})-	) (\r -> happyReturn (happyIn111 r))--happyReduce_274 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_274 = happyMonadReduce 2# 98# happyReduction_274-happyReduction_274 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> -	case happyOut238 happy_x_2 of { happy_var_2 -> -	( fmap (PromotedCon (nIS happy_var_1 <++> ann happy_var_2  <** [happy_var_1]) True) (pexprToQName happy_var_2))}})-	) (\r -> happyReturn (happyIn112 r))--happyReduce_275 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_275 = happyMonadReduce 4# 98# happyReduction_275-happyReduction_275 (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 THVarQuote) -> -	case happyOut123 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightSquare) -> -	( PromotedList  (happy_var_1 <^^> happy_var_4 <** (happy_var_1:reverse(happy_var_4:snd happy_var_3))) True . reverse <$> mapM checkType (fst happy_var_3))}}})-	) (\r -> happyReturn (happyIn112 r))--happyReduce_276 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_276 = happyMonadReduce 3# 98# happyReduction_276-happyReduction_276 (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 LeftSquare) -> -	case happyOut122 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> -	( PromotedList  (happy_var_1 <^^> happy_var_3 <** (happy_var_1:reverse(happy_var_3:snd happy_var_2))) False . reverse <$> mapM checkType (fst happy_var_2))}}})-	) (\r -> happyReturn (happyIn112 r))--happyReduce_277 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_277 = happySpecReduce_3  98# happyReduction_277-happyReduction_277 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) -> -	happyIn112-		 (PromotedList  (happy_var_1 <^^> happy_var_3 <** [happy_var_1, happy_var_3]) True []-	)}}--happyReduce_278 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_278 = happyMonadReduce 4# 98# happyReduction_278-happyReduction_278 (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 THVarQuote) -> -	case happyOut123 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> -	( PromotedTuple (happy_var_1 <^^> happy_var_4 <** (happy_var_1:reverse(happy_var_4:snd happy_var_3))) . reverse <$> mapM checkType (fst happy_var_3))}}})-	) (\r -> happyReturn (happyIn112 r))--happyReduce_279 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_279 = happySpecReduce_1  98# happyReduction_279-happyReduction_279 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn112-		 (let Loc l (IntTok  (i,raw)) = happy_var_1 in PromotedInteger (nIS l) i raw-	)}--happyReduce_280 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_280 = happySpecReduce_1  98# happyReduction_280-happyReduction_280 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn112-		 (let Loc l (StringTok (s,raw)) = happy_var_1 in PromotedString (nIS l) s raw-	)}--happyReduce_281 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_281 = happySpecReduce_1  99# happyReduction_281-happyReduction_281 happy_x_1-	 =  case happyOut114 happy_x_1 of { happy_var_1 -> -	happyIn113-		 ((Just happy_var_1, Nothing)-	)}--happyReduce_282 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_282 = happySpecReduce_1  99# happyReduction_282-happyReduction_282 happy_x_1-	 =  case happyOut115 happy_x_1 of { happy_var_1 -> -	happyIn113-		 ((Nothing, Just happy_var_1)-	)}--happyReduce_283 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_283 = happySpecReduce_2  99# happyReduction_283-happyReduction_283 happy_x_2-	happy_x_1-	 =  case happyOut115 happy_x_1 of { happy_var_1 -> -	case happyOut114 happy_x_2 of { happy_var_2 -> -	happyIn113-		 ((Just happy_var_2, Just happy_var_1)-	)}}--happyReduce_284 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_284 = happySpecReduce_1  100# happyReduction_284-happyReduction_284 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> -	happyIn114-		 ((BangedTy, happy_var_1)-	)}--happyReduce_285 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_285 = happySpecReduce_1  100# happyReduction_285-happyReduction_285 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Tilde) -> -	happyIn114-		 ((LazyTy, happy_var_1)-	)}--happyReduce_286 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_286 = happySpecReduce_2  101# happyReduction_286-happyReduction_286 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) -> -	happyIn115-		 ((Unpack ((nIS happy_var_1 <++> nIS happy_var_2) <** [happy_var_1,happy_var_2]))-	)}}--happyReduce_287 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_287 = happySpecReduce_2  101# happyReduction_287-happyReduction_287 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 NOUNPACK) -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 PragmaEnd) -> -	happyIn115-		 ((NoUnpack ((nIS happy_var_1 <++> nIS happy_var_2) <** [happy_var_1,happy_var_2]))-	)}}--happyReduce_288 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_288 = happySpecReduce_1  102# happyReduction_288-happyReduction_288 happy_x_1-	 =  case happyOut117 happy_x_1 of { happy_var_1 -> -	happyIn116-		 (happy_var_1-	)}--happyReduce_289 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_289 = happySpecReduce_2  102# happyReduction_289-happyReduction_289 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) -> -	happyIn116-		 (unit_tycon_name              (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2])-	)}}--happyReduce_290 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_290 = happySpecReduce_3  102# happyReduction_290-happyReduction_290 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) -> -	happyIn116-		 (fun_tycon_name               (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_2,happy_var_3])-	)}}}--happyReduce_291 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_291 = happySpecReduce_2  102# happyReduction_291-happyReduction_291 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) -> -	happyIn116-		 (list_tycon_name              (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2])-	)}}--happyReduce_292 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_292 = happySpecReduce_3  102# happyReduction_292-happyReduction_292 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut193 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn116-		 (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_293 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_293 = happySpecReduce_2  102# happyReduction_293-happyReduction_293 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) -> -	happyIn116-		 (unboxed_singleton_tycon_name (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2])-	)}}--happyReduce_294 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_294 = happySpecReduce_3  102# happyReduction_294-happyReduction_294 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> -	case happyOut193 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> -	happyIn116-		 (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_295 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_295 = happySpecReduce_1  103# happyReduction_295-happyReduction_295 happy_x_1-	 =  case happyOut262 happy_x_1 of { happy_var_1 -> -	happyIn117-		 (happy_var_1-	)}--happyReduce_296 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_296 = happySpecReduce_3  103# happyReduction_296-happyReduction_296 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut256 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn117-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2-	)}}}--happyReduce_297 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_297 = happySpecReduce_3  103# happyReduction_297-happyReduction_297 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut266 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn117-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2-	)}}}--happyReduce_298 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_298 = happySpecReduce_1  104# happyReduction_298-happyReduction_298 happy_x_1-	 =  case happyOut252 happy_x_1 of { happy_var_1 -> -	happyIn118-		 (UnpromotedName (ann happy_var_1) happy_var_1-	)}--happyReduce_299 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_299 = happySpecReduce_2  104# happyReduction_299-happyReduction_299 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> -	case happyOut256 happy_x_2 of { happy_var_2 -> -	happyIn118-		 (PromotedName (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_300 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_300 = happyMonadReduce 1# 105# happyReduction_300-happyReduction_300 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut120 happy_x_1 of { happy_var_1 -> -	( checkType happy_var_1)})-	) (\r -> happyReturn (happyIn119 r))--happyReduce_301 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_301 = happyReduce 4# 106# happyReduction_301-happyReduction_301 (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 happyOut125 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 Dot) -> -	case happyOut120 happy_x_4 of { happy_var_4 -> -	happyIn120-		 (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_302 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_302 = happySpecReduce_2  106# happyReduction_302-happyReduction_302 happy_x_2-	happy_x_1-	 =  case happyOut121 happy_x_1 of { happy_var_1 -> -	case happyOut120 happy_x_2 of { happy_var_2 -> -	happyIn120-		 (mkTyForall (happy_var_1 <> happy_var_2) Nothing (Just happy_var_1) happy_var_2-	)}}--happyReduce_303 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_303 = happySpecReduce_1  106# happyReduction_303-happyReduction_303 happy_x_1-	 =  case happyOut107 happy_x_1 of { happy_var_1 -> -	happyIn120-		 (happy_var_1-	)}--happyReduce_304 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_304 = happyMonadReduce 2# 107# happyReduction_304-happyReduction_304 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut110 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]))) (splitTilde happy_var_1))}})-	) (\r -> happyReturn (happyIn121 r))--happyReduce_305 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_305 = happySpecReduce_3  108# happyReduction_305-happyReduction_305 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut123 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut120 happy_x_3 of { happy_var_3 -> -	happyIn122-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)-	)}}}--happyReduce_306 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_306 = happySpecReduce_1  109# happyReduction_306-happyReduction_306 happy_x_1-	 =  case happyOut120 happy_x_1 of { happy_var_1 -> -	happyIn123-		 (([happy_var_1],[])-	)}--happyReduce_307 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_307 = happySpecReduce_3  109# happyReduction_307-happyReduction_307 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut123 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut120 happy_x_3 of { happy_var_3 -> -	happyIn123-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)-	)}}}--happyReduce_308 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_308 = happySpecReduce_3  110# happyReduction_308-happyReduction_308 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 happyOut120 happy_x_3 of { happy_var_3 -> -	happyIn124-		 (([happy_var_3, happy_var_1], [happy_var_2])-	)}}}--happyReduce_309 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_309 = happySpecReduce_3  110# happyReduction_309-happyReduction_309 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut124 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> -	case happyOut120 happy_x_3 of { happy_var_3 -> -	happyIn124-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)-	)}}}--happyReduce_310 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_310 = happySpecReduce_2  111# happyReduction_310-happyReduction_310 happy_x_2-	happy_x_1-	 =  case happyOut125 happy_x_1 of { happy_var_1 -> -	case happyOut126 happy_x_2 of { happy_var_2 -> -	happyIn125-		 ((happy_var_2 : fst happy_var_1, Just (snd happy_var_1 <?+> ann happy_var_2))-	)}}--happyReduce_311 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_311 = happySpecReduce_0  111# happyReduction_311-happyReduction_311  =  happyIn125-		 (([],Nothing)-	)--happyReduce_312 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_312 = happySpecReduce_1  112# happyReduction_312-happyReduction_312 happy_x_1-	 =  case happyOut286 happy_x_1 of { happy_var_1 -> -	happyIn126-		 (UnkindedVar (ann happy_var_1) happy_var_1-	)}--happyReduce_313 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_313 = happyReduce 5# 112# happyReduction_313-happyReduction_313 (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 happyOut286 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleColon) -> -	case happyOut149 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> -	happyIn126-		 (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_314 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_314 = happySpecReduce_2  113# happyReduction_314-happyReduction_314 happy_x_2-	happy_x_1-	 =  case happyOut127 happy_x_1 of { happy_var_1 -> -	case happyOut286 happy_x_2 of { happy_var_2 -> -	happyIn127-		 ((happy_var_2 : fst happy_var_1, Just (snd happy_var_1 <?+> ann happy_var_2))-	)}}--happyReduce_315 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_315 = happySpecReduce_0  113# happyReduction_315-happyReduction_315  =  happyIn127-		 (([], Nothing)-	)--happyReduce_316 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_316 = happySpecReduce_2  114# happyReduction_316-happyReduction_316 happy_x_2-	happy_x_1-	 =  case happyOut127 happy_x_1 of { happy_var_1 -> -	case happyOut286 happy_x_2 of { happy_var_2 -> -	happyIn128-		 ((happy_var_2 : fst happy_var_1, snd happy_var_1 <?+> ann happy_var_2)-	)}}--happyReduce_317 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_317 = happySpecReduce_0  115# happyReduction_317-happyReduction_317  =  happyIn129-		 (([],[], Nothing)-	)--happyReduce_318 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_318 = happyMonadReduce 2# 115# happyReduction_318-happyReduction_318 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 Bar) -> -	case happyOut130 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 (happyIn129 r))--happyReduce_319 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_319 = happySpecReduce_3  116# happyReduction_319-happyReduction_319 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut130 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut131 happy_x_3 of { happy_var_3 -> -	happyIn130-		 (let (fds,ss,l) = happy_var_1 in (happy_var_3 : fds, happy_var_2 : ss, l <++> ann happy_var_3)-	)}}}--happyReduce_320 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_320 = happySpecReduce_1  116# happyReduction_320-happyReduction_320 happy_x_1-	 =  case happyOut131 happy_x_1 of { happy_var_1 -> -	happyIn130-		 (([happy_var_1],[],ann happy_var_1)-	)}--happyReduce_321 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_321 = happySpecReduce_3  117# happyReduction_321-happyReduction_321 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut127 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightArrow) -> -	case happyOut128 happy_x_3 of { happy_var_3 -> -	happyIn131-		 (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_322 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_322 = happyMonadReduce 4# 118# happyReduction_322-happyReduction_322 (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 happyOut133 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 (happyIn132 r))--happyReduce_323 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_323 = happyMonadReduce 4# 118# happyReduction_323-happyReduction_323 (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 happyOut272 happy_x_2 of { happy_var_2 -> -	case happyOut133 happy_x_3 of { happy_var_3 -> -	case happyOut273 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 (happyIn132 r))--happyReduce_324 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_324 = happyMonadReduce 0# 118# happyReduction_324-happyReduction_324 (happyRest) tk-	 = happyThen ((( checkEnabled EmptyDataDecls >> return ([],[],Nothing)))-	) (\r -> happyReturn (happyIn132 r))--happyReduce_325 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_325 = happySpecReduce_3  119# happyReduction_325-happyReduction_325 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut134 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn133-		 ((fst happy_var_2, reverse happy_var_1 ++ snd happy_var_2 ++ reverse happy_var_3)-	)}}}--happyReduce_326 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_326 = happySpecReduce_3  120# happyReduction_326-happyReduction_326 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut134 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_2 of { happy_var_2 -> -	case happyOut135 happy_x_3 of { happy_var_3 -> -	happyIn134-		 ((happy_var_3 ++ fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)-	)}}}--happyReduce_327 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_327 = happySpecReduce_1  120# happyReduction_327-happyReduction_327 happy_x_1-	 =  case happyOut135 happy_x_1 of { happy_var_1 -> -	happyIn134-		 ((happy_var_1,[])-	)}--happyReduce_328 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_328 = happyMonadReduce 3# 121# happyReduction_328-happyReduction_328 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut247 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> -	case happyOut119 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 (happyIn135 r))--happyReduce_329 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_329 = happyMonadReduce 7# 121# happyReduction_329-happyReduction_329 (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 happyOut247 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 happyOut142 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 happyOut119 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 (happyIn135 r))--happyReduce_330 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_330 = happySpecReduce_2  122# happyReduction_330-happyReduction_330 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Equals) -> -	case happyOut137 happy_x_2 of { happy_var_2 -> -	happyIn136-		 (let (ds,ss,l) = happy_var_2 in (ds, happy_var_1 : reverse ss, Just $ nIS happy_var_1 <++> l)-	)}}--happyReduce_331 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_331 = happySpecReduce_3  123# happyReduction_331-happyReduction_331 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut137 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> -	case happyOut138 happy_x_3 of { happy_var_3 -> -	happyIn137-		 (let (ds,ss,l) = happy_var_1 in (happy_var_3 : ds, happy_var_2 : ss, l <++> ann happy_var_3)-	)}}}--happyReduce_332 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_332 = happySpecReduce_1  123# happyReduction_332-happyReduction_332 happy_x_1-	 =  case happyOut138 happy_x_1 of { happy_var_1 -> -	happyIn137-		 (([happy_var_1],[],ann happy_var_1)-	)}--happyReduce_333 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_333 = happyMonadReduce 3# 124# happyReduction_333-happyReduction_333 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut139 happy_x_1 of { happy_var_1 -> -	case happyOut121 happy_x_2 of { happy_var_2 -> -	case happyOut140 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 (happyIn138 r))--happyReduce_334 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_334 = happySpecReduce_2  124# happyReduction_334-happyReduction_334 happy_x_2-	happy_x_1-	 =  case happyOut139 happy_x_1 of { happy_var_1 -> -	case happyOut140 happy_x_2 of { happy_var_2 -> -	happyIn138-		 (let (mtvs, ss, ml) = happy_var_1 in QualConDecl (ml <?+> ann happy_var_2 <** ss) mtvs Nothing happy_var_2-	)}}--happyReduce_335 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_335 = happyMonadReduce 3# 125# happyReduction_335-happyReduction_335 (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 happyOut125 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 (happyIn139 r))--happyReduce_336 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_336 = happySpecReduce_0  125# happyReduction_336-happyReduction_336  =  happyIn139-		 ((Nothing, [], Nothing)-	)--happyReduce_337 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_337 = happySpecReduce_1  126# happyReduction_337-happyReduction_337 happy_x_1-	 =  case happyOut141 happy_x_1 of { happy_var_1 -> -	happyIn140-		 (let (n,ts,l) = happy_var_1 in ConDecl l n ts-	)}--happyReduce_338 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_338 = happySpecReduce_3  126# happyReduction_338-happyReduction_338 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut108 happy_x_1 of { happy_var_1 -> -	case happyOut251 happy_x_2 of { happy_var_2 -> -	case happyOut108 happy_x_3 of { happy_var_3 -> -	happyIn140-		 (InfixConDecl (happy_var_1 <> happy_var_3) happy_var_1 happy_var_2 happy_var_3-	)}}}--happyReduce_339 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_339 = happyMonadReduce 3# 126# happyReduction_339-happyReduction_339 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut247 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 (happyIn140 r))--happyReduce_340 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_340 = happyMonadReduce 4# 126# happyReduction_340-happyReduction_340 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut247 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> -	case happyOut142 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 (happyIn140 r))--happyReduce_341 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_341 = happyMonadReduce 1# 127# happyReduction_341-happyReduction_341 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut110 happy_x_1 of { happy_var_1 -> -	( do { (c,ts) <- splitTyConApp happy_var_1;-                                              return (c, ts, ann happy_var_1) })})-	) (\r -> happyReturn (happyIn141 r))--happyReduce_342 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_342 = happySpecReduce_3  128# happyReduction_342-happyReduction_342 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut142 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut143 happy_x_3 of { happy_var_3 -> -	happyIn142-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)-	)}}}--happyReduce_343 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_343 = happySpecReduce_1  128# happyReduction_343-happyReduction_343 happy_x_1-	 =  case happyOut143 happy_x_1 of { happy_var_1 -> -	happyIn142-		 (([happy_var_1],[])-	)}--happyReduce_344 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_344 = happySpecReduce_3  129# happyReduction_344-happyReduction_344 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut89 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 DoubleColon) -> -	case happyOut119 happy_x_3 of { happy_var_3 -> -	happyIn143-		 (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_345 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_345 = happySpecReduce_0  130# happyReduction_345-happyReduction_345  =  happyIn144-		 ([]-	)--happyReduce_346 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_346 = happySpecReduce_1  130# happyReduction_346-happyReduction_346 happy_x_1-	 =  case happyOut145 happy_x_1 of { happy_var_1 -> -	happyIn144-		 (happy_var_1-	)}--happyReduce_347 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_347 = happySpecReduce_2  131# happyReduction_347-happyReduction_347 happy_x_2-	happy_x_1-	 =  case happyOut145 happy_x_1 of { happy_var_1 -> -	case happyOut146 happy_x_2 of { happy_var_2 -> -	happyIn145-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_348 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_348 = happySpecReduce_1  131# happyReduction_348-happyReduction_348 happy_x_1-	 =  case happyOut146 happy_x_1 of { happy_var_1 -> -	happyIn145-		 ([happy_var_1]-	)}--happyReduce_349 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_349 = happySpecReduce_3  132# happyReduction_349-happyReduction_349 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Deriving) -> -	case happyOut282 happy_x_2 of { happy_var_2 -> -	case happyOut148 happy_x_3 of { happy_var_3 -> -	happyIn146-		 (let l = nIS happy_var_1 <++> ann happy_var_3 <** [happy_var_1] in Deriving l happy_var_2 [IRule (ann happy_var_3) Nothing Nothing happy_var_3]-	)}}}--happyReduce_350 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_350 = happyReduce 4# 132# happyReduction_350-happyReduction_350 (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 happyOut282 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 LeftParen) -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightParen) -> -	happyIn146-		 (Deriving (happy_var_1 <^^> happy_var_4 <** [happy_var_1,happy_var_3,happy_var_4]) happy_var_2 []-	) `HappyStk` happyRest}}}}--happyReduce_351 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_351 = happyReduce 5# 132# happyReduction_351-happyReduction_351 (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_Deriving) -> -	case happyOut282 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 LeftParen) -> -	case happyOut147 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> -	happyIn146-		 (-- Distinguish deriving (Show) from deriving Show (#189)-                                        case fst happy_var_4 of-                                          [ts] -> Deriving (happy_var_1 <^^> happy_var_5 <** [happy_var_1]) happy_var_2 [IParen (happy_var_3 <^^> happy_var_5 <** [happy_var_3,happy_var_5]) ts]-                                          tss  -> Deriving (happy_var_1 <^^> happy_var_5 <** happy_var_1:happy_var_3: reverse (snd happy_var_4) ++ [happy_var_5]) happy_var_2 (reverse tss)-	) `HappyStk` happyRest}}}}}--happyReduce_352 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_352 = happyMonadReduce 1# 133# happyReduction_352-happyReduction_352 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut123 happy_x_1 of { happy_var_1 -> -	( checkDeriving (fst happy_var_1) >>= \ds -> return (ds, snd happy_var_1))})-	) (\r -> happyReturn (happyIn147 r))--happyReduce_353 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_353 = happySpecReduce_1  134# happyReduction_353-happyReduction_353 happy_x_1-	 =  case happyOut262 happy_x_1 of { happy_var_1 -> -	happyIn148-		 (IHCon (ann happy_var_1) happy_var_1-	)}--happyReduce_354 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_354 = happyMonadReduce 1# 135# happyReduction_354-happyReduction_354 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut150 happy_x_1 of { happy_var_1 -> -	( checkEnabled KindSignatures >> return happy_var_1)})-	) (\r -> happyReturn (happyIn149 r))--happyReduce_355 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_355 = happySpecReduce_1  136# happyReduction_355-happyReduction_355 happy_x_1-	 =  case happyOut151 happy_x_1 of { happy_var_1 -> -	happyIn150-		 (happy_var_1-	)}--happyReduce_356 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_356 = happySpecReduce_3  136# happyReduction_356-happyReduction_356 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut151 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightArrow) -> -	case happyOut150 happy_x_3 of { happy_var_3 -> -	happyIn150-		 (KindFn (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_357 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_357 = happySpecReduce_1  137# happyReduction_357-happyReduction_357 happy_x_1-	 =  case happyOut152 happy_x_1 of { happy_var_1 -> -	happyIn151-		 (happy_var_1-	)}--happyReduce_358 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_358 = happySpecReduce_2  137# happyReduction_358-happyReduction_358 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-		 (KindApp (happy_var_1 <> happy_var_2) happy_var_1 happy_var_2-	)}}--happyReduce_359 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_359 = happySpecReduce_1  138# happyReduction_359-happyReduction_359 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Star) -> -	happyIn152-		 (KindStar  (nIS happy_var_1)-	)}--happyReduce_360 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_360 = happySpecReduce_3  138# happyReduction_360-happyReduction_360 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut150 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn152-		 (KindParen (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2-	)}}}--happyReduce_361 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_361 = happyMonadReduce 1# 138# happyReduction_361-happyReduction_361 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut153 happy_x_1 of { happy_var_1 -> -	( checkKind happy_var_1 >> return happy_var_1)})-	) (\r -> happyReturn (happyIn152 r))--happyReduce_362 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_362 = happyMonadReduce 1# 138# happyReduction_362-happyReduction_362 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut258 happy_x_1 of { happy_var_1 -> -	( checkEnabled PolyKinds >> return (KindVar (ann happy_var_1) happy_var_1))})-	) (\r -> happyReturn (happyIn152 r))--happyReduce_363 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_363 = happySpecReduce_1  139# happyReduction_363-happyReduction_363 happy_x_1-	 =  case happyOut285 happy_x_1 of { happy_var_1 -> -	happyIn153-		 (KindVar (ann happy_var_1) happy_var_1-	)}--happyReduce_364 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_364 = happySpecReduce_2  139# happyReduction_364-happyReduction_364 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) -> -	happyIn153-		 (let l = happy_var_1 <^^> happy_var_2 in KindVar l (unit_tycon_name l)-	)}}--happyReduce_365 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_365 = happyReduce 5# 139# happyReduction_365-happyReduction_365 (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 happyOut149 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 Comma) -> -	case happyOut154 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 RightParen) -> -	happyIn153-		 (KindTuple (happy_var_1 <^^> happy_var_5 <** (happy_var_1:happy_var_3:reverse (happy_var_5:snd happy_var_4))) (happy_var_2:reverse (fst happy_var_4))-	) `HappyStk` happyRest}}}}}--happyReduce_366 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_366 = happySpecReduce_3  139# happyReduction_366-happyReduction_366 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> -	case happyOut149 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> -	happyIn153-		 (KindList  ((happy_var_1 <^^> happy_var_3) <** [happy_var_1, happy_var_3]) happy_var_2-	)}}}--happyReduce_367 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_367 = happySpecReduce_1  140# happyReduction_367-happyReduction_367 happy_x_1-	 =  case happyOut150 happy_x_1 of { happy_var_1 -> -	happyIn154-		 (([happy_var_1], [])-	)}--happyReduce_368 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_368 = happySpecReduce_3  140# happyReduction_368-happyReduction_368 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut150 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 -> -	happyIn154-		 ((happy_var_1 : (fst happy_var_3), happy_var_2 : (snd happy_var_3))-	)}}}--happyReduce_369 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_369 = happySpecReduce_0  141# happyReduction_369-happyReduction_369  =  happyIn155-		 ((Nothing,[])-	)--happyReduce_370 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_370 = happySpecReduce_2  141# happyReduction_370-happyReduction_370 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DoubleColon) -> -	case happyOut149 happy_x_2 of { happy_var_2 -> -	happyIn155-		 ((Just happy_var_2,[happy_var_1])-	)}}--happyReduce_371 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_371 = happySpecReduce_0  142# happyReduction_371-happyReduction_371  =  happyIn156-		 (Nothing-	)--happyReduce_372 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_372 = happySpecReduce_2  142# happyReduction_372-happyReduction_372 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 DoubleColon) -> -	case happyOut116 happy_x_2 of { happy_var_2 -> -	happyIn156-		 (Just (happy_var_1, happy_var_2)-	)}}--happyReduce_373 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_373 = happyMonadReduce 4# 143# happyReduction_373-happyReduction_373 (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 happyOut158 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 (happyIn157 r))--happyReduce_374 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_374 = happyMonadReduce 4# 143# 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 { (Loc happy_var_1 KW_Where) -> -	case happyOut272 happy_x_2 of { happy_var_2 -> -	case happyOut158 happy_x_3 of { happy_var_3 -> -	case happyOut273 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 (happyIn157 r))--happyReduce_375 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_375 = happySpecReduce_0  143# happyReduction_375-happyReduction_375  =  happyIn157-		 ((Nothing,[],Nothing)-	)--happyReduce_376 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_376 = happyMonadReduce 3# 144# happyReduction_376-happyReduction_376 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut159 happy_x_2 of { happy_var_2 -> -	case happyOut28 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 (happyIn158 r))--happyReduce_377 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_377 = happySpecReduce_1  144# happyReduction_377-happyReduction_377 happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	happyIn158-		 (([],reverse happy_var_1)-	)}--happyReduce_378 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_378 = happySpecReduce_3  145# happyReduction_378-happyReduction_378 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut159 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_2 of { happy_var_2 -> -	case happyOut160 happy_x_3 of { happy_var_3 -> -	happyIn159-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)-	)}}}--happyReduce_379 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_379 = happySpecReduce_1  145# happyReduction_379-happyReduction_379 happy_x_1-	 =  case happyOut160 happy_x_1 of { happy_var_1 -> -	happyIn159-		 (([happy_var_1],[])-	)}--happyReduce_380 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_380 = happySpecReduce_1  146# happyReduction_380-happyReduction_380 happy_x_1-	 =  case happyOut77 happy_x_1 of { happy_var_1 -> -	happyIn160-		 (ClsDecl (ann happy_var_1) happy_var_1-	)}--happyReduce_381 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_381 = happyMonadReduce 1# 146# happyReduction_381-happyReduction_381 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut162 happy_x_1 of { happy_var_1 -> -	( checkEnabled TypeFamilies >> return happy_var_1)})-	) (\r -> happyReturn (happyIn160 r))--happyReduce_382 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_382 = happyMonadReduce 2# 146# happyReduction_382-happyReduction_382 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Default) -> -	case happyOut79 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 (happyIn160 r))--happyReduce_383 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_383 = happySpecReduce_0  147# happyReduction_383-happyReduction_383  =  happyIn161-		 ([]-	)--happyReduce_384 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_384 = happySpecReduce_1  147# happyReduction_384-happyReduction_384 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Family) -> -	happyIn161-		 ([happy_var_1]-	)}--happyReduce_385 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_385 = happyMonadReduce 4# 148# happyReduction_385-happyReduction_385 (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 happyOut107 happy_x_3 of { happy_var_3 -> -	case happyOut61 happy_x_4 of { happy_var_4 -> -	( do { (cs,dh) <- checkDataHeader happy_var_3;-                    return (ClsDataFam (nIS happy_var_1 <++> ann happy_var_3 <+?> (fmap ann) happy_var_4 <** [happy_var_1]) cs dh happy_var_4) })}}})-	) (\r -> happyReturn (happyIn162 r))--happyReduce_386 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_386 = happyMonadReduce 3# 148# happyReduction_386-happyReduction_386 (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 happyOut107 happy_x_2 of { happy_var_2 -> -	case happyOut64 happy_x_3 of { happy_var_3 -> -	( mkAssocType happy_var_1 happy_var_2 happy_var_3)}}})-	) (\r -> happyReturn (happyIn162 r))--happyReduce_387 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_387 = happyMonadReduce 4# 148# 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 { (Loc happy_var_1 KW_Type) -> -	case happyOut107 happy_x_3 of { happy_var_3 -> -	case happyOut63 happy_x_4 of { happy_var_4 -> -	( do { dh <- checkSimpleType happy_var_3;-                    return (ClsTyFam  (nIS happy_var_1 <++> ann happy_var_3 <+?> (fmap ann) (fst happy_var_4)-                                                          <+?> (fmap ann) (snd happy_var_4)-                                                          <** [happy_var_1]) dh (fst happy_var_4) (snd happy_var_4)) })}}})-	) (\r -> happyReturn (happyIn162 r))--happyReduce_388 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_388 = happySpecReduce_3  148# happyReduction_388-happyReduction_388 happy_x_3-	happy_x_2-	happy_x_1-	 =  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 happyOut72 happy_x_3 of { happy_var_3 -> -	happyIn162-		 (ClsTyDef (nIS happy_var_1 <++> ann happy_var_3 <** [happy_var_1,happy_var_2]) happy_var_3-	)}}}--happyReduce_389 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_389 = happyMonadReduce 4# 149# happyReduction_389-happyReduction_389 (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 happyOut164 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 (happyIn163 r))--happyReduce_390 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_390 = happyMonadReduce 4# 149# happyReduction_390-happyReduction_390 (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 happyOut272 happy_x_2 of { happy_var_2 -> -	case happyOut164 happy_x_3 of { happy_var_3 -> -	case happyOut273 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 (happyIn163 r))--happyReduce_391 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_391 = happySpecReduce_0  149# happyReduction_391-happyReduction_391  =  happyIn163-		 ((Nothing, [], Nothing)-	)--happyReduce_392 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_392 = happyMonadReduce 3# 150# happyReduction_392-happyReduction_392 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut165 happy_x_2 of { happy_var_2 -> -	case happyOut28 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 (happyIn164 r))--happyReduce_393 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_393 = happySpecReduce_1  150# happyReduction_393-happyReduction_393 happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	happyIn164-		 (([],reverse happy_var_1)-	)}--happyReduce_394 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_394 = happySpecReduce_3  151# happyReduction_394-happyReduction_394 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut165 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_2 of { happy_var_2 -> -	case happyOut166 happy_x_3 of { happy_var_3 -> -	happyIn165-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)-	)}}}--happyReduce_395 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_395 = happySpecReduce_1  151# happyReduction_395-happyReduction_395 happy_x_1-	 =  case happyOut166 happy_x_1 of { happy_var_1 -> -	happyIn165-		 (([happy_var_1],[])-	)}--happyReduce_396 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_396 = happySpecReduce_1  152# happyReduction_396-happyReduction_396 happy_x_1-	 =  case happyOut168 happy_x_1 of { happy_var_1 -> -	happyIn166-		 (InsDecl (ann happy_var_1) happy_var_1-	)}--happyReduce_397 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_397 = happyMonadReduce 1# 152# happyReduction_397-happyReduction_397 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut167 happy_x_1 of { happy_var_1 -> -	( checkEnabled TypeFamilies >> return happy_var_1)})-	) (\r -> happyReturn (happyIn166 r))--happyReduce_398 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_398 = happySpecReduce_1  152# happyReduction_398-happyReduction_398 happy_x_1-	 =  case happyOut81 happy_x_1 of { happy_var_1 -> -	happyIn166-		 (InsDecl (ann happy_var_1) happy_var_1-	)}--happyReduce_399 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_399 = happyMonadReduce 1# 152# happyReduction_399-happyReduction_399 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut80 happy_x_1 of { happy_var_1 -> -	( checkEnabled InstanceSigs >> return (InsDecl (ann happy_var_1) happy_var_1))})-	) (\r -> happyReturn (happyIn166 r))--happyReduce_400 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_400 = happyMonadReduce 4# 153# happyReduction_400-happyReduction_400 (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 happyOut104 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 Equals) -> -	case happyOut119 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 (happyIn167 r))--happyReduce_401 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_401 = happyMonadReduce 4# 153# happyReduction_401-happyReduction_401 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut73 happy_x_1 of { happy_var_1 -> -	case happyOut119 happy_x_2 of { happy_var_2 -> -	case happyOut136 happy_x_3 of { happy_var_3 -> -	case happyOut144 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 (listToMaybe happy_var_4) <** ss ) happy_var_1 happy_var_2 (reverse ds) (reverse happy_var_4)) })}}}})-	) (\r -> happyReturn (happyIn167 r))--happyReduce_402 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_402 = happyMonadReduce 5# 153# happyReduction_402-happyReduction_402 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut73 happy_x_1 of { happy_var_1 -> -	case happyOut119 happy_x_2 of { happy_var_2 -> -	case happyOut155 happy_x_3 of { happy_var_3 -> -	case happyOut132 happy_x_4 of { happy_var_4 -> -	case happyOut144 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 (listToMaybe happy_var_5) <** (snd happy_var_3 ++ ss)) happy_var_1 happy_var_2 (fst happy_var_3) (reverse gs) (reverse happy_var_5) })}}}}})-	) (\r -> happyReturn (happyIn167 r))--happyReduce_403 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_403 = happyMonadReduce 4# 154# happyReduction_403-happyReduction_403 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut178 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 -> -	case happyOut169 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 (happyIn168 r))--happyReduce_404 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_404 = happyMonadReduce 4# 154# happyReduction_404-happyReduction_404 (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 happyOut187 happy_x_2 of { happy_var_2 -> -	case happyOut171 happy_x_3 of { happy_var_3 -> -	case happyOut169 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 (happyIn168 r))--happyReduce_405 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_405 = happySpecReduce_2  155# happyReduction_405-happyReduction_405 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> -	case happyOut88 happy_x_2 of { happy_var_2 -> -	happyIn169-		 ((Just happy_var_2, [happy_var_1])-	)}}--happyReduce_406 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_406 = happySpecReduce_0  155# happyReduction_406-happyReduction_406  =  happyIn169-		 ((Nothing, [])-	)--happyReduce_407 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_407 = happyMonadReduce 2# 156# happyReduction_407-happyReduction_407 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 DoubleColon) -> -	case happyOut119 happy_x_2 of { happy_var_2 -> -	( checkEnabled ScopedTypeVariables >> return (Just (happy_var_2, happy_var_1)))}})-	) (\r -> happyReturn (happyIn170 r))--happyReduce_408 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_408 = happySpecReduce_0  156# happyReduction_408-happyReduction_408  =  happyIn170-		 (Nothing-	)--happyReduce_409 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_409 = happySpecReduce_2  157# happyReduction_409-happyReduction_409 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Equals) -> -	case happyOut174 happy_x_2 of { happy_var_2 -> -	happyIn171-		 (UnGuardedRhs (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_410 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_410 = happySpecReduce_1  157# happyReduction_410-happyReduction_410 happy_x_1-	 =  case happyOut172 happy_x_1 of { happy_var_1 -> -	happyIn171-		 (GuardedRhss (snd happy_var_1) (reverse $ fst happy_var_1)-	)}--happyReduce_411 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_411 = happySpecReduce_2  158# happyReduction_411-happyReduction_411 happy_x_2-	happy_x_1-	 =  case happyOut172 happy_x_1 of { happy_var_1 -> -	case happyOut173 happy_x_2 of { happy_var_2 -> -	happyIn172-		 ((happy_var_2 : fst happy_var_1, snd happy_var_1 <++> ann happy_var_2)-	)}}--happyReduce_412 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_412 = happySpecReduce_1  158# happyReduction_412-happyReduction_412 happy_x_1-	 =  case happyOut173 happy_x_1 of { happy_var_1 -> -	happyIn172-		 (([happy_var_1],ann happy_var_1)-	)}--happyReduce_413 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_413 = happyMonadReduce 4# 159# happyReduction_413-happyReduction_413 (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 happyOut214 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 Equals) -> -	case happyOut174 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 (happyIn173 r))--happyReduce_414 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_414 = happyMonadReduce 1# 160# happyReduction_414-happyReduction_414 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut175 happy_x_1 of { happy_var_1 -> -	( checkExpr happy_var_1)})-	) (\r -> happyReturn (happyIn174 r))--happyReduce_415 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_415 = happySpecReduce_3  161# happyReduction_415-happyReduction_415 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 DoubleColon) -> -	case happyOut119 happy_x_3 of { happy_var_3 -> -	happyIn175-		 (ExpTypeSig      (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_416 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_416 = happySpecReduce_1  161# happyReduction_416-happyReduction_416 happy_x_1-	 =  case happyOut176 happy_x_1 of { happy_var_1 -> -	happyIn175-		 (happy_var_1-	)}--happyReduce_417 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_417 = happySpecReduce_2  161# happyReduction_417-happyReduction_417 happy_x_2-	happy_x_1-	 =  case happyOut178 happy_x_1 of { happy_var_1 -> -	case happyOut254 happy_x_2 of { happy_var_2 -> -	happyIn175-		 (PostOp          (happy_var_1 <> happy_var_2)          happy_var_1 happy_var_2-	)}}--happyReduce_418 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_418 = happySpecReduce_3  161# happyReduction_418-happyReduction_418 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 LeftArrowTail) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	happyIn175-		 (LeftArrApp      (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_419 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_419 = happySpecReduce_3  161# happyReduction_419-happyReduction_419 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 RightArrowTail) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	happyIn175-		 (RightArrApp     (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_420 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_420 = happySpecReduce_3  161# happyReduction_420-happyReduction_420 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 LeftDblArrowTail) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	happyIn175-		 (LeftArrHighApp  (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_421 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_421 = happySpecReduce_3  161# happyReduction_421-happyReduction_421 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 RightDblArrowTail) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	happyIn175-		 (RightArrHighApp (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_422 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_422 = happySpecReduce_1  162# happyReduction_422-happyReduction_422 happy_x_1-	 =  case happyOut177 happy_x_1 of { happy_var_1 -> -	happyIn176-		 (happy_var_1-	)}--happyReduce_423 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_423 = happySpecReduce_1  162# happyReduction_423-happyReduction_423 happy_x_1-	 =  case happyOut178 happy_x_1 of { happy_var_1 -> -	happyIn176-		 (happy_var_1-	)}--happyReduce_424 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_424 = happySpecReduce_3  163# happyReduction_424-happyReduction_424 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut178 happy_x_1 of { happy_var_1 -> -	case happyOut254 happy_x_2 of { happy_var_2 -> -	case happyOut179 happy_x_3 of { happy_var_3 -> -	happyIn177-		 (InfixApp (happy_var_1 <> happy_var_3) happy_var_1 happy_var_2 happy_var_3-	)}}}--happyReduce_425 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_425 = happySpecReduce_1  163# happyReduction_425-happyReduction_425 happy_x_1-	 =  case happyOut179 happy_x_1 of { happy_var_1 -> -	happyIn177-		 (happy_var_1-	)}--happyReduce_426 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_426 = happySpecReduce_3  164# happyReduction_426-happyReduction_426 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut178 happy_x_1 of { happy_var_1 -> -	case happyOut254 happy_x_2 of { happy_var_2 -> -	case happyOut182 happy_x_3 of { happy_var_3 -> -	happyIn178-		 (InfixApp (happy_var_1 <> happy_var_3) happy_var_1 happy_var_2 happy_var_3-	)}}}--happyReduce_427 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_427 = happySpecReduce_1  164# happyReduction_427-happyReduction_427 happy_x_1-	 =  case happyOut182 happy_x_1 of { happy_var_1 -> -	happyIn178-		 (happy_var_1-	)}--happyReduce_428 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_428 = happyReduce 4# 165# happyReduction_428-happyReduction_428 (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 happyOut185 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightArrow) -> -	case happyOut175 happy_x_4 of { happy_var_4 -> -	happyIn179-		 (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_429 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_429 = happyReduce 4# 165# happyReduction_429-happyReduction_429 (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 happyOut88 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_In) -> -	case happyOut175 happy_x_4 of { happy_var_4 -> -	happyIn179-		 (Let    (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3])    happy_var_2 happy_var_4-	) `HappyStk` happyRest}}}}--happyReduce_430 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_430 = happyReduce 8# 165# happyReduction_430-happyReduction_430 (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 happyOut175 happy_x_2 of { happy_var_2 -> -	case happyOut180 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 KW_Then) -> -	case happyOut175 happy_x_5 of { happy_var_5 -> -	case happyOut180 happy_x_6 of { happy_var_6 -> -	case happyOutTok happy_x_7 of { (Loc happy_var_7 KW_Else) -> -	case happyOut175 happy_x_8 of { happy_var_8 -> -	happyIn179-		 (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_431 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_431 = happyMonadReduce 2# 165# happyReduction_431-happyReduction_431 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_If) -> -	case happyOut225 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 (happyIn179 r))--happyReduce_432 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_432 = happyReduce 4# 165# happyReduction_432-happyReduction_432 (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 happyOut186 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightArrow) -> -	case happyOut175 happy_x_4 of { happy_var_4 -> -	happyIn179-		 (Proc   (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3])    happy_var_2 happy_var_4-	) `HappyStk` happyRest}}}}--happyReduce_433 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_433 = happySpecReduce_1  165# happyReduction_433-happyReduction_433 happy_x_1-	 =  case happyOut183 happy_x_1 of { happy_var_1 -> -	happyIn179-		 (happy_var_1-	)}--happyReduce_434 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_434 = happyMonadReduce 1# 166# happyReduction_434-happyReduction_434 (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 (happyIn180 r))--happyReduce_435 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_435 = happySpecReduce_0  166# happyReduction_435-happyReduction_435  =  happyIn180-		 ([]-	)--happyReduce_436 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_436 = happySpecReduce_1  167# happyReduction_436-happyReduction_436 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 SemiColon) -> -	happyIn181-		 ([happy_var_1]-	)}--happyReduce_437 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_437 = happySpecReduce_0  167# happyReduction_437-happyReduction_437  =  happyIn181-		 ([]-	)--happyReduce_438 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_438 = happyReduce 4# 168# happyReduction_438-happyReduction_438 (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 happyOut175 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_Of) -> -	case happyOut217 happy_x_4 of { happy_var_4 -> -	happyIn182-		 (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_439 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_439 = happyMonadReduce 3# 168# happyReduction_439-happyReduction_439 (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 happyOut217 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 (happyIn182 r))--happyReduce_440 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_440 = happySpecReduce_2  168# happyReduction_440-happyReduction_440 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Minus) -> -	case happyOut184 happy_x_2 of { happy_var_2 -> -	happyIn182-		 (NegApp (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_441 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_441 = happySpecReduce_2  168# happyReduction_441-happyReduction_441 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Do) -> -	case happyOut228 happy_x_2 of { happy_var_2 -> -	happyIn182-		 (let (sts, inf, ss) = happy_var_2 in Do   (nIS happy_var_1 <++> inf <** happy_var_1:ss) sts-	)}}--happyReduce_442 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_442 = happySpecReduce_2  168# happyReduction_442-happyReduction_442 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_MDo) -> -	case happyOut228 happy_x_2 of { happy_var_2 -> -	happyIn182-		 (let (sts, inf, ss) = happy_var_2 in MDo  (nIS happy_var_1 <++> inf <** happy_var_1:ss) sts-	)}}--happyReduce_443 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_443 = happySpecReduce_1  168# happyReduction_443-happyReduction_443 happy_x_1-	 =  case happyOut184 happy_x_1 of { happy_var_1 -> -	happyIn182-		 (happy_var_1-	)}--happyReduce_444 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_444 = happyReduce 4# 169# happyReduction_444-happyReduction_444 (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 happyOut175 happy_x_4 of { happy_var_4 -> -	happyIn183-		 (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_445 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_445 = happyReduce 4# 169# happyReduction_445-happyReduction_445 (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 happyOut175 happy_x_4 of { happy_var_4 -> -	happyIn183-		 (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_446 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_446 = happyReduce 11# 169# happyReduction_446-happyReduction_446 (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 happyOut175 happy_x_11 of { happy_var_11 -> -	happyIn183-		 (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_447 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_447 = happySpecReduce_2  170# happyReduction_447-happyReduction_447 happy_x_2-	happy_x_1-	 =  case happyOut184 happy_x_1 of { happy_var_1 -> -	case happyOut187 happy_x_2 of { happy_var_2 -> -	happyIn184-		 (App (happy_var_1 <> happy_var_2) happy_var_1 happy_var_2-	)}}--happyReduce_448 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_448 = happySpecReduce_1  170# happyReduction_448-happyReduction_448 happy_x_1-	 =  case happyOut187 happy_x_1 of { happy_var_1 -> -	happyIn184-		 (happy_var_1-	)}--happyReduce_449 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_449 = happySpecReduce_2  171# happyReduction_449-happyReduction_449 happy_x_2-	happy_x_1-	 =  case happyOut185 happy_x_1 of { happy_var_1 -> -	case happyOut186 happy_x_2 of { happy_var_2 -> -	happyIn185-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_450 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_450 = happySpecReduce_1  171# happyReduction_450-happyReduction_450 happy_x_1-	 =  case happyOut186 happy_x_1 of { happy_var_1 -> -	happyIn185-		 ([happy_var_1]-	)}--happyReduce_451 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_451 = happyMonadReduce 1# 172# happyReduction_451-happyReduction_451 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut187 happy_x_1 of { happy_var_1 -> -	( checkPattern happy_var_1)})-	) (\r -> happyReturn (happyIn186 r))--happyReduce_452 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_452 = happyMonadReduce 2# 172# happyReduction_452-happyReduction_452 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> -	case happyOut187 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 (happyIn186 r))--happyReduce_453 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_453 = happyMonadReduce 3# 173# happyReduction_453-happyReduction_453 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut243 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 At) -> -	case happyOut187 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 (happyIn187 r))--happyReduce_454 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_454 = happyMonadReduce 3# 173# happyReduction_454-happyReduction_454 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut243 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 RPCAt) -> -	case happyOut187 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 (happyIn187 r))--happyReduce_455 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_455 = happySpecReduce_2  173# happyReduction_455-happyReduction_455 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Tilde) -> -	case happyOut187 happy_x_2 of { happy_var_2 -> -	happyIn187-		 (IrrPat (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_456 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_456 = happySpecReduce_2  173# happyReduction_456-happyReduction_456 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 TApp) -> -	case happyOut109 happy_x_2 of { happy_var_2 -> -	happyIn187-		 (TypeApp (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_457 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_457 = happySpecReduce_1  173# happyReduction_457-happyReduction_457 happy_x_1-	 =  case happyOut188 happy_x_1 of { happy_var_1 -> -	happyIn187-		 (happy_var_1-	)}--happyReduce_458 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_458 = happyMonadReduce 3# 174# happyReduction_458-happyReduction_458 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut188 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 (happyIn188 r))--happyReduce_459 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_459 = happyMonadReduce 4# 174# happyReduction_459-happyReduction_459 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut188 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> -	case happyOut232 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 (happyIn188 r))--happyReduce_460 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_460 = happySpecReduce_1  174# happyReduction_460-happyReduction_460 happy_x_1-	 =  case happyOut189 happy_x_1 of { happy_var_1 -> -	happyIn188-		 (happy_var_1-	)}--happyReduce_461 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_461 = happySpecReduce_1  175# happyReduction_461-happyReduction_461 happy_x_1-	 =  case happyOut244 happy_x_1 of { happy_var_1 -> -	happyIn189-		 (IPVar (ann happy_var_1) happy_var_1-	)}--happyReduce_462 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_462 = happySpecReduce_1  175# happyReduction_462-happyReduction_462 happy_x_1-	 =  case happyOut257 happy_x_1 of { happy_var_1 -> -	happyIn189-		 (happy_var_1-	)}--happyReduce_463 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_463 = happySpecReduce_1  175# happyReduction_463-happyReduction_463 happy_x_1-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> -	happyIn189-		 (Var (ann happy_var_1) happy_var_1-	)}--happyReduce_464 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_464 = happySpecReduce_1  175# happyReduction_464-happyReduction_464 happy_x_1-	 =  case happyOut237 happy_x_1 of { happy_var_1 -> -	happyIn189-		 (happy_var_1-	)}--happyReduce_465 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_465 = happySpecReduce_1  175# happyReduction_465-happyReduction_465 happy_x_1-	 =  case happyOut271 happy_x_1 of { happy_var_1 -> -	happyIn189-		 (Lit (ann happy_var_1) happy_var_1-	)}--happyReduce_466 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_466 = happySpecReduce_3  175# happyReduction_466-happyReduction_466 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut196 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn189-		 (Paren (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2-	)}}}--happyReduce_467 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_467 = happyMonadReduce 3# 175# happyReduction_467-happyReduction_467 (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 happyOut190 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	( do { e <- mkSumOrTuple Boxed (happy_var_1 <^^> happy_var_3) (snd happy_var_2)-                                            ; return $ amap (\l -> l <** [happy_var_1] ++ fst happy_var_2 ++ [happy_var_3]) e })}}})-	) (\r -> happyReturn (happyIn189 r))--happyReduce_468 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_468 = happySpecReduce_3  175# happyReduction_468-happyReduction_468 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> -	case happyOut196 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> -	happyIn189-		 (TupleSection (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) Unboxed [Just happy_var_2]-	)}}}--happyReduce_469 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_469 = happyMonadReduce 3# 175# happyReduction_469-happyReduction_469 (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 LeftHashParen) -> -	case happyOut190 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> -	( do { e <- mkSumOrTuple Unboxed (happy_var_1 <^^> happy_var_3) (snd happy_var_2)-                                          ; return $ amap (\l -> l <** [happy_var_1] ++ fst happy_var_2 ++ [happy_var_3]) e })}}})-	) (\r -> happyReturn (happyIn189 r))--happyReduce_470 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_470 = happySpecReduce_3  175# happyReduction_470-happyReduction_470 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftSquare) -> -	case happyOut208 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightSquare) -> -	happyIn189-		 (amap (\l -> l <** [happy_var_3]) $ happy_var_2 (happy_var_1 <^^> happy_var_3 <** [happy_var_1])-	)}}}--happyReduce_471 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_471 = happySpecReduce_3  175# happyReduction_471-happyReduction_471 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 ParArrayLeftSquare) -> -	case happyOut216 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 ParArrayRightSquare) -> -	happyIn189-		 (amap (\l -> l <** [happy_var_3]) $ happy_var_2 (happy_var_1 <^^> happy_var_3 <** [happy_var_1])-	)}}}--happyReduce_472 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_472 = happyMonadReduce 3# 175# happyReduction_472-happyReduction_472 (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 happyOut198 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 (happyIn189 r))--happyReduce_473 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_473 = happySpecReduce_3  175# happyReduction_473-happyReduction_473 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 RPGuardOpen) -> -	case happyOut197 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RPGuardClose) -> -	happyIn189-		 (SeqRP (happy_var_1 <^^> happy_var_3 <** (happy_var_1:reverse (snd happy_var_2) ++ [happy_var_3])) $ reverse (fst happy_var_2)-	)}}}--happyReduce_474 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_474 = happyReduce 5# 175# happyReduction_474-happyReduction_474 (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 happyOut175 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 Bar) -> -	case happyOut214 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 RPGuardClose) -> -	happyIn189-		 (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_475 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_475 = happySpecReduce_1  175# happyReduction_475-happyReduction_475 happy_x_1-	 =  case happyOut199 happy_x_1 of { happy_var_1 -> -	happyIn189-		 (happy_var_1-	)}--happyReduce_476 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_476 = happySpecReduce_1  175# happyReduction_476-happyReduction_476 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn189-		 (let Loc l (THIdEscape s) = happy_var_1 in SpliceExp (nIS l) $ IdSplice (nIS l) s-	)}--happyReduce_477 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_477 = happySpecReduce_3  175# happyReduction_477-happyReduction_477 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THParenEscape) -> -	case happyOut174 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn189-		 (let l = (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) in SpliceExp l $ ParenSplice l happy_var_2-	)}}}--happyReduce_478 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_478 = happySpecReduce_3  175# happyReduction_478-happyReduction_478 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THExpQuote) -> -	case happyOut174 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 THCloseQuote) -> -	happyIn189-		 (let l = (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) in BracketExp l $ ExpBracket l happy_var_2-	)}}}--happyReduce_479 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_479 = happyMonadReduce 3# 175# happyReduction_479-happyReduction_479 (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 happyOut176 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 (happyIn189 r))--happyReduce_480 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_480 = happySpecReduce_3  175# happyReduction_480-happyReduction_480 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THTypQuote) -> -	case happyOut119 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 THCloseQuote) -> -	happyIn189-		 (let l = happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3] in BracketExp l $ TypeBracket l happy_var_2-	)}}}--happyReduce_481 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_481 = happyReduce 5# 175# happyReduction_481-happyReduction_481 (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 happyOut272 happy_x_2 of { happy_var_2 -> -	case happyOut58 happy_x_3 of { happy_var_3 -> -	case happyOut273 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 THCloseQuote) -> -	happyIn189-		 (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_482 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_482 = happySpecReduce_3  175# happyReduction_482-happyReduction_482 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftParen) -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn189-		 (let {l1 = happy_var_1 <^^> happy_var_3 <** [happy_var_1];-                                             l2 = happy_var_2 <^^> happy_var_3 <** [happy_var_2,happy_var_3];}-                                         in VarQuote l1 (unit_con_name l2)-	)}}}--happyReduce_483 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_483 = happySpecReduce_2  175# happyReduction_483-happyReduction_483 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THVarQuote) -> -	case happyOut243 happy_x_2 of { happy_var_2 -> -	happyIn189-		 (VarQuote (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_484 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_484 = happySpecReduce_2  175# happyReduction_484-happyReduction_484 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 -> -	happyIn189-		 (VarQuote (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_485 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_485 = happySpecReduce_2  175# happyReduction_485-happyReduction_485 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THTyQuote) -> -	case happyOut286 happy_x_2 of { happy_var_2 -> -	happyIn189-		 (TypQuote (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) (UnQual (ann happy_var_2) happy_var_2)-	)}}--happyReduce_486 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_486 = happySpecReduce_2  175# happyReduction_486-happyReduction_486 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 THTyQuote) -> -	case happyOut116 happy_x_2 of { happy_var_2 -> -	happyIn189-		 (TypQuote (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_487 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_487 = happySpecReduce_1  175# happyReduction_487-happyReduction_487 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn189-		 (let Loc l (THQuasiQuote (n,q)) = happy_var_1 in QuasiQuote (nIS l) n q-	)}--happyReduce_488 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_488 = happySpecReduce_2  176# happyReduction_488-happyReduction_488 happy_x_2-	happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOut191 happy_x_2 of { happy_var_2 -> -	happyIn190-		 ((fst happy_var_2, STuple (Just happy_var_1 : snd happy_var_2))-	)}}--happyReduce_489 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_489 = happySpecReduce_2  176# happyReduction_489-happyReduction_489 happy_x_2-	happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOut194 happy_x_2 of { happy_var_2 -> -	happyIn190-		 ((happy_var_2, SSum 0 (length happy_var_2) happy_var_1)-	)}}--happyReduce_490 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_490 = happySpecReduce_2  176# happyReduction_490-happyReduction_490 happy_x_2-	happy_x_1-	 =  case happyOut193 happy_x_1 of { happy_var_1 -> -	case happyOut192 happy_x_2 of { happy_var_2 -> -	happyIn190-		 ((happy_var_1 ++ (fst happy_var_2), STuple ((map (const Nothing) happy_var_1) ++ snd happy_var_2))-	)}}--happyReduce_491 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_491 = happySpecReduce_3  176# happyReduction_491-happyReduction_491 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut194 happy_x_1 of { happy_var_1 -> -	case happyOut196 happy_x_2 of { happy_var_2 -> -	case happyOut195 happy_x_3 of { happy_var_3 -> -	happyIn190-		 ((happy_var_1 ++ happy_var_3, SSum (length happy_var_1) (length happy_var_3) happy_var_2)-	)}}}--happyReduce_492 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_492 = happySpecReduce_2  177# happyReduction_492-happyReduction_492 happy_x_2-	happy_x_1-	 =  case happyOut193 happy_x_1 of { happy_var_1 -> -	case happyOut192 happy_x_2 of { happy_var_2 -> -	happyIn191-		 ((reverse happy_var_1 ++ fst happy_var_2, map (const Nothing) (tail happy_var_1) ++ snd happy_var_2)-	)}}--happyReduce_493 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_493 = happySpecReduce_2  178# happyReduction_493-happyReduction_493 happy_x_2-	happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOut191 happy_x_2 of { happy_var_2 -> -	happyIn192-		 ((fst happy_var_2, Just happy_var_1 : snd happy_var_2)-	)}}--happyReduce_494 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_494 = happySpecReduce_1  178# happyReduction_494-happyReduction_494 happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	happyIn192-		 (([], [Just happy_var_1])-	)}--happyReduce_495 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_495 = happySpecReduce_0  178# happyReduction_495-happyReduction_495  =  happyIn192-		 (([], [Nothing])-	)--happyReduce_496 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_496 = happySpecReduce_2  179# happyReduction_496-happyReduction_496 happy_x_2-	happy_x_1-	 =  case happyOut193 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	happyIn193-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_497 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_497 = happySpecReduce_1  179# happyReduction_497-happyReduction_497 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Comma) -> -	happyIn193-		 ([happy_var_1]-	)}--happyReduce_498 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_498 = happySpecReduce_2  180# happyReduction_498-happyReduction_498 happy_x_2-	happy_x_1-	 =  case happyOut194 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> -	happyIn194-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_499 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_499 = happySpecReduce_1  180# happyReduction_499-happyReduction_499 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Bar) -> -	happyIn194-		 ([happy_var_1]-	)}--happyReduce_500 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_500 = happySpecReduce_1  181# happyReduction_500-happyReduction_500 happy_x_1-	 =  case happyOut194 happy_x_1 of { happy_var_1 -> -	happyIn195-		 (happy_var_1-	)}--happyReduce_501 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_501 = happySpecReduce_0  181# happyReduction_501-happyReduction_501  =  happyIn195-		 ([]-	)--happyReduce_502 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_502 = happySpecReduce_1  182# happyReduction_502-happyReduction_502 happy_x_1-	 =  case happyOut175 happy_x_1 of { happy_var_1 -> -	happyIn196-		 (happy_var_1-	)}--happyReduce_503 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_503 = happySpecReduce_2  182# happyReduction_503-happyReduction_503 happy_x_2-	happy_x_1-	 =  case happyOut255 happy_x_1 of { happy_var_1 -> -	case happyOut176 happy_x_2 of { happy_var_2 -> -	happyIn196-		 (PreOp (happy_var_1 <> happy_var_2) happy_var_1 happy_var_2-	)}}--happyReduce_504 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_504 = happyMonadReduce 3# 182# happyReduction_504-happyReduction_504 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut175 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightArrow) -> -	case happyOut224 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 (happyIn196 r))--happyReduce_505 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_505 = happySpecReduce_3  183# happyReduction_505-happyReduction_505 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut197 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	happyIn197-		 ((happy_var_3 : fst happy_var_1, happy_var_2 : snd happy_var_1)-	)}}}--happyReduce_506 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_506 = happySpecReduce_1  183# happyReduction_506-happyReduction_506 happy_x_1-	 =  case happyOut175 happy_x_1 of { happy_var_1 -> -	happyIn197-		 (([happy_var_1],[])-	)}--happyReduce_507 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_507 = happySpecReduce_3  184# happyReduction_507-happyReduction_507 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut175 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> -	case happyOut198 happy_x_3 of { happy_var_3 -> -	happyIn198-		 (EitherRP (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_508 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_508 = happySpecReduce_3  184# happyReduction_508-happyReduction_508 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut175 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	happyIn198-		 (EitherRP (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_509 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_509 = happyMonadReduce 10# 185# happyReduction_509-happyReduction_509 (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 happyOut202 happy_x_2 of { happy_var_2 -> -	case happyOut205 happy_x_3 of { happy_var_3 -> -	case happyOut207 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 XStdTagClose) -> -	case happyOut200 happy_x_6 of { happy_var_6 -> -	case happyOut181 happy_x_7 of { happy_var_7 -> -	case happyOutTok happy_x_8 of { (Loc happy_var_8 XCloseTagOpen) -> -	case happyOut202 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 (happyIn199 r))--happyReduce_510 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_510 = happyReduce 5# 185# happyReduction_510-happyReduction_510 (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 happyOut202 happy_x_2 of { happy_var_2 -> -	case happyOut205 happy_x_3 of { happy_var_3 -> -	case happyOut207 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 XEmptyTagClose) -> -	happyIn199-		 (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_511 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_511 = happySpecReduce_3  185# happyReduction_511-happyReduction_511 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 XCodeTagOpen) -> -	case happyOut175 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 XCodeTagClose) -> -	happyIn199-		 (XExpTag (happy_var_1 <^^> happy_var_3 <** [happy_var_1,happy_var_3]) happy_var_2-	)}}}--happyReduce_512 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_512 = happyReduce 5# 185# happyReduction_512-happyReduction_512 (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 happyOut200 happy_x_2 of { happy_var_2 -> -	case happyOut181 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) -> -	happyIn199-		 (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_513 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_513 = happySpecReduce_2  186# happyReduction_513-happyReduction_513 happy_x_2-	happy_x_1-	 =  case happyOut200 happy_x_1 of { happy_var_1 -> -	case happyOut201 happy_x_2 of { happy_var_2 -> -	happyIn200-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_514 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_514 = happySpecReduce_0  186# happyReduction_514-happyReduction_514  =  happyIn200-		 ([]-	)--happyReduce_515 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_515 = happySpecReduce_1  187# happyReduction_515-happyReduction_515 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn201-		 (let Loc l (XPCDATA pcd) = happy_var_1 in XPcdata (nIS l) pcd-	)}--happyReduce_516 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_516 = happySpecReduce_3  187# happyReduction_516-happyReduction_516 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 XRPatOpen) -> -	case happyOut197 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 XRPatClose) -> -	happyIn201-		 (XRPats (happy_var_1 <^^> happy_var_3 <** (snd happy_var_2 ++ [happy_var_1,happy_var_3])) $ reverse (fst happy_var_2)-	)}}}--happyReduce_517 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_517 = happySpecReduce_1  187# happyReduction_517-happyReduction_517 happy_x_1-	 =  case happyOut199 happy_x_1 of { happy_var_1 -> -	happyIn201-		 (happy_var_1-	)}--happyReduce_518 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_518 = happySpecReduce_3  188# happyReduction_518-happyReduction_518 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut203 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Colon) -> -	case happyOut203 happy_x_3 of { happy_var_3 -> -	happyIn202-		 (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_519 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_519 = happySpecReduce_1  188# happyReduction_519-happyReduction_519 happy_x_1-	 =  case happyOut203 happy_x_1 of { happy_var_1 -> -	happyIn202-		 (let Loc l str = happy_var_1 in XName (nIS l) str-	)}--happyReduce_520 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_520 = happySpecReduce_1  189# happyReduction_520-happyReduction_520 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn203-		 (let Loc l (VarId  s) = happy_var_1 in Loc l s-	)}--happyReduce_521 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_521 = happySpecReduce_1  189# happyReduction_521-happyReduction_521 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn203-		 (let Loc l (ConId  s) = happy_var_1 in Loc l s-	)}--happyReduce_522 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_522 = happySpecReduce_1  189# happyReduction_522-happyReduction_522 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn203-		 (let Loc l (DVarId s) = happy_var_1 in Loc l $ mkDVar s-	)}--happyReduce_523 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_523 = happySpecReduce_1  189# happyReduction_523-happyReduction_523 happy_x_1-	 =  case happyOut204 happy_x_1 of { happy_var_1 -> -	happyIn203-		 (happy_var_1-	)}--happyReduce_524 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_524 = happySpecReduce_1  190# happyReduction_524-happyReduction_524 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Type) -> -	happyIn204-		 (Loc happy_var_1 "type"-	)}--happyReduce_525 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_525 = happySpecReduce_1  190# happyReduction_525-happyReduction_525 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Class) -> -	happyIn204-		 (Loc happy_var_1 "class"-	)}--happyReduce_526 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_526 = happySpecReduce_1  190# happyReduction_526-happyReduction_526 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Data) -> -	happyIn204-		 (Loc happy_var_1 "data"-	)}--happyReduce_527 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_527 = happySpecReduce_1  190# happyReduction_527-happyReduction_527 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Foreign) -> -	happyIn204-		 (Loc happy_var_1 "foreign"-	)}--happyReduce_528 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_528 = happySpecReduce_1  190# happyReduction_528-happyReduction_528 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Export) -> -	happyIn204-		 (Loc happy_var_1 "export"-	)}--happyReduce_529 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_529 = happySpecReduce_1  190# happyReduction_529-happyReduction_529 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Safe) -> -	happyIn204-		 (Loc happy_var_1 "safe"-	)}--happyReduce_530 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_530 = happySpecReduce_1  190# happyReduction_530-happyReduction_530 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Unsafe) -> -	happyIn204-		 (Loc happy_var_1 "unsafe"-	)}--happyReduce_531 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_531 = happySpecReduce_1  190# happyReduction_531-happyReduction_531 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Interruptible) -> -	happyIn204-		 (Loc happy_var_1 "interruptible"-	)}--happyReduce_532 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_532 = happySpecReduce_1  190# happyReduction_532-happyReduction_532 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Threadsafe) -> -	happyIn204-		 (Loc happy_var_1 "threadsafe"-	)}--happyReduce_533 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_533 = happySpecReduce_1  190# happyReduction_533-happyReduction_533 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_StdCall) -> -	happyIn204-		 (Loc happy_var_1 "stdcall"-	)}--happyReduce_534 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_534 = happySpecReduce_1  190# happyReduction_534-happyReduction_534 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CCall) -> -	happyIn204-		 (Loc happy_var_1 "ccall"-	)}--happyReduce_535 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_535 = happySpecReduce_1  190# happyReduction_535-happyReduction_535 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CPlusPlus) -> -	happyIn204-		 (Loc happy_var_1 "cplusplus"-	)}--happyReduce_536 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_536 = happySpecReduce_1  190# happyReduction_536-happyReduction_536 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_DotNet) -> -	happyIn204-		 (Loc happy_var_1 "dotnet"-	)}--happyReduce_537 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_537 = happySpecReduce_1  190# happyReduction_537-happyReduction_537 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Jvm) -> -	happyIn204-		 (Loc happy_var_1 "jvm"-	)}--happyReduce_538 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_538 = happySpecReduce_1  190# happyReduction_538-happyReduction_538 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Js) -> -	happyIn204-		 (Loc happy_var_1 "js"-	)}--happyReduce_539 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_539 = happySpecReduce_1  190# happyReduction_539-happyReduction_539 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_JavaScript) -> -	happyIn204-		 (Loc happy_var_1 "javascript"-	)}--happyReduce_540 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_540 = happySpecReduce_1  190# happyReduction_540-happyReduction_540 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CApi) -> -	happyIn204-		 (Loc happy_var_1 "capi"-	)}--happyReduce_541 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_541 = happySpecReduce_1  190# happyReduction_541-happyReduction_541 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_As) -> -	happyIn204-		 (Loc happy_var_1 "as"-	)}--happyReduce_542 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_542 = happySpecReduce_1  190# happyReduction_542-happyReduction_542 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_By) -> -	happyIn204-		 (Loc happy_var_1 "by"-	)}--happyReduce_543 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_543 = happySpecReduce_1  190# happyReduction_543-happyReduction_543 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Case) -> -	happyIn204-		 (Loc happy_var_1 "case"-	)}--happyReduce_544 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_544 = happySpecReduce_1  190# happyReduction_544-happyReduction_544 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Default) -> -	happyIn204-		 (Loc happy_var_1 "default"-	)}--happyReduce_545 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_545 = happySpecReduce_1  190# happyReduction_545-happyReduction_545 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Deriving) -> -	happyIn204-		 (Loc happy_var_1 "deriving"-	)}--happyReduce_546 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_546 = happySpecReduce_1  190# happyReduction_546-happyReduction_546 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Do) -> -	happyIn204-		 (Loc happy_var_1 "do"-	)}--happyReduce_547 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_547 = happySpecReduce_1  190# happyReduction_547-happyReduction_547 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Else) -> -	happyIn204-		 (Loc happy_var_1 "else"-	)}--happyReduce_548 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_548 = happySpecReduce_1  190# happyReduction_548-happyReduction_548 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Family) -> -	happyIn204-		 (Loc happy_var_1 "family"-	)}--happyReduce_549 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_549 = happySpecReduce_1  190# happyReduction_549-happyReduction_549 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Forall) -> -	happyIn204-		 (Loc happy_var_1 "forall"-	)}--happyReduce_550 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_550 = happySpecReduce_1  190# happyReduction_550-happyReduction_550 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Group) -> -	happyIn204-		 (Loc happy_var_1 "group"-	)}--happyReduce_551 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_551 = happySpecReduce_1  190# happyReduction_551-happyReduction_551 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Hiding) -> -	happyIn204-		 (Loc happy_var_1 "hiding"-	)}--happyReduce_552 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_552 = happySpecReduce_1  190# happyReduction_552-happyReduction_552 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_If) -> -	happyIn204-		 (Loc happy_var_1 "if"-	)}--happyReduce_553 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_553 = happySpecReduce_1  190# happyReduction_553-happyReduction_553 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Import) -> -	happyIn204-		 (Loc happy_var_1 "import"-	)}--happyReduce_554 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_554 = happySpecReduce_1  190# happyReduction_554-happyReduction_554 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_In) -> -	happyIn204-		 (Loc happy_var_1 "in"-	)}--happyReduce_555 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_555 = happySpecReduce_1  190# happyReduction_555-happyReduction_555 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Infix) -> -	happyIn204-		 (Loc happy_var_1 "infix"-	)}--happyReduce_556 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_556 = happySpecReduce_1  190# happyReduction_556-happyReduction_556 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_InfixL) -> -	happyIn204-		 (Loc happy_var_1 "infixl"-	)}--happyReduce_557 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_557 = happySpecReduce_1  190# happyReduction_557-happyReduction_557 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_InfixR) -> -	happyIn204-		 (Loc happy_var_1 "infixr"-	)}--happyReduce_558 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_558 = happySpecReduce_1  190# happyReduction_558-happyReduction_558 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Instance) -> -	happyIn204-		 (Loc happy_var_1 "instance"-	)}--happyReduce_559 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_559 = happySpecReduce_1  190# happyReduction_559-happyReduction_559 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Let) -> -	happyIn204-		 (Loc happy_var_1 "let"-	)}--happyReduce_560 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_560 = happySpecReduce_1  190# happyReduction_560-happyReduction_560 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_MDo) -> -	happyIn204-		 (Loc happy_var_1 "mdo"-	)}--happyReduce_561 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_561 = happySpecReduce_1  190# happyReduction_561-happyReduction_561 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Module) -> -	happyIn204-		 (Loc happy_var_1 "module"-	)}--happyReduce_562 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_562 = happySpecReduce_1  190# happyReduction_562-happyReduction_562 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_NewType) -> -	happyIn204-		 (Loc happy_var_1 "newtype"-	)}--happyReduce_563 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_563 = happySpecReduce_1  190# happyReduction_563-happyReduction_563 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Of) -> -	happyIn204-		 (Loc happy_var_1 "of"-	)}--happyReduce_564 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_564 = happySpecReduce_1  190# happyReduction_564-happyReduction_564 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Proc) -> -	happyIn204-		 (Loc happy_var_1 "proc"-	)}--happyReduce_565 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_565 = happySpecReduce_1  190# happyReduction_565-happyReduction_565 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Rec) -> -	happyIn204-		 (Loc happy_var_1 "rec"-	)}--happyReduce_566 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_566 = happySpecReduce_1  190# happyReduction_566-happyReduction_566 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Then) -> -	happyIn204-		 (Loc happy_var_1 "then"-	)}--happyReduce_567 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_567 = happySpecReduce_1  190# happyReduction_567-happyReduction_567 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Using) -> -	happyIn204-		 (Loc happy_var_1 "using"-	)}--happyReduce_568 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_568 = happySpecReduce_1  190# happyReduction_568-happyReduction_568 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Where) -> -	happyIn204-		 (Loc happy_var_1 "where"-	)}--happyReduce_569 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_569 = happySpecReduce_1  190# happyReduction_569-happyReduction_569 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Qualified) -> -	happyIn204-		 (Loc happy_var_1 "qualified"-	)}--happyReduce_570 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_570 = happySpecReduce_2  191# happyReduction_570-happyReduction_570 happy_x_2-	happy_x_1-	 =  case happyOut205 happy_x_1 of { happy_var_1 -> -	case happyOut206 happy_x_2 of { happy_var_2 -> -	happyIn205-		 (happy_var_2 : happy_var_1-	)}}--happyReduce_571 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_571 = happySpecReduce_0  191# happyReduction_571-happyReduction_571  =  happyIn205-		 ([]-	)--happyReduce_572 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_572 = happySpecReduce_3  192# happyReduction_572-happyReduction_572 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut202 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Equals) -> -	case happyOut187 happy_x_3 of { happy_var_3 -> -	happyIn206-		 (XAttr (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_573 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_573 = happySpecReduce_1  193# happyReduction_573-happyReduction_573 happy_x_1-	 =  case happyOut187 happy_x_1 of { happy_var_1 -> -	happyIn207-		 (Just happy_var_1-	)}--happyReduce_574 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_574 = happySpecReduce_0  193# happyReduction_574-happyReduction_574  =  happyIn207-		 (Nothing-	)--happyReduce_575 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_575 = happySpecReduce_1  194# happyReduction_575-happyReduction_575 happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	happyIn208-		 (\l -> List l [happy_var_1]-	)}--happyReduce_576 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_576 = happySpecReduce_1  194# happyReduction_576-happyReduction_576 happy_x_1-	 =  case happyOut209 happy_x_1 of { happy_var_1 -> -	happyIn208-		 (\l -> let (ps,ss) = happy_var_1 in List (l <** reverse ss) (reverse ps)-	)}--happyReduce_577 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_577 = happySpecReduce_2  194# happyReduction_577-happyReduction_577 happy_x_2-	happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 DotDot) -> -	happyIn208-		 (\l -> EnumFrom       (l <** [happy_var_2]) happy_var_1-	)}}--happyReduce_578 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_578 = happyReduce 4# 194# happyReduction_578-happyReduction_578 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 DotDot) -> -	happyIn208-		 (\l -> EnumFromThen   (l <** [happy_var_2,happy_var_4]) happy_var_1 happy_var_3-	) `HappyStk` happyRest}}}}--happyReduce_579 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_579 = happySpecReduce_3  194# happyReduction_579-happyReduction_579 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 DotDot) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	happyIn208-		 (\l -> EnumFromTo     (l <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_580 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_580 = happyReduce 5# 194# happyReduction_580-happyReduction_580 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 DotDot) -> -	case happyOut175 happy_x_5 of { happy_var_5 -> -	happyIn208-		 (\l -> EnumFromThenTo (l <** [happy_var_2,happy_var_4]) happy_var_1 happy_var_3 happy_var_5-	) `HappyStk` happyRest}}}}}--happyReduce_581 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_581 = happySpecReduce_3  194# happyReduction_581-happyReduction_581 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> -	case happyOut210 happy_x_3 of { happy_var_3 -> -	happyIn208-		 (\l -> let (stss, ss) = happy_var_3 in ParComp (l <** (happy_var_2:ss)) happy_var_1 (reverse stss)-	)}}}--happyReduce_582 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_582 = happySpecReduce_3  195# 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 happyOut196 happy_x_3 of { happy_var_3 -> -	happyIn209-		 (let (es, ss) = happy_var_1 in (happy_var_3 : es, happy_var_2 : ss)-	)}}}--happyReduce_583 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_583 = happySpecReduce_3  195# happyReduction_583-happyReduction_583 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut196 happy_x_3 of { happy_var_3 -> -	happyIn209-		 (([happy_var_3,happy_var_1], [happy_var_2])-	)}}}--happyReduce_584 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_584 = happySpecReduce_3  196# happyReduction_584-happyReduction_584 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut210 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> -	case happyOut211 happy_x_3 of { happy_var_3 -> -	happyIn210-		 (let { (stss, ss1) = happy_var_1;-                                              (sts, ss2) = happy_var_3 }-                                         in (reverse sts : stss, ss1 ++ [happy_var_2] ++ reverse ss2)-	)}}}--happyReduce_585 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_585 = happySpecReduce_1  196# happyReduction_585-happyReduction_585 happy_x_1-	 =  case happyOut211 happy_x_1 of { happy_var_1 -> -	happyIn210-		 (let (sts, ss) = happy_var_1 in ([reverse sts], reverse ss)-	)}--happyReduce_586 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_586 = happySpecReduce_3  197# happyReduction_586-happyReduction_586 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut211 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut212 happy_x_3 of { happy_var_3 -> -	happyIn211-		 (let (sts, ss) = happy_var_1 in (happy_var_3 : sts, happy_var_2 : ss)-	)}}}--happyReduce_587 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_587 = happySpecReduce_1  197# happyReduction_587-happyReduction_587 happy_x_1-	 =  case happyOut212 happy_x_1 of { happy_var_1 -> -	happyIn211-		 (([happy_var_1],[])-	)}--happyReduce_588 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_588 = happySpecReduce_1  198# happyReduction_588-happyReduction_588 happy_x_1-	 =  case happyOut213 happy_x_1 of { happy_var_1 -> -	happyIn212-		 (happy_var_1-	)}--happyReduce_589 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_589 = happySpecReduce_1  198# happyReduction_589-happyReduction_589 happy_x_1-	 =  case happyOut215 happy_x_1 of { happy_var_1 -> -	happyIn212-		 (QualStmt (ann happy_var_1) happy_var_1-	)}--happyReduce_590 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_590 = happySpecReduce_2  199# happyReduction_590-happyReduction_590 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Then) -> -	case happyOut174 happy_x_2 of { happy_var_2 -> -	happyIn213-		 (ThenTrans    (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_591 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_591 = happyReduce 4# 199# happyReduction_591-happyReduction_591 (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 happyOut174 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 KW_By) -> -	case happyOut174 happy_x_4 of { happy_var_4 -> -	happyIn213-		 (ThenBy       (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]) happy_var_2 happy_var_4-	) `HappyStk` happyRest}}}}--happyReduce_592 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_592 = happyReduce 4# 199# happyReduction_592-happyReduction_592 (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 happyOut174 happy_x_4 of { happy_var_4 -> -	happyIn213-		 (GroupBy      (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_2,happy_var_3]) happy_var_4-	) `HappyStk` happyRest}}}}--happyReduce_593 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_593 = happyReduce 4# 199# happyReduction_593-happyReduction_593 (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 happyOut174 happy_x_4 of { happy_var_4 -> -	happyIn213-		 (GroupUsing   (nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_2,happy_var_3]) happy_var_4-	) `HappyStk` happyRest}}}}--happyReduce_594 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_594 = happyReduce 6# 199# happyReduction_594-happyReduction_594 (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 happyOut174 happy_x_4 of { happy_var_4 -> -	case happyOutTok happy_x_5 of { (Loc happy_var_5 KW_Using) -> -	case happyOut174 happy_x_6 of { happy_var_6 -> -	happyIn213-		 (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_595 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_595 = happySpecReduce_3  200# happyReduction_595-happyReduction_595 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut214 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut215 happy_x_3 of { happy_var_3 -> -	happyIn214-		 (let (sts, ss) = happy_var_1 in (happy_var_3 : sts, happy_var_2 : ss)-	)}}}--happyReduce_596 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_596 = happySpecReduce_1  200# happyReduction_596-happyReduction_596 happy_x_1-	 =  case happyOut215 happy_x_1 of { happy_var_1 -> -	happyIn214-		 (([happy_var_1],[])-	)}--happyReduce_597 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_597 = happySpecReduce_3  201# happyReduction_597-happyReduction_597 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut224 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftArrow) -> -	case happyOut174 happy_x_3 of { happy_var_3 -> -	happyIn215-		 (Generator (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_598 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_598 = happySpecReduce_1  201# happyReduction_598-happyReduction_598 happy_x_1-	 =  case happyOut174 happy_x_1 of { happy_var_1 -> -	happyIn215-		 (Qualifier (ann happy_var_1) happy_var_1-	)}--happyReduce_599 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_599 = happySpecReduce_2  201# happyReduction_599-happyReduction_599 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Let) -> -	case happyOut88 happy_x_2 of { happy_var_2 -> -	happyIn215-		 (LetStmt   (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_600 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_600 = happySpecReduce_0  202# happyReduction_600-happyReduction_600  =  happyIn216-		 (\l -> ParArray l []-	)--happyReduce_601 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_601 = happySpecReduce_1  202# happyReduction_601-happyReduction_601 happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	happyIn216-		 (\l -> ParArray l [happy_var_1]-	)}--happyReduce_602 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_602 = happySpecReduce_1  202# happyReduction_602-happyReduction_602 happy_x_1-	 =  case happyOut209 happy_x_1 of { happy_var_1 -> -	happyIn216-		 (\l -> let (ps,ss) = happy_var_1 in ParArray (l <** reverse ss) (reverse ps)-	)}--happyReduce_603 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_603 = happySpecReduce_3  202# happyReduction_603-happyReduction_603 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 DotDot) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	happyIn216-		 (\l -> ParArrayFromTo     (l <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_604 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_604 = happyReduce 5# 202# happyReduction_604-happyReduction_604 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 DotDot) -> -	case happyOut175 happy_x_5 of { happy_var_5 -> -	happyIn216-		 (\l -> ParArrayFromThenTo (l <** [happy_var_2,happy_var_4]) happy_var_1 happy_var_3 happy_var_5-	) `HappyStk` happyRest}}}}}--happyReduce_605 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_605 = happySpecReduce_3  202# happyReduction_605-happyReduction_605 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut196 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Bar) -> -	case happyOut210 happy_x_3 of { happy_var_3 -> -	happyIn216-		 (\l -> let (stss, ss) = happy_var_3 in ParArrayComp (l <** (happy_var_2:ss)) happy_var_1 (reverse stss)-	)}}}--happyReduce_606 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_606 = happySpecReduce_3  203# happyReduction_606-happyReduction_606 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> -	case happyOut218 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> -	happyIn217-		 ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3])-	)}}}--happyReduce_607 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_607 = happySpecReduce_3  203# happyReduction_607-happyReduction_607 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut272 happy_x_1 of { happy_var_1 -> -	case happyOut218 happy_x_2 of { happy_var_2 -> -	case happyOut273 happy_x_3 of { happy_var_3 -> -	happyIn217-		 (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_608 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_608 = happyMonadReduce 2# 203# happyReduction_608-happyReduction_608 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 RightCurly) -> -	( do { checkEnabled EmptyCase;-                                              return ([], happy_var_1 <^^> happy_var_2, [happy_var_1, happy_var_2]) })}})-	) (\r -> happyReturn (happyIn217 r))--happyReduce_609 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_609 = happySpecReduce_3  204# happyReduction_609-happyReduction_609 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut219 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn218-		 ((reverse $ fst happy_var_2, happy_var_1 ++ snd happy_var_2 ++ happy_var_3)-	)}}}--happyReduce_610 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_610 = happySpecReduce_3  205# happyReduction_610-happyReduction_610 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut219 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_2 of { happy_var_2 -> -	case happyOut220 happy_x_3 of { happy_var_3 -> -	happyIn219-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ happy_var_2)-	)}}}--happyReduce_611 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_611 = happySpecReduce_1  205# happyReduction_611-happyReduction_611 happy_x_1-	 =  case happyOut220 happy_x_1 of { happy_var_1 -> -	happyIn219-		 (([happy_var_1],[])-	)}--happyReduce_612 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_612 = happySpecReduce_3  206# happyReduction_612-happyReduction_612 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut224 happy_x_1 of { happy_var_1 -> -	case happyOut221 happy_x_2 of { happy_var_2 -> -	case happyOut169 happy_x_3 of { happy_var_3 -> -	happyIn220-		 (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_613 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_613 = happySpecReduce_2  207# happyReduction_613-happyReduction_613 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 RightArrow) -> -	case happyOut174 happy_x_2 of { happy_var_2 -> -	happyIn221-		 (UnGuardedRhs (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_614 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_614 = happySpecReduce_1  207# happyReduction_614-happyReduction_614 happy_x_1-	 =  case happyOut222 happy_x_1 of { happy_var_1 -> -	happyIn221-		 (GuardedRhss  (snd happy_var_1) (reverse $ fst happy_var_1)-	)}--happyReduce_615 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_615 = happySpecReduce_2  208# happyReduction_615-happyReduction_615 happy_x_2-	happy_x_1-	 =  case happyOut222 happy_x_1 of { happy_var_1 -> -	case happyOut223 happy_x_2 of { happy_var_2 -> -	happyIn222-		 ((happy_var_2 : fst happy_var_1, snd happy_var_1 <++> ann happy_var_2)-	)}}--happyReduce_616 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_616 = happySpecReduce_1  208# happyReduction_616-happyReduction_616 happy_x_1-	 =  case happyOut223 happy_x_1 of { happy_var_1 -> -	happyIn222-		 (([happy_var_1], ann happy_var_1)-	)}--happyReduce_617 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_617 = happyMonadReduce 4# 209# happyReduction_617-happyReduction_617 (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 happyOut214 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightArrow) -> -	case happyOut174 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 (happyIn223 r))--happyReduce_618 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_618 = happyMonadReduce 1# 210# happyReduction_618-happyReduction_618 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut175 happy_x_1 of { happy_var_1 -> -	( checkPattern happy_var_1)})-	) (\r -> happyReturn (happyIn224 r))--happyReduce_619 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_619 = happyMonadReduce 2# 210# happyReduction_619-happyReduction_619 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> -	case happyOut187 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 (happyIn224 r))--happyReduce_620 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_620 = happySpecReduce_3  211# happyReduction_620-happyReduction_620 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> -	case happyOut226 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> -	happyIn225-		 ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3])-	)}}}--happyReduce_621 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_621 = happySpecReduce_3  211# happyReduction_621-happyReduction_621 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut272 happy_x_1 of { happy_var_1 -> -	case happyOut226 happy_x_2 of { happy_var_2 -> -	case happyOut273 happy_x_3 of { happy_var_3 -> -	happyIn225-		 (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_622 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_622 = happySpecReduce_3  212# happyReduction_622-happyReduction_622 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut227 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn226-		 ((reverse $ fst happy_var_2, happy_var_1 ++ snd happy_var_2 ++ happy_var_3)-	)}}}--happyReduce_623 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_623 = happySpecReduce_3  213# happyReduction_623-happyReduction_623 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut227 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	case happyOut223 happy_x_3 of { happy_var_3 -> -	happyIn227-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ happy_var_2)-	)}}}--happyReduce_624 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_624 = happySpecReduce_1  213# happyReduction_624-happyReduction_624 happy_x_1-	 =  case happyOut223 happy_x_1 of { happy_var_1 -> -	happyIn227-		 (([happy_var_1], [])-	)}--happyReduce_625 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_625 = happySpecReduce_3  214# happyReduction_625-happyReduction_625 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftCurly) -> -	case happyOut229 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightCurly) -> -	happyIn228-		 ((fst happy_var_2, happy_var_1 <^^> happy_var_3, happy_var_1:snd happy_var_2 ++ [happy_var_3])-	)}}}--happyReduce_626 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_626 = happySpecReduce_3  214# happyReduction_626-happyReduction_626 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut272 happy_x_1 of { happy_var_1 -> -	case happyOut229 happy_x_2 of { happy_var_2 -> -	case happyOut273 happy_x_3 of { happy_var_3 -> -	happyIn228-		 (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_627 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_627 = happySpecReduce_2  215# happyReduction_627-happyReduction_627 happy_x_2-	happy_x_1-	 =  case happyOut231 happy_x_1 of { happy_var_1 -> -	case happyOut230 happy_x_2 of { happy_var_2 -> -	happyIn229-		 ((happy_var_1 : fst happy_var_2, snd happy_var_2)-	)}}--happyReduce_628 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_628 = happySpecReduce_2  215# happyReduction_628-happyReduction_628 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 SemiColon) -> -	case happyOut229 happy_x_2 of { happy_var_2 -> -	happyIn229-		 ((fst happy_var_2, happy_var_1 : snd happy_var_2)-	)}}--happyReduce_629 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_629 = happySpecReduce_0  215# happyReduction_629-happyReduction_629  =  happyIn229-		 (([],[])-	)--happyReduce_630 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_630 = happySpecReduce_2  216# happyReduction_630-happyReduction_630 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 SemiColon) -> -	case happyOut229 happy_x_2 of { happy_var_2 -> -	happyIn230-		 ((fst happy_var_2, happy_var_1 : snd happy_var_2)-	)}}--happyReduce_631 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_631 = happySpecReduce_0  216# happyReduction_631-happyReduction_631  =  happyIn230-		 (([],[])-	)--happyReduce_632 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_632 = happySpecReduce_2  217# happyReduction_632-happyReduction_632 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Let) -> -	case happyOut88 happy_x_2 of { happy_var_2 -> -	happyIn231-		 (LetStmt (nIS happy_var_1 <++> ann happy_var_2 <** [happy_var_1]) happy_var_2-	)}}--happyReduce_633 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_633 = happySpecReduce_3  217# happyReduction_633-happyReduction_633 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut224 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftArrow) -> -	case happyOut174 happy_x_3 of { happy_var_3 -> -	happyIn231-		 (Generator (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_634 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_634 = happySpecReduce_1  217# happyReduction_634-happyReduction_634 happy_x_1-	 =  case happyOut174 happy_x_1 of { happy_var_1 -> -	happyIn231-		 (Qualifier (ann happy_var_1) happy_var_1-	)}--happyReduce_635 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_635 = happySpecReduce_2  217# happyReduction_635-happyReduction_635 happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Rec) -> -	case happyOut228 happy_x_2 of { happy_var_2 -> -	happyIn231-		 (let (stms,inf,ss) = happy_var_2 in RecStmt (nIS happy_var_1 <++> inf <** happy_var_1:ss) stms-	)}}--happyReduce_636 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_636 = happySpecReduce_3  218# happyReduction_636-happyReduction_636 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut233 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut232 happy_x_3 of { happy_var_3 -> -	happyIn232-		 (let (fbs, ss) = happy_var_3 in (happy_var_1 : fbs, happy_var_2 : ss)-	)}}}--happyReduce_637 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_637 = happySpecReduce_1  218# happyReduction_637-happyReduction_637 happy_x_1-	 =  case happyOut233 happy_x_1 of { happy_var_1 -> -	happyIn232-		 (([happy_var_1],[])-	)}--happyReduce_638 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_638 = happyMonadReduce 1# 218# happyReduction_638-happyReduction_638 (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 (happyIn232 r))--happyReduce_639 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_639 = happySpecReduce_3  219# happyReduction_639-happyReduction_639 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut243 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Equals) -> -	case happyOut175 happy_x_3 of { happy_var_3 -> -	happyIn233-		 (FieldUpdate (happy_var_1 <>happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_640 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_640 = happyMonadReduce 1# 219# happyReduction_640-happyReduction_640 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut243 happy_x_1 of { happy_var_1 -> -	( checkEnabled NamedFieldPuns >> checkQualOrUnQual happy_var_1 >>= return . FieldPun (ann happy_var_1))})-	) (\r -> happyReturn (happyIn233 r))--happyReduce_641 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_641 = happySpecReduce_3  220# happyReduction_641-happyReduction_641 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut28 happy_x_1 of { happy_var_1 -> -	case happyOut235 happy_x_2 of { happy_var_2 -> -	case happyOut28 happy_x_3 of { happy_var_3 -> -	happyIn234-		 ((reverse (fst happy_var_2), reverse happy_var_1 ++ snd happy_var_2 ++ reverse happy_var_3)-	)}}}--happyReduce_642 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_642 = happySpecReduce_3  221# happyReduction_642-happyReduction_642 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut235 happy_x_1 of { happy_var_1 -> -	case happyOut27 happy_x_2 of { happy_var_2 -> -	case happyOut236 happy_x_3 of { happy_var_3 -> -	happyIn235-		 ((happy_var_3 : fst happy_var_1, snd happy_var_1 ++ reverse happy_var_2)-	)}}}--happyReduce_643 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_643 = happySpecReduce_1  221# happyReduction_643-happyReduction_643 happy_x_1-	 =  case happyOut236 happy_x_1 of { happy_var_1 -> -	happyIn235-		 (([happy_var_1],[])-	)}--happyReduce_644 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_644 = happySpecReduce_3  222# happyReduction_644-happyReduction_644 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut244 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Equals) -> -	case happyOut174 happy_x_3 of { happy_var_3 -> -	happyIn236-		 (IPBind (happy_var_1 <> happy_var_3 <** [happy_var_2]) happy_var_1 happy_var_3-	)}}}--happyReduce_645 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_645 = happySpecReduce_1  223# happyReduction_645-happyReduction_645 happy_x_1-	 =  case happyOut240 happy_x_1 of { happy_var_1 -> -	happyIn237-		 (happy_var_1-	)}--happyReduce_646 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_646 = happySpecReduce_1  223# happyReduction_646-happyReduction_646 happy_x_1-	 =  case happyOut247 happy_x_1 of { happy_var_1 -> -	happyIn237-		 (Con (ann happy_var_1) happy_var_1-	)}--happyReduce_647 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_647 = happySpecReduce_1  224# happyReduction_647-happyReduction_647 happy_x_1-	 =  case happyOut239 happy_x_1 of { happy_var_1 -> -	happyIn238-		 (happy_var_1-	)}--happyReduce_648 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_648 = happySpecReduce_1  224# happyReduction_648-happyReduction_648 happy_x_1-	 =  case happyOut247 happy_x_1 of { happy_var_1 -> -	happyIn238-		 (Con (ann happy_var_1) happy_var_1-	)}--happyReduce_649 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_649 = happySpecReduce_2  225# happyReduction_649-happyReduction_649 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) -> -	happyIn239-		 (p_unit_con              (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2])-	)}}--happyReduce_650 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_650 = happySpecReduce_2  225# happyReduction_650-happyReduction_650 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) -> -	happyIn239-		 (p_unboxed_singleton_con (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2])-	)}}--happyReduce_651 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_651 = happySpecReduce_3  225# happyReduction_651-happyReduction_651 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftHashParen) -> -	case happyOut193 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightHashParen) -> -	happyIn239-		 (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_652 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_652 = happySpecReduce_3  225# happyReduction_652-happyReduction_652 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut193 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn239-		 (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_653 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_653 = happySpecReduce_2  226# happyReduction_653-happyReduction_653 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) -> -	happyIn240-		 (List                    (happy_var_1 <^^> happy_var_2 <** [happy_var_1,happy_var_2]) []-	)}}--happyReduce_654 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_654 = happySpecReduce_1  226# happyReduction_654-happyReduction_654 happy_x_1-	 =  case happyOut239 happy_x_1 of { happy_var_1 -> -	happyIn240-		 (happy_var_1-	)}--happyReduce_655 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_655 = happySpecReduce_1  227# happyReduction_655-happyReduction_655 happy_x_1-	 =  case happyOut260 happy_x_1 of { happy_var_1 -> -	happyIn241-		 (happy_var_1-	)}--happyReduce_656 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_656 = happySpecReduce_3  227# happyReduction_656-happyReduction_656 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut268 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn241-		 (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2-	)}}}--happyReduce_657 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_657 = happySpecReduce_1  228# happyReduction_657-happyReduction_657 happy_x_1-	 =  case happyOut259 happy_x_1 of { happy_var_1 -> -	happyIn242-		 (happy_var_1-	)}--happyReduce_658 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_658 = happySpecReduce_3  228# happyReduction_658-happyReduction_658 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut268 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn242-		 (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2-	)}}}--happyReduce_659 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_659 = happySpecReduce_1  229# happyReduction_659-happyReduction_659 happy_x_1-	 =  case happyOut258 happy_x_1 of { happy_var_1 -> -	happyIn243-		 (happy_var_1-	)}--happyReduce_660 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_660 = happySpecReduce_3  229# happyReduction_660-happyReduction_660 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut266 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn243-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2-	)}}}--happyReduce_661 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_661 = happySpecReduce_1  230# happyReduction_661-happyReduction_661 happy_x_1-	 =  case happyOut261 happy_x_1 of { happy_var_1 -> -	happyIn244-		 (happy_var_1-	)}--happyReduce_662 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_662 = happySpecReduce_1  231# happyReduction_662-happyReduction_662 happy_x_1-	 =  case happyOut263 happy_x_1 of { happy_var_1 -> -	happyIn245-		 (happy_var_1-	)}--happyReduce_663 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_663 = happySpecReduce_3  231# happyReduction_663-happyReduction_663 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut265 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn245-		 (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2-	)}}}--happyReduce_664 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_664 = happySpecReduce_1  232# happyReduction_664-happyReduction_664 happy_x_1-	 =  case happyOut245 happy_x_1 of { happy_var_1 -> -	happyIn246-		 (([], [happy_var_1])-	)}--happyReduce_665 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_665 = happySpecReduce_3  232# happyReduction_665-happyReduction_665 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut245 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut246 happy_x_3 of { happy_var_3 -> -	happyIn246-		 (let (ss, cs) = happy_var_3-                                in (happy_var_2 : ss, happy_var_1 :cs)-	)}}}--happyReduce_666 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_666 = happySpecReduce_1  233# happyReduction_666-happyReduction_666 happy_x_1-	 =  case happyOut262 happy_x_1 of { happy_var_1 -> -	happyIn247-		 (happy_var_1-	)}--happyReduce_667 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_667 = happySpecReduce_3  233# happyReduction_667-happyReduction_667 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 LeftParen) -> -	case happyOut256 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 RightParen) -> -	happyIn247-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2-	)}}}--happyReduce_668 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_668 = happySpecReduce_1  234# happyReduction_668-happyReduction_668 happy_x_1-	 =  case happyOut268 happy_x_1 of { happy_var_1 -> -	happyIn248-		 (happy_var_1-	)}--happyReduce_669 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_669 = happySpecReduce_3  234# happyReduction_669-happyReduction_669 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> -	case happyOut260 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> -	happyIn248-		 (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2-	)}}}--happyReduce_670 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_670 = happySpecReduce_1  235# happyReduction_670-happyReduction_670 happy_x_1-	 =  case happyOut266 happy_x_1 of { happy_var_1 -> -	happyIn249-		 (happy_var_1-	)}--happyReduce_671 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_671 = happySpecReduce_3  235# happyReduction_671-happyReduction_671 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> -	case happyOut258 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> -	happyIn249-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2-	)}}}--happyReduce_672 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_672 = happySpecReduce_1  236# happyReduction_672-happyReduction_672 happy_x_1-	 =  case happyOut267 happy_x_1 of { happy_var_1 -> -	happyIn250-		 (happy_var_1-	)}--happyReduce_673 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_673 = happySpecReduce_3  236# happyReduction_673-happyReduction_673 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> -	case happyOut258 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> -	happyIn250-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2-	)}}}--happyReduce_674 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_674 = happySpecReduce_1  237# happyReduction_674-happyReduction_674 happy_x_1-	 =  case happyOut265 happy_x_1 of { happy_var_1 -> -	happyIn251-		 (happy_var_1-	)}--happyReduce_675 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_675 = happySpecReduce_3  237# happyReduction_675-happyReduction_675 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> -	case happyOut263 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> -	happyIn251-		 (fmap (const (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3])) happy_var_2-	)}}}--happyReduce_676 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_676 = happySpecReduce_1  238# happyReduction_676-happyReduction_676 happy_x_1-	 =  case happyOut256 happy_x_1 of { happy_var_1 -> -	happyIn252-		 (happy_var_1-	)}--happyReduce_677 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_677 = happySpecReduce_3  238# happyReduction_677-happyReduction_677 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> -	case happyOut262 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> -	happyIn252-		 (updateQNameLoc (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2-	)}}}--happyReduce_678 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_678 = happySpecReduce_1  239# happyReduction_678-happyReduction_678 happy_x_1-	 =  case happyOut248 happy_x_1 of { happy_var_1 -> -	happyIn253-		 (VarOp (ann happy_var_1) happy_var_1-	)}--happyReduce_679 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_679 = happySpecReduce_1  239# happyReduction_679-happyReduction_679 happy_x_1-	 =  case happyOut251 happy_x_1 of { happy_var_1 -> -	happyIn253-		 (ConOp (ann happy_var_1) happy_var_1-	)}--happyReduce_680 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_680 = happySpecReduce_1  240# happyReduction_680-happyReduction_680 happy_x_1-	 =  case happyOut249 happy_x_1 of { happy_var_1 -> -	happyIn254-		 (QVarOp (ann happy_var_1) happy_var_1-	)}--happyReduce_681 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_681 = happySpecReduce_1  240# happyReduction_681-happyReduction_681 happy_x_1-	 =  case happyOut252 happy_x_1 of { happy_var_1 -> -	happyIn254-		 (QConOp (ann happy_var_1) happy_var_1-	)}--happyReduce_682 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_682 = happySpecReduce_1  241# happyReduction_682-happyReduction_682 happy_x_1-	 =  case happyOut250 happy_x_1 of { happy_var_1 -> -	happyIn255-		 (QVarOp (ann happy_var_1) happy_var_1-	)}--happyReduce_683 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_683 = happySpecReduce_1  241# happyReduction_683-happyReduction_683 happy_x_1-	 =  case happyOut252 happy_x_1 of { happy_var_1 -> -	happyIn255-		 (QConOp (ann happy_var_1) happy_var_1-	)}--happyReduce_684 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_684 = happySpecReduce_1  242# happyReduction_684-happyReduction_684 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Colon) -> -	happyIn256-		 (list_cons_name (nIS happy_var_1)-	)}--happyReduce_685 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_685 = happySpecReduce_1  242# happyReduction_685-happyReduction_685 happy_x_1-	 =  case happyOut264 happy_x_1 of { happy_var_1 -> -	happyIn256-		 (happy_var_1-	)}--happyReduce_686 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_686 = happySpecReduce_1  243# happyReduction_686-happyReduction_686 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn257-		 (let Loc l (LabelVarId v) = happy_var_1 in OverloadedLabel-                                                                     (nIS l) v-	)}--happyReduce_687 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_687 = happySpecReduce_1  244# happyReduction_687-happyReduction_687 happy_x_1-	 =  case happyOut260 happy_x_1 of { happy_var_1 -> -	happyIn258-		 (UnQual (ann happy_var_1) happy_var_1-	)}--happyReduce_688 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_688 = happySpecReduce_1  244# happyReduction_688-happyReduction_688 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn258-		 (let {Loc l (QVarId q) = happy_var_1; nis = nIS l}-                                 in Qual nis (ModuleName nis (fst q)) (Ident nis (snd q))-	)}--happyReduce_689 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_689 = happySpecReduce_1  244# happyReduction_689-happyReduction_689 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Underscore) -> -	happyIn258-		 (hole_name       (nIS happy_var_1)-	)}--happyReduce_690 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_690 = happySpecReduce_1  245# happyReduction_690-happyReduction_690 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn259-		 (let Loc l (VarId v) = happy_var_1 in Ident (nIS l) v-	)}--happyReduce_691 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_691 = happySpecReduce_1  245# happyReduction_691-happyReduction_691 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_As) -> -	happyIn259-		 (as_name         (nIS happy_var_1)-	)}--happyReduce_692 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_692 = happySpecReduce_1  245# happyReduction_692-happyReduction_692 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Qualified) -> -	happyIn259-		 (qualified_name  (nIS happy_var_1)-	)}--happyReduce_693 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_693 = happySpecReduce_1  245# happyReduction_693-happyReduction_693 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Hiding) -> -	happyIn259-		 (hiding_name     (nIS happy_var_1)-	)}--happyReduce_694 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_694 = happySpecReduce_1  245# happyReduction_694-happyReduction_694 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Export) -> -	happyIn259-		 (export_name     (nIS happy_var_1)-	)}--happyReduce_695 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_695 = happySpecReduce_1  245# happyReduction_695-happyReduction_695 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_StdCall) -> -	happyIn259-		 (stdcall_name    (nIS happy_var_1)-	)}--happyReduce_696 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_696 = happySpecReduce_1  245# happyReduction_696-happyReduction_696 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CCall) -> -	happyIn259-		 (ccall_name      (nIS happy_var_1)-	)}--happyReduce_697 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_697 = happySpecReduce_1  245# happyReduction_697-happyReduction_697 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CPlusPlus) -> -	happyIn259-		 (cplusplus_name  (nIS happy_var_1)-	)}--happyReduce_698 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_698 = happySpecReduce_1  245# happyReduction_698-happyReduction_698 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_DotNet) -> -	happyIn259-		 (dotnet_name     (nIS happy_var_1)-	)}--happyReduce_699 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_699 = happySpecReduce_1  245# happyReduction_699-happyReduction_699 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Jvm) -> -	happyIn259-		 (jvm_name        (nIS happy_var_1)-	)}--happyReduce_700 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_700 = happySpecReduce_1  245# happyReduction_700-happyReduction_700 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Js) -> -	happyIn259-		 (js_name         (nIS happy_var_1)-	)}--happyReduce_701 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_701 = happySpecReduce_1  245# happyReduction_701-happyReduction_701 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_JavaScript) -> -	happyIn259-		 (javascript_name (nIS happy_var_1)-	)}--happyReduce_702 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_702 = happySpecReduce_1  245# happyReduction_702-happyReduction_702 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_CApi) -> -	happyIn259-		 (capi_name       (nIS happy_var_1)-	)}--happyReduce_703 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_703 = happySpecReduce_1  245# happyReduction_703-happyReduction_703 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Stock) -> -	happyIn259-		 (stock_name      (nIS happy_var_1)-	)}--happyReduce_704 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_704 = happySpecReduce_1  245# happyReduction_704-happyReduction_704 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Anyclass) -> -	happyIn259-		 (anyclass_name   (nIS happy_var_1)-	)}--happyReduce_705 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_705 = happySpecReduce_1  246# happyReduction_705-happyReduction_705 happy_x_1-	 =  case happyOut259 happy_x_1 of { happy_var_1 -> -	happyIn260-		 (happy_var_1-	)}--happyReduce_706 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_706 = happySpecReduce_1  246# happyReduction_706-happyReduction_706 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Safe) -> -	happyIn260-		 (safe_name       (nIS happy_var_1)-	)}--happyReduce_707 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_707 = happySpecReduce_1  246# happyReduction_707-happyReduction_707 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Unsafe) -> -	happyIn260-		 (unsafe_name     (nIS happy_var_1)-	)}--happyReduce_708 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_708 = happySpecReduce_1  246# happyReduction_708-happyReduction_708 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Interruptible) -> -	happyIn260-		 (interruptible_name (nIS happy_var_1)-	)}--happyReduce_709 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_709 = happySpecReduce_1  246# happyReduction_709-happyReduction_709 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Threadsafe) -> -	happyIn260-		 (threadsafe_name (nIS happy_var_1)-	)}--happyReduce_710 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_710 = happySpecReduce_1  246# happyReduction_710-happyReduction_710 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Forall) -> -	happyIn260-		 (forall_name	  (nIS happy_var_1)-	)}--happyReduce_711 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_711 = happySpecReduce_1  246# happyReduction_711-happyReduction_711 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Family) -> -	happyIn260-		 (family_name     (nIS happy_var_1)-	)}--happyReduce_712 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_712 = happySpecReduce_1  246# happyReduction_712-happyReduction_712 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Role) -> -	happyIn260-		 (role_name  (nIS happy_var_1)-	)}--happyReduce_713 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_713 = happySpecReduce_1  247# happyReduction_713-happyReduction_713 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn261-		 (let Loc l (IDupVarId i) = happy_var_1 in IPDup (nIS l) i-	)}--happyReduce_714 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_714 = happySpecReduce_1  247# happyReduction_714-happyReduction_714 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn261-		 (let Loc l (ILinVarId i) = happy_var_1 in IPLin (nIS l) i-	)}--happyReduce_715 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_715 = happySpecReduce_1  248# happyReduction_715-happyReduction_715 happy_x_1-	 =  case happyOut263 happy_x_1 of { happy_var_1 -> -	happyIn262-		 (UnQual (ann happy_var_1) happy_var_1-	)}--happyReduce_716 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_716 = happySpecReduce_1  248# happyReduction_716-happyReduction_716 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn262-		 (let {Loc l (QConId q) = happy_var_1; nis = nIS l} in Qual nis (ModuleName nis (fst q)) (Ident nis (snd q))-	)}--happyReduce_717 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_717 = happySpecReduce_1  249# happyReduction_717-happyReduction_717 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn263-		 (let Loc l (ConId c) = happy_var_1 in Ident (nIS l) c-	)}--happyReduce_718 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_718 = happySpecReduce_1  250# happyReduction_718-happyReduction_718 happy_x_1-	 =  case happyOut265 happy_x_1 of { happy_var_1 -> -	happyIn264-		 (UnQual (ann happy_var_1) happy_var_1-	)}--happyReduce_719 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_719 = happySpecReduce_1  250# happyReduction_719-happyReduction_719 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn264-		 (let {Loc l (QConSym q) = happy_var_1; nis = nIS l} in Qual nis (ModuleName nis (fst q)) (Symbol nis (snd q))-	)}--happyReduce_720 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_720 = happySpecReduce_1  251# happyReduction_720-happyReduction_720 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn265-		 (let Loc l (ConSym c) = happy_var_1 in Symbol (nIS l) c-	)}--happyReduce_721 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_721 = happySpecReduce_1  252# happyReduction_721-happyReduction_721 happy_x_1-	 =  case happyOut268 happy_x_1 of { happy_var_1 -> -	happyIn266-		 (UnQual (ann happy_var_1) happy_var_1-	)}--happyReduce_722 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_722 = happySpecReduce_1  252# happyReduction_722-happyReduction_722 happy_x_1-	 =  case happyOut270 happy_x_1 of { happy_var_1 -> -	happyIn266-		 (happy_var_1-	)}--happyReduce_723 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_723 = happySpecReduce_1  253# happyReduction_723-happyReduction_723 happy_x_1-	 =  case happyOut269 happy_x_1 of { happy_var_1 -> -	happyIn267-		 (UnQual (ann happy_var_1) happy_var_1-	)}--happyReduce_724 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_724 = happySpecReduce_1  253# happyReduction_724-happyReduction_724 happy_x_1-	 =  case happyOut270 happy_x_1 of { happy_var_1 -> -	happyIn267-		 (happy_var_1-	)}--happyReduce_725 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_725 = happySpecReduce_1  254# happyReduction_725-happyReduction_725 happy_x_1-	 =  case happyOut269 happy_x_1 of { happy_var_1 -> -	happyIn268-		 (happy_var_1-	)}--happyReduce_726 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_726 = happySpecReduce_1  254# happyReduction_726-happyReduction_726 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Minus) -> -	happyIn268-		 (minus_name (nIS happy_var_1)-	)}--happyReduce_727 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_727 = happySpecReduce_1  255# happyReduction_727-happyReduction_727 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn269-		 (let Loc l (VarSym v) = happy_var_1 in Symbol (nIS l) v-	)}--happyReduce_728 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_728 = happySpecReduce_1  255# happyReduction_728-happyReduction_728 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Exclamation) -> -	happyIn269-		 (bang_name (nIS happy_var_1)-	)}--happyReduce_729 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_729 = happySpecReduce_1  255# happyReduction_729-happyReduction_729 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Dot) -> -	happyIn269-		 (dot_name  (nIS happy_var_1)-	)}--happyReduce_730 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_730 = happySpecReduce_1  255# happyReduction_730-happyReduction_730 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Star) -> -	happyIn269-		 (star_name (nIS happy_var_1)-	)}--happyReduce_731 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_731 = happySpecReduce_1  256# happyReduction_731-happyReduction_731 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn270-		 (let {Loc l (QVarSym q) = happy_var_1; nis = nIS l} in Qual nis (ModuleName nis (fst q)) (Symbol nis (snd q))-	)}--happyReduce_732 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_732 = happySpecReduce_1  257# happyReduction_732-happyReduction_732 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn271-		 (let Loc l (IntTok        (i,raw)) = happy_var_1 in Int        (nIS l) i raw-	)}--happyReduce_733 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_733 = happySpecReduce_1  257# happyReduction_733-happyReduction_733 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn271-		 (let Loc l (Character     (c,raw)) = happy_var_1 in Char       (nIS l) c raw-	)}--happyReduce_734 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_734 = happySpecReduce_1  257# happyReduction_734-happyReduction_734 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn271-		 (let Loc l (FloatTok      (r,raw)) = happy_var_1 in Frac       (nIS l) r raw-	)}--happyReduce_735 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_735 = happySpecReduce_1  257# happyReduction_735-happyReduction_735 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn271-		 (let Loc l (StringTok     (s,raw)) = happy_var_1 in String     (nIS l) s raw-	)}--happyReduce_736 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_736 = happySpecReduce_1  257# happyReduction_736-happyReduction_736 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn271-		 (let Loc l (IntTokHash    (i,raw)) = happy_var_1 in PrimInt    (nIS l) i raw-	)}--happyReduce_737 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_737 = happySpecReduce_1  257# happyReduction_737-happyReduction_737 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn271-		 (let Loc l (WordTokHash   (w,raw)) = happy_var_1 in PrimWord   (nIS l) w raw-	)}--happyReduce_738 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_738 = happySpecReduce_1  257# happyReduction_738-happyReduction_738 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn271-		 (let Loc l (FloatTokHash  (f,raw)) = happy_var_1 in PrimFloat  (nIS l) f raw-	)}--happyReduce_739 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_739 = happySpecReduce_1  257# happyReduction_739-happyReduction_739 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn271-		 (let Loc l (DoubleTokHash (d,raw)) = happy_var_1 in PrimDouble (nIS l) d raw-	)}--happyReduce_740 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_740 = happySpecReduce_1  257# happyReduction_740-happyReduction_740 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn271-		 (let Loc l (CharacterHash (c,raw)) = happy_var_1 in PrimChar   (nIS l) c raw-	)}--happyReduce_741 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_741 = happySpecReduce_1  257# happyReduction_741-happyReduction_741 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn271-		 (let Loc l (StringHash    (s,raw)) = happy_var_1 in PrimString (nIS l) s raw-	)}--happyReduce_742 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_742 = happyMonadReduce 0# 258# happyReduction_742-happyReduction_742 (happyRest) tk-	 = happyThen ((( pushCurrentContext >> getSrcLoc >>= \s -> return $ mkSrcSpan s s {- >>= \x -> trace (show x) (return x) -}))-	) (\r -> happyReturn (happyIn272 r))--happyReduce_743 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_743 = happySpecReduce_1  259# happyReduction_743-happyReduction_743 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 VRightCurly) -> -	happyIn273-		 (happy_var_1 {- >>= \x -> trace (show x ++ show x ++ show x) (return x) -}-	)}--happyReduce_744 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_744 = happyMonadReduce 1# 259# happyReduction_744-happyReduction_744 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((( popContext >> getSrcLoc >>= \s -> return $ mkSrcSpan s s {- >>= \x -> trace (show x ++ show x) (return x) -}))-	) (\r -> happyReturn (happyIn273 r))--happyReduce_745 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_745 = happyMonadReduce 1# 260# happyReduction_745-happyReduction_745 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut275 happy_x_1 of { happy_var_1 -> -	( checkEnabled PatternSynonyms >> return happy_var_1)})-	) (\r -> happyReturn (happyIn274 r))--happyReduce_746 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_746 = happyReduce 4# 261# happyReduction_746-happyReduction_746 (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_Pattern) -> -	case happyOut276 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 Equals) -> -	case happyOut224 happy_x_4 of { happy_var_4 -> -	happyIn275-		 (let l = nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]-             in PatSyn l happy_var_2 happy_var_4 ImplicitBidirectional-	) `HappyStk` happyRest}}}}--happyReduce_747 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_747 = happyReduce 4# 261# happyReduction_747-happyReduction_747 (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_Pattern) -> -	case happyOut276 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 LeftArrow) -> -	case happyOut224 happy_x_4 of { happy_var_4 -> -	happyIn275-		 (let l = nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1,happy_var_3]-               in PatSyn l happy_var_2 happy_var_4 Unidirectional-	) `HappyStk` happyRest}}}}--happyReduce_748 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_748 = happyReduce 5# 261# happyReduction_748-happyReduction_748 (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_Pattern) -> -	case happyOut276 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 LeftArrow) -> -	case happyOut224 happy_x_4 of { happy_var_4 -> -	case happyOut279 happy_x_5 of { happy_var_5 -> -	happyIn275-		 (let l = nIS happy_var_1 <++> ann happy_var_4 <** [happy_var_1, happy_var_3]-             in PatSyn l happy_var_2 happy_var_4 happy_var_5-	) `HappyStk` happyRest}}}}}--happyReduce_749 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_749 = happySpecReduce_2  262# happyReduction_749-happyReduction_749 happy_x_2-	happy_x_1-	 =  case happyOut245 happy_x_1 of { happy_var_1 -> -	case happyOut277 happy_x_2 of { happy_var_2 -> -	happyIn276-		 (let l = case happy_var_2 of-                                 [] -> ann happy_var_1-                                 (_:_) -> ann happy_var_1 <++> (ann $ last happy_var_2)-                        in PApp l (UnQual (ann happy_var_1) happy_var_1) happy_var_2-	)}}--happyReduce_750 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_750 = happySpecReduce_3  262# happyReduction_750-happyReduction_750 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut260 happy_x_1 of { happy_var_1 -> -	case happyOut264 happy_x_2 of { happy_var_2 -> -	case happyOut260 happy_x_3 of { happy_var_3 -> -	happyIn276-		 (PInfixApp (ann happy_var_1 <++> ann happy_var_3) (PVar (ann happy_var_1) happy_var_1) happy_var_2 (PVar (ann happy_var_3) happy_var_3)-	)}}}--happyReduce_751 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_751 = happyReduce 4# 262# happyReduction_751-happyReduction_751 (happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut245 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 LeftCurly) -> -	case happyOut278 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightCurly) -> -	happyIn276-		 (let { (ss, ns) = happy_var_3 ;-                                       qnames = (map (\n -> UnQual (ann n) n) ns) }-                                 in PRec (ann happy_var_1 <++> nIS happy_var_4 <** (happy_var_2 : ss ++ [happy_var_4]))-                                         (UnQual (ann happy_var_1) happy_var_1) (map (\q -> PFieldPun (ann q) q) qnames)-	) `HappyStk` happyRest}}}}--happyReduce_752 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_752 = happySpecReduce_0  263# happyReduction_752-happyReduction_752  =  happyIn277-		 ([]-	)--happyReduce_753 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_753 = happySpecReduce_2  263# happyReduction_753-happyReduction_753 happy_x_2-	happy_x_1-	 =  case happyOut260 happy_x_1 of { happy_var_1 -> -	case happyOut277 happy_x_2 of { happy_var_2 -> -	happyIn277-		 (PVar (ann happy_var_1) happy_var_1 : happy_var_2-	)}}--happyReduce_754 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_754 = happySpecReduce_1  264# happyReduction_754-happyReduction_754 happy_x_1-	 =  case happyOut260 happy_x_1 of { happy_var_1 -> -	happyIn278-		 (([], [happy_var_1] )-	)}--happyReduce_755 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_755 = happySpecReduce_3  264# happyReduction_755-happyReduction_755 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut260 happy_x_1 of { happy_var_1 -> -	case happyOutTok happy_x_2 of { (Loc happy_var_2 Comma) -> -	case happyOut278 happy_x_3 of { happy_var_3 -> -	happyIn278-		 (let (ss, ns) = happy_var_3 in (happy_var_2 : ss, happy_var_1 : ns)-	)}}}--happyReduce_756 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_756 = happyMonadReduce 4# 265# happyReduction_756-happyReduction_756 (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 happyOut75 happy_x_3 of { happy_var_3 -> -	case happyOutTok happy_x_4 of { (Loc happy_var_4 RightCurly) -> -	(  checkExplicitPatSyn happy_var_1 happy_var_2 happy_var_3 happy_var_4)}}}})-	) (\r -> happyReturn (happyIn279 r))--happyReduce_757 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_757 = happyMonadReduce 4# 265# happyReduction_757-happyReduction_757 (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 happyOut272 happy_x_2 of { happy_var_2 -> -	case happyOut75 happy_x_3 of { happy_var_3 -> -	case happyOut273 happy_x_4 of { happy_var_4 -> -	(  checkExplicitPatSyn happy_var_1 happy_var_2 happy_var_3 happy_var_4)}}}})-	) (\r -> happyReturn (happyIn279 r))--happyReduce_758 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_758 = happyMonadReduce 4# 266# happyReduction_758-happyReduction_758 (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_Pattern) -> -	case happyOut246 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 DoubleColon) -> -	case happyOut281 happy_x_4 of { happy_var_4 -> -	( do { checkEnabled PatternSynonyms ;-                    let {(qtvs, ps, prov, req, ty) = happy_var_4} ;-                    let {sig = PatSynSig (nIS happy_var_1 <++> ann ty <** [happy_var_1] ++ fst happy_var_2 ++ [happy_var_3] ++ ps)  (snd happy_var_2) qtvs prov req ty} ;-                    return sig })}}}})-	) (\r -> happyReturn (happyIn280 r))--happyReduce_759 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_759 = happyReduce 4# 267# happyReduction_759-happyReduction_759 (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 happyOut125 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 Dot) -> -	case happyOut281 happy_x_4 of { happy_var_4 -> -	happyIn281-		 (let (qtvs, ps, prov, req, ty) = happy_var_4-               in (Just (reverse (fst happy_var_2) ++ fromMaybe [] qtvs), (happy_var_1 : happy_var_3 : ps), prov, req, ty)-	) `HappyStk` happyRest}}}}--happyReduce_760 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_760 = happyMonadReduce 3# 267# happyReduction_760-happyReduction_760 (happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut121 happy_x_1 of { happy_var_1 -> -	case happyOut121 happy_x_2 of { happy_var_2 -> -	case happyOut107 happy_x_3 of { happy_var_3 -> -	( do { c1 <- checkContext (Just happy_var_1) ;-                    c2 <- checkContext (Just happy_var_2) ;-                    t  <- checkType happy_var_3 ;-                    return $ (Nothing, [], c1, c2, t) })}}})-	) (\r -> happyReturn (happyIn281 r))--happyReduce_761 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_761 = happyMonadReduce 2# 267# happyReduction_761-happyReduction_761 (happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut121 happy_x_1 of { happy_var_1 -> -	case happyOut107 happy_x_2 of { happy_var_2 -> -	( do { c1 <- checkContext (Just happy_var_1);-                     t <- checkType happy_var_2;-                     return (Nothing, [], c1, Nothing, t) })}})-	) (\r -> happyReturn (happyIn281 r))--happyReduce_762 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_762 = happyMonadReduce 1# 267# happyReduction_762-happyReduction_762 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOut107 happy_x_1 of { happy_var_1 -> -	( checkType happy_var_1 >>= \t -> return (Nothing, [], Nothing, Nothing, t))})-	) (\r -> happyReturn (happyIn281 r))--happyReduce_763 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_763 = happyMonadReduce 1# 268# happyReduction_763-happyReduction_763 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Stock) -> -	( do { checkEnabled DerivingStrategies-                                    ; return (Just (DerivStock (nIS happy_var_1))) })})-	) (\r -> happyReturn (happyIn282 r))--happyReduce_764 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_764 = happyMonadReduce 1# 268# happyReduction_764-happyReduction_764 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Anyclass) -> -	( do { checkEnabled DerivingStrategies-                                    ; checkEnabled DeriveAnyClass-                                    ; return (Just (DerivAnyclass (nIS happy_var_1))) })})-	) (\r -> happyReturn (happyIn282 r))--happyReduce_765 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_765 = happyMonadReduce 1# 268# happyReduction_765-happyReduction_765 (happy_x_1 `HappyStk`-	happyRest) tk-	 = happyThen ((case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_NewType) -> -	( do { checkEnabled DerivingStrategies-                                    ; checkEnabled GeneralizedNewtypeDeriving-                                    ; return (Just (DerivNewtype (nIS happy_var_1))) })})-	) (\r -> happyReturn (happyIn282 r))--happyReduce_766 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_766 = happySpecReduce_0  268# happyReduction_766-happyReduction_766  =  happyIn282-		 (Nothing-	)--happyReduce_767 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_767 = happySpecReduce_1  269# happyReduction_767-happyReduction_767 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn283-		 (let Loc l (ConId  n) = happy_var_1 in ModuleName (nIS l) n-	)}--happyReduce_768 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_768 = happySpecReduce_1  269# happyReduction_768-happyReduction_768 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn283-		 (let Loc l (QConId n) = happy_var_1 in ModuleName (nIS l) (fst n ++ '.':snd n)-	)}--happyReduce_769 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_769 = happySpecReduce_1  270# happyReduction_769-happyReduction_769 happy_x_1-	 =  case happyOut245 happy_x_1 of { happy_var_1 -> -	happyIn284-		 (happy_var_1-	)}--happyReduce_770 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_770 = happySpecReduce_1  271# happyReduction_770-happyReduction_770 happy_x_1-	 =  case happyOut247 happy_x_1 of { happy_var_1 -> -	happyIn285-		 (happy_var_1-	)}--happyReduce_771 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_771 = happySpecReduce_1  272# happyReduction_771-happyReduction_771 happy_x_1-	 =  case happyOut287 happy_x_1 of { happy_var_1 -> -	happyIn286-		 (happy_var_1-	)}--happyReduce_772 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_772 = happySpecReduce_1  273# happyReduction_772-happyReduction_772 happy_x_1-	 =  case happyOut259 happy_x_1 of { happy_var_1 -> -	happyIn287-		 (happy_var_1-	)}--happyReduce_773 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_773 = happySpecReduce_1  273# happyReduction_773-happyReduction_773 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Safe) -> -	happyIn287-		 (safe_name       (nIS happy_var_1)-	)}--happyReduce_774 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_774 = happySpecReduce_1  273# happyReduction_774-happyReduction_774 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Unsafe) -> -	happyIn287-		 (unsafe_name     (nIS happy_var_1)-	)}--happyReduce_775 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_775 = happySpecReduce_1  273# happyReduction_775-happyReduction_775 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 KW_Threadsafe) -> -	happyIn287-		 (threadsafe_name (nIS happy_var_1)-	)}--happyReduce_776 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_776 = happySpecReduce_3  274# happyReduction_776-happyReduction_776 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 BackQuote) -> -	case happyOut286 happy_x_2 of { happy_var_2 -> -	case happyOutTok happy_x_3 of { (Loc happy_var_3 BackQuote) -> -	happyIn288-		 (UnQual (happy_var_1 <^^> happy_var_3 <** [happy_var_1, srcInfoSpan (ann happy_var_2), happy_var_3]) happy_var_2-	)}}}--happyReduce_777 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_777 = happySpecReduce_1  274# happyReduction_777-happyReduction_777 happy_x_1-	 =  case happyOut289 happy_x_1 of { happy_var_1 -> -	happyIn288-		 (UnQual (ann happy_var_1) happy_var_1-	)}--happyReduce_778 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_778 = happySpecReduce_1  275# happyReduction_778-happyReduction_778 happy_x_1-	 =  case happyOutTok happy_x_1 of { happy_var_1 -> -	happyIn289-		 (let Loc l (VarSym x) = happy_var_1 in Symbol (nIS l) x-	)}--happyReduce_779 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_779 = happySpecReduce_1  275# happyReduction_779-happyReduction_779 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Minus) -> -	happyIn289-		 (Symbol (nIS happy_var_1) "-"-	)}--happyReduce_780 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_780 = happySpecReduce_1  275# happyReduction_780-happyReduction_780 happy_x_1-	 =  case happyOutTok happy_x_1 of { (Loc happy_var_1 Star) -> -	happyIn289-		 (Symbol (nIS happy_var_1) "*"-	)}--happyReduce_781 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_781 = happyReduce 5# 276# happyReduction_781-happyReduction_781 (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 LeftCurly) -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	case happyOut37 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 RightCurly) -> -	happyIn290-		 (let (ids, ss) = happy_var_3 in (ids, happy_var_1 : reverse happy_var_2 ++ ss ++ reverse happy_var_4 ++ [happy_var_5], happy_var_1 <^^> happy_var_5)-	) `HappyStk` happyRest}}}}}--happyReduce_782 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_782 = happyReduce 5# 276# happyReduction_782-happyReduction_782 (happy_x_5 `HappyStk`-	happy_x_4 `HappyStk`-	happy_x_3 `HappyStk`-	happy_x_2 `HappyStk`-	happy_x_1 `HappyStk`-	happyRest)-	 = case happyOut272 happy_x_1 of { happy_var_1 -> -	case happyOut28 happy_x_2 of { happy_var_2 -> -	case happyOut37 happy_x_3 of { happy_var_3 -> -	case happyOut28 happy_x_4 of { happy_var_4 -> -	case happyOut273 happy_x_5 of { happy_var_5 -> -	happyIn290-		 (let (ids, ss) = happy_var_3 in (ids, happy_var_1 : reverse happy_var_2 ++ ss ++ reverse happy_var_4 ++ [happy_var_5], happy_var_1 <^^> happy_var_5)-	) `HappyStk` happyRest}}}}}--happyReduce_783 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_783 = happySpecReduce_3  277# happyReduction_783-happyReduction_783 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOut283 happy_x_3 of { happy_var_3 -> -	happyIn291-		 ((happy_var_1, Just happy_var_3)-	)}}--happyReduce_784 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_784 = happySpecReduce_1  277# happyReduction_784-happyReduction_784 happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	happyIn291-		 ((happy_var_1, Nothing)-	)}--happyReduce_785 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_785 = happySpecReduce_2  278# happyReduction_785-happyReduction_785 happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOut23 happy_x_2 of { happy_var_2 -> -	happyIn292-		 ((happy_var_1, happy_var_2)-	)}}--happyReduce_786 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_786 = happySpecReduce_3  279# happyReduction_786-happyReduction_786 happy_x_3-	happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOut23 happy_x_2 of { happy_var_2 -> -	case happyOut290 happy_x_3 of { happy_var_3 -> -	happyIn293-		 ((happy_var_1, happy_var_2, Just happy_var_3)-	)}}}--happyReduce_787 :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )-happyReduce_787 = happySpecReduce_2  279# happyReduction_787-happyReduction_787 happy_x_2-	happy_x_1-	 =  case happyOut18 happy_x_1 of { happy_var_1 -> -	case happyOut23 happy_x_2 of { happy_var_2 -> -	happyIn293-		 ((happy_var_1, happy_var_2, Nothing)-	)}}--happyNewToken action sts stk-	= lexer(\tk -> -	let cont i = happyDoAction i tk action sts stk in-	case tk of {-	Loc _ EOF -> happyDoAction 156# tk action sts stk;-	Loc _ (VarId _) -> cont 1#;-	Loc _ (LabelVarId _) -> cont 2#;-	Loc _ (QVarId _) -> cont 3#;-	Loc _ (IDupVarId _) -> cont 4#;-	Loc _ (ILinVarId _) -> cont 5#;-	Loc _ (ConId _) -> cont 6#;-	Loc _ (QConId _) -> cont 7#;-	Loc _ (DVarId _) -> cont 8#;-	Loc _ (VarSym _) -> cont 9#;-	Loc _ (ConSym _) -> cont 10#;-	Loc _ (QVarSym _) -> cont 11#;-	Loc _ (QConSym _) -> cont 12#;-	Loc _ (IntTok _) -> cont 13#;-	Loc _ (FloatTok _) -> cont 14#;-	Loc _ (Character _) -> cont 15#;-	Loc _ (StringTok _) -> cont 16#;-	Loc _ (IntTokHash _) -> cont 17#;-	Loc _ (WordTokHash _) -> cont 18#;-	Loc _ (FloatTokHash _) -> cont 19#;-	Loc _ (DoubleTokHash _) -> cont 20#;-	Loc _ (CharacterHash _) -> cont 21#;-	Loc _ (StringHash _) -> cont 22#;-	Loc happy_dollar_dollar LeftParen -> cont 23#;-	Loc happy_dollar_dollar RightParen -> cont 24#;-	Loc happy_dollar_dollar LeftHashParen -> cont 25#;-	Loc happy_dollar_dollar RightHashParen -> cont 26#;-	Loc happy_dollar_dollar SemiColon -> cont 27#;-	Loc happy_dollar_dollar LeftCurly -> cont 28#;-	Loc happy_dollar_dollar RightCurly -> cont 29#;-	Loc happy_dollar_dollar VRightCurly -> cont 30#;-	Loc happy_dollar_dollar LeftSquare -> cont 31#;-	Loc happy_dollar_dollar RightSquare -> cont 32#;-	Loc happy_dollar_dollar ParArrayLeftSquare -> cont 33#;-	Loc happy_dollar_dollar ParArrayRightSquare -> cont 34#;-	Loc happy_dollar_dollar Comma -> cont 35#;-	Loc happy_dollar_dollar Underscore -> cont 36#;-	Loc happy_dollar_dollar BackQuote -> cont 37#;-	Loc happy_dollar_dollar Dot -> cont 38#;-	Loc happy_dollar_dollar DotDot -> cont 39#;-	Loc happy_dollar_dollar Colon -> cont 40#;-	Loc happy_dollar_dollar DoubleColon -> cont 41#;-	Loc happy_dollar_dollar Equals -> cont 42#;-	Loc happy_dollar_dollar Backslash -> cont 43#;-	Loc happy_dollar_dollar Bar -> cont 44#;-	Loc happy_dollar_dollar LeftArrow -> cont 45#;-	Loc happy_dollar_dollar RightArrow -> cont 46#;-	Loc happy_dollar_dollar At -> cont 47#;-	Loc happy_dollar_dollar TApp -> cont 48#;-	Loc happy_dollar_dollar Tilde -> cont 49#;-	Loc happy_dollar_dollar DoubleArrow -> cont 50#;-	Loc happy_dollar_dollar Minus -> cont 51#;-	Loc happy_dollar_dollar Exclamation -> cont 52#;-	Loc happy_dollar_dollar Star -> cont 53#;-	Loc happy_dollar_dollar LeftArrowTail -> cont 54#;-	Loc happy_dollar_dollar RightArrowTail -> cont 55#;-	Loc happy_dollar_dollar LeftDblArrowTail -> cont 56#;-	Loc happy_dollar_dollar RightDblArrowTail -> cont 57#;-	Loc happy_dollar_dollar RPGuardOpen -> cont 58#;-	Loc happy_dollar_dollar RPGuardClose -> cont 59#;-	Loc happy_dollar_dollar RPCAt -> cont 60#;-	Loc _ (THIdEscape _) -> cont 61#;-	Loc happy_dollar_dollar THParenEscape -> cont 62#;-	Loc happy_dollar_dollar THExpQuote -> cont 63#;-	Loc happy_dollar_dollar THPatQuote -> cont 64#;-	Loc happy_dollar_dollar THTypQuote -> cont 65#;-	Loc happy_dollar_dollar THDecQuote -> cont 66#;-	Loc happy_dollar_dollar THCloseQuote -> cont 67#;-	Loc happy_dollar_dollar THVarQuote -> cont 68#;-	Loc happy_dollar_dollar THTyQuote -> cont 69#;-	Loc _ (THQuasiQuote _) -> cont 70#;-	Loc _ (XPCDATA _) -> cont 71#;-	Loc happy_dollar_dollar XStdTagOpen -> cont 72#;-	Loc happy_dollar_dollar XCloseTagOpen -> cont 73#;-	Loc happy_dollar_dollar XCodeTagOpen -> cont 74#;-	Loc happy_dollar_dollar XChildTagOpen -> cont 75#;-	Loc happy_dollar_dollar XStdTagClose -> cont 76#;-	Loc happy_dollar_dollar XEmptyTagClose -> cont 77#;-	Loc happy_dollar_dollar XCodeTagClose -> cont 78#;-	Loc happy_dollar_dollar XRPatOpen -> cont 79#;-	Loc happy_dollar_dollar XRPatClose -> cont 80#;-	Loc happy_dollar_dollar KW_Foreign -> cont 81#;-	Loc happy_dollar_dollar KW_Export -> cont 82#;-	Loc happy_dollar_dollar KW_Safe -> cont 83#;-	Loc happy_dollar_dollar KW_Unsafe -> cont 84#;-	Loc happy_dollar_dollar KW_Threadsafe -> cont 85#;-	Loc happy_dollar_dollar KW_Interruptible -> cont 86#;-	Loc happy_dollar_dollar KW_StdCall -> cont 87#;-	Loc happy_dollar_dollar KW_CCall -> cont 88#;-	Loc happy_dollar_dollar KW_CPlusPlus -> cont 89#;-	Loc happy_dollar_dollar KW_DotNet -> cont 90#;-	Loc happy_dollar_dollar KW_Jvm -> cont 91#;-	Loc happy_dollar_dollar KW_Js -> cont 92#;-	Loc happy_dollar_dollar KW_JavaScript -> cont 93#;-	Loc happy_dollar_dollar KW_CApi -> cont 94#;-	Loc happy_dollar_dollar KW_As -> cont 95#;-	Loc happy_dollar_dollar KW_By -> cont 96#;-	Loc happy_dollar_dollar KW_Case -> cont 97#;-	Loc happy_dollar_dollar KW_Class -> cont 98#;-	Loc happy_dollar_dollar KW_Data -> cont 99#;-	Loc happy_dollar_dollar KW_Default -> cont 100#;-	Loc happy_dollar_dollar KW_Deriving -> cont 101#;-	Loc happy_dollar_dollar KW_Do -> cont 102#;-	Loc happy_dollar_dollar KW_Else -> cont 103#;-	Loc happy_dollar_dollar KW_Family -> cont 104#;-	Loc happy_dollar_dollar KW_Forall -> cont 105#;-	Loc happy_dollar_dollar KW_Group -> cont 106#;-	Loc happy_dollar_dollar KW_Hiding -> cont 107#;-	Loc happy_dollar_dollar KW_If -> cont 108#;-	Loc happy_dollar_dollar KW_Import -> cont 109#;-	Loc happy_dollar_dollar KW_In -> cont 110#;-	Loc happy_dollar_dollar KW_Infix -> cont 111#;-	Loc happy_dollar_dollar KW_InfixL -> cont 112#;-	Loc happy_dollar_dollar KW_InfixR -> cont 113#;-	Loc happy_dollar_dollar KW_Instance -> cont 114#;-	Loc happy_dollar_dollar KW_Let -> cont 115#;-	Loc happy_dollar_dollar KW_MDo -> cont 116#;-	Loc happy_dollar_dollar KW_Module -> cont 117#;-	Loc happy_dollar_dollar KW_NewType -> cont 118#;-	Loc happy_dollar_dollar KW_Of -> cont 119#;-	Loc happy_dollar_dollar KW_Proc -> cont 120#;-	Loc happy_dollar_dollar KW_Rec -> cont 121#;-	Loc happy_dollar_dollar KW_Then -> cont 122#;-	Loc happy_dollar_dollar KW_Type -> cont 123#;-	Loc happy_dollar_dollar KW_Using -> cont 124#;-	Loc happy_dollar_dollar KW_Where -> cont 125#;-	Loc happy_dollar_dollar KW_Qualified -> cont 126#;-	Loc happy_dollar_dollar KW_Role -> cont 127#;-	Loc happy_dollar_dollar KW_Pattern -> cont 128#;-	Loc happy_dollar_dollar KW_Stock -> cont 129#;-	Loc happy_dollar_dollar KW_Anyclass -> cont 130#;-	Loc _ (INLINE _) -> cont 131#;-	Loc happy_dollar_dollar INLINE_CONLIKE -> cont 132#;-	Loc happy_dollar_dollar SPECIALISE -> cont 133#;-	Loc _ (SPECIALISE_INLINE _) -> cont 134#;-	Loc happy_dollar_dollar SOURCE -> cont 135#;-	Loc happy_dollar_dollar RULES -> cont 136#;-	Loc happy_dollar_dollar CORE -> cont 137#;-	Loc happy_dollar_dollar SCC -> cont 138#;-	Loc happy_dollar_dollar GENERATED -> cont 139#;-	Loc happy_dollar_dollar DEPRECATED -> cont 140#;-	Loc happy_dollar_dollar WARNING -> cont 141#;-	Loc happy_dollar_dollar UNPACK -> cont 142#;-	Loc happy_dollar_dollar NOUNPACK -> cont 143#;-	Loc _ (OPTIONS _) -> cont 144#;-	Loc happy_dollar_dollar LANGUAGE -> cont 145#;-	Loc happy_dollar_dollar ANN -> cont 146#;-	Loc happy_dollar_dollar MINIMAL -> cont 147#;-	Loc happy_dollar_dollar NO_OVERLAP -> cont 148#;-	Loc happy_dollar_dollar OVERLAP -> cont 149#;-	Loc happy_dollar_dollar OVERLAPS -> cont 150#;-	Loc happy_dollar_dollar OVERLAPPING -> cont 151#;-	Loc happy_dollar_dollar OVERLAPPABLE -> cont 152#;-	Loc happy_dollar_dollar INCOHERENT -> cont 153#;-	Loc happy_dollar_dollar COMPLETE -> cont 154#;-	Loc happy_dollar_dollar PragmaEnd -> cont 155#;-	_ -> happyError' (tk, [])-	})--happyError_ explist 156# tk = happyError' (tk, explist)-happyError_ explist _ tk = happyError' (tk, explist)--happyThen :: () => P a -> (a -> P b) -> P b-happyThen = (>>=)-happyReturn :: () => a -> P a-happyReturn = (return)-happyParse :: () => Happy_GHC_Exts.Int# -> P (HappyAbsSyn )--happyNewToken :: () => Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )--happyDoAction :: () => Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn )--happyReduceArr :: () => Happy_Data_Array.Array Int (Happy_GHC_Exts.Int# -> Loc Token -> Happy_GHC_Exts.Int# -> Happy_IntList -> HappyStk (HappyAbsSyn ) -> P (HappyAbsSyn ))--happyThen1 :: () => P a -> (a -> P b) -> P b-happyThen1 = happyThen-happyReturn1 :: () => a -> P a-happyReturn1 = happyReturn-happyError' :: () => ((Loc Token), [String]) -> P a-happyError' tk = (\(tokens, _) -> parseError tokens) tk-mparseModule = happySomeParser where- happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut16 x))--mparseExp = happySomeParser where- happySomeParser = happyThen (happyParse 1#) (\x -> happyReturn (happyOut174 x))--mparsePat = happySomeParser where- happySomeParser = happyThen (happyParse 2#) (\x -> happyReturn (happyOut224 x))--mparseDeclAux = happySomeParser where- happySomeParser = happyThen (happyParse 3#) (\x -> happyReturn (happyOut25 x))--mparseType = happySomeParser where- happySomeParser = happyThen (happyParse 4#) (\x -> happyReturn (happyOut119 x))--mparseStmt = happySomeParser where- happySomeParser = happyThen (happyParse 5#) (\x -> happyReturn (happyOut231 x))--mparseImportDecl = happySomeParser where- happySomeParser = happyThen (happyParse 6#) (\x -> happyReturn (happyOut38 x))--ngparseModulePragmas = happySomeParser where- happySomeParser = happyThen (happyParse 7#) (\x -> happyReturn (happyOut18 x))--ngparseModuleHeadAndImports = happySomeParser where- happySomeParser = happyThen (happyParse 8#) (\x -> happyReturn (happyOut293 x))--ngparsePragmasAndModuleHead = happySomeParser where- happySomeParser = happyThen (happyParse 9#) (\x -> happyReturn (happyOut292 x))--ngparsePragmasAndModuleName = happySomeParser where- happySomeParser = happyThen (happyParse 10#) (\x -> happyReturn (happyOut291 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--mparseDecl :: P (Decl SrcSpanInfo)-mparseDecl = do-    (is, ds, _, _) <- mparseDeclAux-    when (not $ null is) $-       fail $ "Expected single declaration, found import declaration"-    checkSingleDecl ds-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "<built-in>" #-}-{-# LINE 1 "<command-line>" #-}-{-# LINE 11 "<command-line>" #-}-# 1 "/nix/store/z2v959r3xw6rr3srz5vfzv63dy7mq98i-glibc-2.27-dev/include/stdc-predef.h" 1 3 4--# 17 "/nix/store/z2v959r3xw6rr3srz5vfzv63dy7mq98i-glibc-2.27-dev/include/stdc-predef.h" 3 4-----------------------------------------------{-# LINE 11 "<command-line>" #-}-{-# LINE 1 "/nix/store/a0dr5x063v0zm8z0z5fwh8dldg10yl07-ghc-8.4.3/lib/ghc-8.4.3/include/ghcversion.h" #-}----------------{-# LINE 11 "<command-line>" #-}-{-# LINE 1 "/build/ghc2026_0/ghc_2.h" #-}-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------{-# LINE 11 "<command-line>" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp ---------------- 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 43 "templates/GenericTemplate.hs" #-}--data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList--------{-# LINE 65 "templates/GenericTemplate.hs" #-}--{-# LINE 75 "templates/GenericTemplate.hs" #-}--{-# LINE 84 "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 (happyExpListPerState ((Happy_GHC_Exts.I# (st)) :: Int)) 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    = happyAdjustOffset (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#-----{-# INLINE happyLt #-}-happyLt x y = LT(x,y)---readArrayBit arr bit =-    Bits.testBit (Happy_GHC_Exts.I# (indexShortOffAddr arr ((unbox_int bit) `Happy_GHC_Exts.iShiftRA#` 4#))) (bit `mod` 16)-  where unbox_int (Happy_GHC_Exts.I# x) = x-------data HappyAddr = HappyA# Happy_GHC_Exts.Addr#----------------------------------------------------------------------------------- HappyState data type (not arrays)--{-# LINE 180 "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 = happyAdjustOffset (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 = happyAdjustOffset (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 explist 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_ explist 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 explist 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.
haskell-src-exts.cabal view
@@ -1,10 +1,10 @@ Name:                   haskell-src-exts-Version:                1.20.3+Version:                1.24.0 License:                BSD3 License-File:           LICENSE Build-Type:             Simple Author:                 Niklas Broberg-Maintainer:             Matthew Pickering <matthewtpickering@gmail.com>+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)@@ -15,16 +15,10 @@                         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 == 7.6.3-                        , GHC == 7.8.2-                        , GHC == 7.10.3-                        , GHC == 8.0.2-                        , GHC == 8.2.2-                        , GHC == 8.4.1-                        , GHC == 8.6.1+Tested-With:            GHC == 9.14.1  Extra-Source-Files:                         README.md@@ -46,15 +40,16 @@ Library   Default-language:     Haskell98   Build-Tools:          happy >= 1.19-  Build-Depends:        array >= 0.1, pretty >= 1.0,+  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,+                        semigroups >= 0.18.3 && < 0.21,                         fail == 4.9.*    Exposed-modules:      Language.Haskell.Exts,@@ -91,7 +86,7 @@   other-modules:       Extensions   GHC-Options:         -threaded -Wall   Default-language:    Haskell2010-  Build-depends:       base < 5,+  Build-depends:       base,                        mtl,                        containers,                        haskell-src-exts,
src/Language/Haskell/Exts.hs view
@@ -160,7 +160,9 @@ readUTF8File fp = do   h <- openFile fp ReadMode   hSetEncoding h utf8-  hGetContents h+  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.
src/Language/Haskell/Exts/Build.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE Safe #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Language.Haskell.Exts.Build
src/Language/Haskell/Exts/Comments.hs view
@@ -1,4 +1,5 @@-{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveDataTypeable, Safe #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Language.Haskell.Exts.Comments
src/Language/Haskell/Exts/ExactPrint.hs view
@@ -1,5 +1,5 @@-{-# LANGUAGE DeriveFunctor #-}-{-# LANGUAGE CPP #-}+{-# LANGUAGE CPP, DeriveFunctor, Safe #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Language.Haskell.Exts.Annotated.ExactPrint@@ -25,6 +25,7 @@ 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@@ -46,11 +47,10 @@   fmap = liftM  instance Applicative EP where-  pure = return+  pure x = EP $ \l cs -> (x, l, cs, id)   (<*>) = 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@@ -58,6 +58,9 @@         (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 "" @@ -410,13 +413,18 @@                      return pts'                   _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"                 else return pts1-        pts3 <- if qf then-                 case pts2 of-                  x:pts' -> do++        -- 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"+                   _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"                 else return pts2+         pts4 <- case mpkg of                 Just pkg ->                   case pts3 of@@ -425,20 +433,44 @@                       return pts'                    _ -> errorEP "ExactP: ImportDecl is given too few srcInfoPoints"                 _ -> return pts3+         exactPC mn-        _ <- case mas of-                Just as ->++        -- 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 pts4+                   _ -> 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@@ -729,11 +761,12 @@             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+    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@@ -1037,42 +1070,6 @@                  [] -> exactPC n                  _ -> errorEP "ExactP: TyVarBind: UnkindedVar is given wrong number of srcInfoPoints" -instance ExactP Kind where-  exactP kd' = case kd' of-    KindStar  _     -> 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 k ->-      case srcInfoPoints l of-        [_, close] -> do-          printString "["-          exactPC k-          printStringAt (pos close) "]"-        _ -> errorEP "ExactP: Kind: KindList is given wrong number of srcInfoPoints"--- instance ExactP Type where   exactP t' = case t' of     TyForall l mtvs mctxt t -> do@@ -1089,6 +1086,7 @@                      _ -> 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@@ -1202,9 +1200,7 @@  instance ExactP Asst where   exactP asst = case asst of-    ClassA _ qn ts -> exactP qn >> mapM_ exactPC ts-    AppA _ n ns       -> exactPC n >> mapM_ exactPC ns-    InfixA _ ta qn tb -> exactP ta >> epInfixQName qn >> exactPC tb+    TypeA _ t -> exactP t     IParam l ipn t    ->         case srcInfoPoints l of          [a] -> do@@ -1212,13 +1208,6 @@             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@@ -1226,7 +1215,6 @@             exactPC asst'             printStringAt (pos b) ")"          _ -> errorEP "ExactP: Asst: ParenA is given wrong number of srcInfoPoints"-    WildCardA _ mn -> printString "_" >> maybeEP exactPC mn  instance ExactP Deriving where   exactP (Deriving l mds ihs) =@@ -1246,6 +1234,9 @@     printString "anyclass"   exactP (DerivNewtype _) =     printString "newtype"+  exactP (DerivVia _ ty) = do+    printString "via"+    exactP ty  instance ExactP ClassDecl where   exactP cdecl = case cdecl of@@ -1361,7 +1352,7 @@     RecDecl l n fds -> exactP n >> curlyList (srcInfoPoints l) fds  instance ExactP GadtDecl where-  exactP (GadtDecl l n ns' t) =+  exactP (GadtDecl l n _mtvs mctxt ns' t) =     case ns' of         Nothing ->             case srcInfoPoints l of@@ -1375,6 +1366,7 @@                 (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) "}"@@ -1406,13 +1398,18 @@  instance ExactP Splice where   exactP (IdSplice _ str) = printString $ '$':str-  exactP (ParenSplice l e) =+  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 "$("+        printString paren         exactPC e         printStringAt (pos b) ")"-     _ -> errorEP "ExactP: Splice: ParenSplice is given wrong number of srcInfoPoints"+     _ -> errorEP $ "ExactP: Splice: " ++ con ++ " is given wrong number of srcInfoPoints"  instance ExactP Exp where   exactP exp = case exp of@@ -1758,6 +1755,13 @@             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@@ -1837,27 +1841,10 @@  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"+    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@@ -1865,6 +1852,15 @@             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) =
src/Language/Haskell/Exts/ExtScheme.hs view
@@ -1,4 +1,6 @@+{-# LANGUAGE Safe #-} {-# OPTIONS_HADDOCK hide #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Language.Haskell.Exts.ExtScheme
src/Language/Haskell/Exts/Extension.hs view
@@ -1,5 +1,5 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE CPP #-}+{-# LANGUAGE CPP, DeriveDataTypeable, Safe #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Language.Haskell.Exts.Extension@@ -375,6 +375,8 @@   -- > import "network" Network.Socket   | PackageImports +  | ImportQualifiedPost+   | LambdaCase    -- | [GHC &#xa7; 7.3.20] Allow case expressions with no alternatives.@@ -546,6 +548,20 @@    | 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@@ -581,9 +597,12 @@                     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
src/Language/Haskell/Exts/Fixity.hs view
@@ -1,5 +1,5 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE CPP #-}+{-# LANGUAGE CPP, DeriveDataTypeable, Safe #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Language.Haskell.Exts.Fixity@@ -39,6 +39,7 @@ import Language.Haskell.Exts.SrcLoc  import Control.Monad (when, (<=<), liftM, liftM2, liftM3, liftM4)+import qualified Control.Monad.Fail as Fail import Data.Traversable (mapM) import Data.Maybe (fromMaybe) import Data.Typeable@@ -59,9 +60,9 @@   -- | 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.+  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 ()@@ -141,7 +142,7 @@     [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`"]@@ -161,15 +162,17 @@ 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 ["+++","|||"]@@ -239,7 +242,7 @@     _ -> return dir     where fix x = applyFixities fixs x -appFixDecls :: Monad m => Maybe (ModuleName SrcSpanInfo) -> [Fixity] -> [Decl SrcSpanInfo] -> m [Decl SrcSpanInfo]+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@@ -377,7 +380,7 @@ -- 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 :: Fail.MonadFail 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)@@ -425,7 +428,7 @@   where     fix x = applyFixities fixs x -leafFixP :: Monad m => [Fixity] -> Pat SrcSpanInfo -> m (Pat SrcSpanInfo)+leafFixP :: Fail.MonadFail 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
src/Language/Haskell/Exts/InternalLexer.hs view
@@ -1,4 +1,7 @@+{-# LANGUAGE Safe #-}+{-# LANGUAGE BangPatterns #-} {-# OPTIONS_HADDOCK hide #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Language.Haskell.Exts.Annotated.InternalLexer@@ -99,15 +102,21 @@         | 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)  -- [$...|...]@@ -197,6 +206,7 @@         | KW_Pattern         | KW_Stock         | KW_Anyclass+        | KW_Via                  -- FFI         | KW_Foreign@@ -295,8 +305,9 @@  ( "where",     (KW_Where,      Nothing) ),  ( "role",      (KW_Role,       Just (Any [RoleAnnotations]))),  ( "pattern",   (KW_Pattern,    Just (Any [PatternSynonyms]))),- ( "stock",     (KW_Stock,      Nothing)),- ( "anyclass",  (KW_Anyclass,   Nothing)),+ ( "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])) )@@ -363,11 +374,16 @@  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` "!#$%&*+./<=>?@\\^|-~"+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.@@ -663,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@@ -704,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@@ -767,7 +801,7 @@                                                   else discard 1 >> return TApp          '#':c:_ | OverloadedLabels `elem` exts-                   && isLower c || c == '_' -> do+                   && isIdentStart c -> do                                                   discard 1                                                   [ident] <- lexIdents                                                   return $ LabelVarId ident@@ -777,7 +811,7 @@              | isUpper c -> lexConIdOrQual "" -            | isLower c || c == '_' -> do+            | isIdentStart c -> do                     idents <- lexIdents                     case idents of                      [ident] -> case lookup ident (reserved_ids ++ special_varids) of@@ -852,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@@ -1049,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@@ -1113,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))@@ -1138,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@@ -1271,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 =@@ -1346,13 +1386,19 @@   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 ++ "]"@@ -1446,5 +1492,6 @@   KW_Pattern    -> "pattern"   KW_Stock      -> "stock"   KW_Anyclass   -> "anyclass"+  KW_Via        -> "via"    EOF           -> "EOF"
src/Language/Haskell/Exts/InternalParser.ly view
@@ -1,6 +1,7 @@ > { > {-# LANGUAGE CPP #-} > {-# OPTIONS_HADDOCK hide #-}+>  > ----------------------------------------------------------------------------- > -- | > -- Module      :  Language.Haskell.Exts.Annotated.Parser@@ -94,13 +95,13 @@         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'.  ----------------------------------------------------------------------------- @@ -172,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 $$ 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 _) }@@ -260,6 +267,7 @@ >       '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 @@ -291,7 +299,10 @@ >       '{-# 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 }@@ -455,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]) }@@ -473,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 ;@@ -645,7 +661,7 @@ >                        return (InstDecl (nIS $1 <++> ann $3 <+?> minf <** ($1:ss)) $2 ih mis) } }  Requires the StandaloneDeriving extension enabled.->       | 'deriving' deriv_strategy 'instance' optoverlap ctype+>       | 'deriving' deriv_standalone_strategy 'instance' optoverlap ctype >                {% do { checkEnabled StandaloneDeriving ; >                        ih <- checkInstHeader $5; >                        let {l = nIS $1 <++> ann $5 <** [$1,$3]};@@ -662,6 +678,7 @@ >                  }         | '$(' 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.@@ -742,6 +759,7 @@ >         : 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 } >         : truectype '=' truectype@@ -941,57 +959,72 @@ >       : dtype                         {% checkType $1 }  > dtype :: { PType L }->       : btype                         { splitTilde $1 }->       | btype qtyconop dtype          { TyInfix ($1 <> $3) $1 $2 $3 }->       | btype qtyvarop dtype          { TyInfix ($1 <> $3) $1 (UnpromotedName (ann $2) $2) $3 } -- FIXME->       | btype '->' ctype              { TyFun ($1 <> $3 <** [$2]) (splitTilde $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 (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 }+>       : 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 ')'                 { TyTuple ($1 <^^> $3 <** ($1:reverse ($3:snd $2))) Boxed   (reverse (fst $2)) }->       | '(#' types_bars2 '#)'         { TyUnboxedSum ($1 <^^> $3 <** ($1: reverse ($3: snd $2))) (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 }+>       | '(' 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 }+>       | 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                         { % checkEnabled DataKinds >> return (TyPromoted (ann $1) $1) }+>       | ptype_(ostar,kstar)           { % checkEnabled DataKinds >> return (TyPromoted (ann $1) $1) } -> ptype :: { Promoted L }->       : VARQUOTE gcon_nolist                 {% fmap (PromotedCon (nIS $1 <++> ann $2  <** [$1]) True) (pexprToQName $2) }->       | VARQUOTE '[' types1 ']'       {% PromotedList  ($1 <^^> $4 <** ($1:reverse($4:snd $3))) True . reverse <\$> mapM checkType (fst $3) }->       |          '[' types  ']'       {% PromotedList  ($1 <^^> $3 <** ($1:reverse($3:snd $2))) False . reverse <\$> mapM checkType (fst $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) }@@ -1014,7 +1047,10 @@   > 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]) }@@ -1023,9 +1059,12 @@ >       | '(#' 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 @@ -1051,26 +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]))) (splitTilde $1) }+>       : 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 } -> types_bars2 :: { ([PType L],[S]) }->   : ctype '|' ctype                   { ([$3, $1], [$2]) }->   | types_bars2 '|' ctype             { ($3 : fst $1, $2 : snd $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) }@@ -1127,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) }@@ -1182,15 +1237,15 @@ >       | deriving                      { [$1] }  > deriving :: { Deriving L }->       : 'deriving' deriv_strategy qtycls1->                                       { let l = nIS $1 <++> ann $3 <** [$1] in Deriving l $2 [IRule (ann $3) Nothing Nothing $3] }->       | 'deriving' deriv_strategy '(' ')'->                                       { Deriving ($1 <^^> $4 <** [$1,$3,$4]) $2 [] }->       | 'deriving' deriv_strategy '(' dclasses ')'->                                       { -- Distinguish deriving (Show) from deriving Show (#189)->                                         case fst $4 of->                                           [ts] -> Deriving ($1 <^^> $5 <** [$1]) $2 [IParen ($3 <^^> $5 <** [$3,$5]) ts]->                                           tss  -> Deriving ($1 <^^> $5 <** $1:$3: reverse (snd $4) ++ [$5]) $2 (reverse tss)}+>       : '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) }@@ -1198,6 +1253,12 @@ > 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@@ -1206,32 +1267,7 @@ >       : kind1                 {% checkEnabled KindSignatures >> return $1 }  > kind1 :: { Kind L }->       : bkind                 { $1 }->       | bkind '->' kind1      { KindFn ($1 <> $3 <** [$2]) $1 $3 }--> bkind :: { Kind L }->       : akind                 { $1 }->       | bkind akind           { KindApp ($1 <> $2) $1 $2 }--> akind :: { Kind L }->       : '*'                   { KindStar  (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) }->         | '(' kind ',' comma_kinds1  ')'->             { KindTuple ($1 <^^> $5 <** ($1:$3:reverse ($5:snd $4))) ($2:reverse (fst $4)) }->         | '[' kind ']'      { KindList  (($1 <^^> $3) <** [$1, $3]) $2 }--> comma_kinds1 :: { ([Kind L], [S]) }->      : kind1                   { ([$1], []) }->      | kind1 ',' comma_kinds1  { ($1 : (fst $3), $2 : (snd $3)) }-+>       : ctype_(NEVER,'*')     {% checkType $1 }  > optkind :: { (Maybe (Kind L), [S]) } >       : {-empty-}             { (Nothing,[]) }@@ -1404,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 }@@ -1416,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 }@@ -1452,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] }@@ -1511,15 +1557,19 @@ >       | '[' list ']'                  { amap (\l -> l <** [$3]) $ $2 ($1 <^^> $3 <** [$1]) } >       | '[:' parr ':]'                { amap (\l -> l <** [$3]) $ $2 ($1 <^^> $3 <** [$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 } }@@ -1529,6 +1579,9 @@ >       | 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) }@@ -1973,8 +2026,8 @@ >       | '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) }  @@ -1998,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 }@@ -2006,14 +2062,20 @@ >       | qvarsym1              { $1 }  > varsym :: { Name L }->       : varsymm               { $1 }+>       : varsym_('*')          { $1 }++> varsym_(ostar) :: { Name L }+>       : varsymm_(ostar)       { $1 } >       | '-'                   { minus_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)) }@@ -2087,38 +2149,52 @@ > pattern_synonym_sig :: { Decl L } >       : 'pattern' con_list '::' pstype >             {% do { checkEnabled PatternSynonyms ;->                     let {(qtvs, ps, prov, req, ty) = $4} ;->                     let {sig = PatSynSig (nIS $1 <++> ann ty <** [$1] ++ fst $2 ++ [$3] ++ ps)  (snd $2) qtvs prov req ty} ;+>                     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 (Context L), Type L )}+> pstype :: { (Maybe [TyVarBind L], [S], Maybe (Context L), Maybe [TyVarBind L]+>                                       , Maybe (Context L), Type L )} >       :  'forall' ktyvars '.' pstype->             { let (qtvs, ps, prov, req, ty) = $4->                in (Just (reverse (fst $2) ++ fromMaybe [] qtvs), ($1 : $3 : ps), prov, req, ty) }+>             { 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, c2, t) }}+>                     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, t) } }+>                      return (Nothing, [], c1, Nothing, Nothing, t) } } >       | type->              {% checkType $1 >>= \t -> return (Nothing, [], Nothing, Nothing, t) }+>              {% checkType $1 >>= \t -> return (Nothing, [], Nothing, Nothing, Nothing, t) }  ----------------------------------------------------------------------------- Deriving strategies -> deriv_strategy :: { Maybe (DerivStrategy L) }+> deriv_strategy_no_via :: { DerivStrategy L } >       : 'stock'               {% do { checkEnabled DerivingStrategies->                                     ; return (Just (DerivStock (nIS $1))) } }+>                                     ; return (DerivStock (nIS $1)) } } >       | 'anyclass'            {% do { checkEnabled DerivingStrategies >                                     ; checkEnabled DeriveAnyClass->                                     ; return (Just (DerivAnyclass (nIS $1))) } }+>                                     ; return (DerivAnyclass (nIS $1)) } } >       | 'newtype'             {% do { checkEnabled DerivingStrategies >                                     ; checkEnabled GeneralizedNewtypeDeriving->                                     ; return (Just (DerivNewtype (nIS $1))) } }+>                                     ; 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 }  -----------------------------------------------------------------------------@@ -2142,17 +2218,17 @@ >       | '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) "-" }->          | '*'                 { 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) }
src/Language/Haskell/Exts/Lexer.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE Safe #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Language.Haskell.Exts.Lexer
src/Language/Haskell/Exts/ParseMonad.hs view
@@ -1,4 +1,6 @@+{-# LANGUAGE CPP, Safe #-} {-# OPTIONS_HADDOCK hide #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Language.Haskell.Exts.ParseMonad@@ -47,7 +49,9 @@ import Control.Monad (when, liftM, ap) 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 @@ -76,7 +80,7 @@     | 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.@@ -95,8 +99,9 @@   ParseFailed loc msg <*> _ = ParseFailed loc msg  instance Monad ParseResult where-  return = ParseOk+#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@@ -109,7 +114,6 @@  instance ( Monoid m , Semigroup m) => Monoid (ParseResult m) where   mempty = ParseOk mempty-  mappend = (<>)  -- internal version data ParseStatus a = Ok ParseState a | Failed SrcLoc String@@ -237,16 +241,17 @@   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 _ch s _m -> Ok s a     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 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@@ -347,14 +352,15 @@     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
src/Language/Haskell/Exts/ParseSyntax.hs view
@@ -101,6 +101,7 @@     | 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/@@ -183,6 +184,7 @@         RightArrApp     l _ _   -> l         LeftArrHighApp  l _ _   -> l         RightArrHighApp l _ _   -> l+        ArrOp           l _     -> l          LCase l _               -> l         MultiIf l _             -> l@@ -255,6 +257,7 @@         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@@ -300,6 +303,7 @@         (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@@ -313,6 +317,7 @@      | 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) (Unpackedness l) (PType l) -- ^ Strict type marked with \"@!@\" or type marked with UNPACK pragma.      | TyWildCard l (Maybe (Name l))            -- ^ Type wildcard@@ -322,6 +327,7 @@ instance Annotated PType where     ann t = case t of       TyForall l _ _ _              -> l+      TyStar  l                     -> l       TyFun   l _ _                 -> l       TyTuple l _ _                 -> l       TyUnboxedSum l _              -> l@@ -334,6 +340,7 @@       TyInfix l _ _ _               -> l       TyKind  l _ _                 -> l       TyPromoted l   _              -> l+      TyEquals l _ _                 -> l       TyPred l _                    -> l       TySplice l _                  -> l       TyBang  l _ _ _                 -> l@@ -341,6 +348,7 @@       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@@ -353,6 +361,7 @@       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 u t                 -> TyBang (f l) b u t@@ -360,29 +369,17 @@       TyQuasiQuote l n s            -> TyQuasiQuote (f l) n s  data PAsst l-    = ClassA l (QName l) [PType l]-    | AppA l (Name l) [PType 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)-    | WildCardA l (Maybe (Name l))   deriving (Eq, Show, Functor)  instance Annotated PAsst where     ann asst = case asst of-        ClassA l _ _        -> l-        AppA l _ _          -> l-        InfixA l _ _ _      -> l+        TypeA l _           -> l         IParam l _ _        -> l-        EqualP l _ _        -> l         ParenA l _          -> l-        WildCardA l _       -> l     amap f asst = case asst of-        ClassA l qn ts      -> ClassA (f l) qn ts-        AppA l t ts         -> AppA (f l) t ts-        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-        WildCardA l mn      -> WildCardA (f l) mn
src/Language/Haskell/Exts/ParseUtils.hs view
@@ -98,7 +98,7 @@ import Control.Monad (when,unless)  #if __GLASGOW_HASKELL__ < 710-import Control.Applicative (Applicative (..), (<$>))+import Control.Applicative ((<$>)) #endif  type L = SrcSpanInfo@@ -177,9 +177,9 @@ checkPContext (TyParen l t) = do     c <- checkAssertion t     return $ CxSingle l (ParenA l c)-checkPContext (TyPred tp p@(EqualP {})) = do+checkPContext t@(TyEquals tp _ _) = do   checkEnabledOneOf [TypeFamilies, GADTs]-  return $ CxSingle tp p+  return $ CxSingle tp $ TypeA tp t  checkPContext t = do     c <- checkAssertion t@@ -194,33 +194,46 @@ 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 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 (getMaybePromotedQName op)-                return $ InfixA (fl l) a (getMaybePromotedQName op) b+                return $ TyInfix (fl l) a op b             checkAssertion' fl ts (TyParen l t) =                 checkAssertion' (const (fl l)) ts t             checkAssertion' fl ts (TyVar l t) = do -- Dict :: cxt => Dict cxt                 checkEnabled ConstraintKinds-                return $ AppA (fl l) t ts-            checkAssertion' _ _ (TyWildCard l wc) =-                return $ WildCardA l wc-            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' []@@ -252,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@@ -263,52 +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-      AppA l n pts    -> do-                ts <- mapM (checkAsstParam isSimple) pts-                return $ S.AppA l n ts-      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'-      WildCardA l a ->-        if isSimple then fail "Malformed Context: WildCards not allowed in simple contexts"-                    else return $ S.WildCardA 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-                TyWildCard l mn ->  return $ S.TyWildCard l mn-                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 @@ -753,6 +737,7 @@     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@@ -1107,6 +1092,7 @@             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@@ -1124,14 +1110,8 @@                            >> 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 (UnpromotedName (ann op) op) <*> checkType t1-    TyPred _ (EqualP l t0    t1)        -> do-      checkEnabledOneOf [TypeFamilies, GADTs]-      S.TyEquals l <$> checkType t0 <*> checkType t1-     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@@ -1177,9 +1157,9 @@ -- test for that. 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@@ -1286,11 +1266,11 @@ splitTilde t = go t   where go (TyApp loc t1 t2)           | TyBang _ (LazyTy eqloc) (NoUnpackPragma _) t2' <- t2-          = TyPred loc (EqualP (loc <** [srcInfoSpan eqloc]) (go t1) t2')+          = TyEquals (loc <** [srcInfoSpan eqloc]) (go t1) t2'           | otherwise           = case go t1 of-              (TyPred _ (EqualP eqloc tl tr)) ->-                TyPred loc (EqualP (eqloc <++> ann t2 <** srcInfoPoints eqloc) tl (TyApp (ann tr <++> ann t2) tr t2))+              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'
src/Language/Haskell/Exts/Parser.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE CPP, DeriveDataTypeable, FlexibleInstances, DeriveFunctor #-} {-# OPTIONS_GHC -fno-warn-orphans #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Language.Haskell.Exts.Annotated.Parser
src/Language/Haskell/Exts/Pretty.hs view
@@ -117,7 +117,6 @@ instance Monad (DocM s) where         (>>=) = thenDocM         (>>) = then_DocM-        return = retDocM  {-# INLINE thenDocM #-} {-# INLINE then_DocM #-}@@ -480,14 +479,17 @@         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 req t) =-                let contexts = map (maybePP pretty) [prov, req]+        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)@@ -769,12 +771,12 @@                 myFsep [ppForall tvs, maybePP pretty ctxt, pretty con]  instance  Pretty (GadtDecl l) where-        pretty (GadtDecl _pos name names ty) =+        pretty (GadtDecl _pos name tvs ctxt names ty) =             case names of                 Nothing ->                     myFsep [pretty name, text "::", pretty ty]                 Just ts' ->-                    myFsep [pretty name, text "::" ,+                    myFsep [pretty name, text "::" , ppForall tvs, maybePP pretty ctxt,                          braceList . map pretty $ ts', text "->", pretty ty]  instance  Pretty (ConDecl l) where@@ -807,15 +809,31 @@         pretty NoUnpackPragma {} = empty  instance Pretty (Deriving l) where-  pretty (Deriving _ mds [d]) = text "deriving" <+> maybePP pretty mds <+> pretty d-  pretty (Deriving _ mds d)   = text "deriving" <+> maybePP pretty mds <+> parenList (map pretty d)+  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 = text $+  pretty ds =     case ds of-      DerivStock _    -> "stock"-      DerivAnyclass _ -> "anyclass"-      DerivNewtype _  -> "newtype"+      DerivStock _    -> text "stock"+      DerivAnyclass _ -> text "anyclass"+      DerivNewtype _  -> text "newtype"+      DerivVia _ ty   -> text "via" <+> pretty ty  ------------------------- Types ------------------------- ppBType :: Type l -> Doc@@ -833,6 +851,7 @@ 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) =@@ -852,7 +871,6 @@         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, pretty op, pretty b]         prettyPrec _ (TyKind _ t k) = parens (myFsep [pretty t, text "::", pretty k])         prettyPrec _ (TyPromoted _ p) = pretty p@@ -875,14 +893,25 @@       PromotedCon _ hasQuote qn ->         addQuote hasQuote (pretty qn)       PromotedList _ hasQuote list ->-        addQuote hasQuote $ bracketList . punctuate comma . map pretty $ list+        addQuote hasQuote $ brackets . addSpace list . prettyList $ list       PromotedTuple _ list ->-        addQuote True $ parenList $ map pretty 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@@ -894,16 +923,6 @@  ---------------------------- Kinds ---------------------------- -instance  Pretty (Kind l) where-        prettyPrec _ KindStar{}      = 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)  = brackets .  pretty $ l-        prettyPrec n (KindApp _ a b) =-          parensIf (n > 3) $ myFsep [prettyPrec 3 a, prettyPrec 4 b]- ppOptKind :: Maybe (Kind l) -> [Doc] ppOptKind Nothing  = [] ppOptKind (Just k) = [text "::", pretty k]@@ -1072,6 +1091,7 @@         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) $@@ -1103,6 +1123,7 @@  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) =@@ -1113,6 +1134,9 @@  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 ')'] @@ -1340,15 +1364,10 @@   pretty (CxSingle _ ctxt)  = pretty ctxt <+> text "=>"   pretty (CxTuple _ context) = mySep [parenList (map pretty context), text "=>"] --- hacked for multi-parameter type classes instance  Pretty (Asst l) where-        pretty (ClassA _ a ts)   = myFsep $ pretty a : map ppAType ts-        pretty (AppA _ n ns)     = myFsep $ pretty n : map pretty ns-        pretty (InfixA _ a op b) = myFsep [pretty a, ppQNameInfix op, pretty b]+        pretty (TypeA _ t)       = pretty t         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 (WildCardA _ mn)  = char  '_' <> maybePP pretty mn  -- Pretty print a source location, useful for printing out error messages instance Pretty SrcLoc where@@ -1618,6 +1637,7 @@         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) =@@ -1659,17 +1679,14 @@         pretty (P.CxTuple _ assts) = myFsep [parenList (map pretty assts), text "=>"]  instance SrcInfo loc => Pretty (P.PAsst loc) where-        pretty (P.ClassA _ a ts)   = myFsep $ pretty ( a) : map (prettyPrec prec_atype) ts-        pretty (P.AppA _ n ns)     = myFsep $ pretty n : map (prettyPrec prec_atype) ns-        pretty (P.InfixA _ a op b) = myFsep [pretty a, ppQNameInfix op, pretty b]+        pretty (P.TypeA _ t)       = pretty t         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)-        pretty (P.WildCardA _ mn)  = char '_' <> maybePP pretty mn  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) =@@ -1693,6 +1710,7 @@         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
src/Language/Haskell/Exts/SrcLoc.hs view
@@ -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)@@ -47,7 +51,7 @@ 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.
src/Language/Haskell/Exts/Syntax.hs view
@@ -65,7 +65,7 @@     -- * Class Assertions and Contexts     Context(..), FunDep(..), Asst(..),     -- * Types-    Type(..), Boxed(..), Kind(..), TyVarBind(..), Promoted(..),+    Type(..), Boxed(..), Kind, TyVarBind(..), Promoted(..),     TypeEqn (..),     -- * Expressions     Exp(..), Stmt(..), QualStmt(..), FieldUpdate(..),@@ -97,14 +97,14 @@     -- ** Main function of a program     main_name,     -- ** Constructors-    unit_con_name, tuple_con_name, list_cons_name, unboxed_singleton_con_name,+    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,+    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,@@ -134,7 +134,7 @@ -- data constructors. data SpecialCon l     = UnitCon l             -- ^ unit type and data constructor @()@-    | ListCon l             -- ^ list type 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 @(\#,\#)@@@ -241,7 +241,7 @@ -- | An explicit import specification list. data ImportSpecList l     = ImportSpecList l Bool [ImportSpec l]-            -- A list of import specifications.+            -- ^ 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)@@ -299,9 +299,13 @@      -- ^ 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 (Context l)) (Type l)+     | 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@@ -485,12 +489,13 @@  -- | 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@+  = 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.@@ -558,7 +563,9 @@ -- 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)+    = 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.@@ -624,6 +631,7 @@         (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@@ -669,15 +677,7 @@   deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)  -- | An explicit kind annotation.-data Kind l-    = KindStar  l                    -- ^ @*@, the kind of 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]@, a promoted list literal-  deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)+type Kind = Type   -- | A functional dependency, given on the form@@ -694,17 +694,10 @@   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-        | AppA l (Name l) [Type l]              -- ^ constraint kind assertion, @Dict :: cxt a => Dict cxt@-        | InfixA l (Type l) (QName l) (Type l)  -- ^ class assertion where the class name is given infix+        = TypeA l (Type l)                      -- ^ type assertion         | 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-        | WildCardA l (Maybe (Name l))          -- ^ Context Wildcard   deriving (Eq,Ord,Show,Typeable,Data,Foldable,Traversable,Functor,Generic)  -- | /literal/@@ -807,6 +800,7 @@     | 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/@@ -827,6 +821,7 @@ -- | 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| ... |]@@@ -835,7 +830,9 @@ -- | 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.@@ -1022,6 +1019,9 @@ 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) @@ -1052,7 +1052,7 @@ 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 :: l -> Name l+  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"@@ -1071,6 +1071,7 @@ 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@@ -1249,8 +1250,13 @@     ann (DerivStock l)    = l     ann (DerivAnyclass l) = l     ann (DerivNewtype l)  = l-    amap = fmap+    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@@ -1283,8 +1289,9 @@         InfixDecl    l _ _ _            -> l         DefaultDecl  l _                -> l         SpliceDecl   l _                -> l+        TSpliceDecl  l _                -> l         TypeSig      l _ _              -> l-        PatSynSig    l _ _ _ _ _        -> l+        PatSynSig    l _ _ _ _ _ _      -> l         FunBind      l _                -> l         PatBind      l _ _ _            -> l         ForImp       l _ _ _ _ _        -> l@@ -1320,8 +1327,9 @@         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 c2 t      -> PatSynSig (f l) n dh c1 c2 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@@ -1434,8 +1442,8 @@     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+    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@@ -1494,6 +1502,7 @@ instance Annotated Type where     ann t = case t of       TyForall l _ _ _              -> l+      TyStar  l                     -> l       TyFun   l _ _                 -> l       TyTuple l _ _                 -> l       TyUnboxedSum l _              -> l@@ -1513,6 +1522,7 @@       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@@ -1545,22 +1555,6 @@     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 (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 (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@@ -1575,21 +1569,13 @@  instance Annotated Asst where     ann asst = case asst of-        ClassA l _ _     -> l-        AppA l _ _       -> l-        InfixA l _ _ _   -> l+        TypeA l _        -> l         IParam l _ _     -> l-        EqualP l _ _     -> l         ParenA l _       -> l-        WildCardA l _    -> l     amap f asst = case asst of-        ClassA l qn ts      -> ClassA (f l) qn ts-        AppA   l n ns       -> AppA   (f l) n ns-        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-        WildCardA l mn      -> WildCardA (f l) mn  instance Annotated Literal where     ann lit = case lit of@@ -1670,6 +1656,7 @@         RightArrApp     l _ _  -> l         LeftArrHighApp  l _ _  -> l         RightArrHighApp l _ _  -> l+        ArrOp           l _    -> l          LCase l _              -> l @@ -1730,6 +1717,7 @@         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@@ -1746,19 +1734,25 @@  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
src/Language/Preprocessor/Unlit.hs view
@@ -14,17 +14,17 @@ classify (('\\':x):xs) | x == "begin{code}" = Blank : allProg xs    where allProg [] = []  -- Should give an error message,                           -- but I have no good position information.-         allProg (('\\':x):xs) |  "end{code}"`isPrefixOf`x = Blank : classify xs-         allProg (x:xs) = Program x:allProg xs-classify (('>':x):xs)      = Program (' ':x) : classify xs+         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 (x:xs)                 = Comment:classify xs+classify (x:xs) | all isSpace x = Blank : classify xs+classify (_:xs)                 = Comment : classify xs  unclassify :: Classified -> String unclassify (Program s) = s@@ -43,16 +43,16 @@  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 y@(Program _) (x@Comment      :xs) = error (message file n "program" "comment")-adjacent file n y@(Program _) (x@(Include i f):xs) = x: adjacent f    i     y xs+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 y@Comment     (x@(Program _)  :xs) = error (message file n "comment" "program")-adjacent file n y@Comment     (x@(Include i f):xs) = x: adjacent f    i     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 file n y@Blank       (x@(Include i f):xs) = x: adjacent f    i     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@next         :xs) = x: adjacent file (n+1) x xs-adjacent file n _             []                   = []+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"@@ -63,7 +63,7 @@ -- 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 s = lines' s id+inlines = (`lines'` id)   where   lines' []             acc = [acc []]   lines' ('\^M':'\n':s) acc = acc [] : lines' s id      -- DOS
tests/Extensions.hs view
@@ -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]
tests/Runner.hs view
@@ -180,7 +180,9 @@ 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)
tests/examples/AmbiguousFixities.hs.exactprinter.golden view
@@ -1,1 +1,1 @@-ParseFailed (SrcLoc "" -1 -1) "Ambiguous infix expression"+ParseFailed (SrcLoc "" (-1) (-1)) "Ambiguous infix expression"
tests/examples/AmbiguousFixities.hs.prettyparser.golden view
@@ -1,1 +1,1 @@-ParseFailed (SrcLoc "" -1 -1) "Ambiguous infix expression"+ParseFailed (SrcLoc "" (-1) (-1)) "Ambiguous infix expression"
tests/examples/AmbiguousFixities.hs.prettyprinter.golden view
@@ -1,1 +1,1 @@-ParseFailed (SrcLoc "" -1 -1) "Ambiguous infix expression"+ParseFailed (SrcLoc "" (-1) (-1)) "Ambiguous infix expression"
+ tests/examples/ArrowBrackets.hs view
@@ -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
+ tests/examples/ArrowBrackets.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/ArrowBrackets.hs.parser.golden view
@@ -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+      ]+  , []+  )
+ tests/examples/ArrowBrackets.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/ArrowBrackets.hs.prettyprinter.golden view
@@ -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
+ tests/examples/BlockArguments.hs view
@@ -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
+ tests/examples/BlockArguments.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/BlockArguments.hs.parser.golden view
@@ -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+          ]+      ]+  , []+  )
+ tests/examples/BlockArguments.hs.prettyparser.golden view
@@ -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]]+
+ tests/examples/BlockArguments.hs.prettyprinter.golden view
@@ -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)
tests/examples/BracketInstanceHead.hs.parser.golden view
@@ -51,40 +51,53 @@                         , srcInfoPoints =                             [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 21 1 23 ]                         }-                      (ClassA+                      (TypeA                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 23                            , srcInfoPoints =                                [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 21 1 23 ]                            }-                         (UnQual+                         (TyApp                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 18-                              , srcInfoPoints = []+                                  SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 23+                              , srcInfoPoints =+                                  [ SrcSpan "tests/examples/BracketInstanceHead.hs" 1 21 1 23 ]                               }-                            (Ident+                            (TyCon                                SrcSpanInfo                                  { srcInfoSpan =-                                     SrcSpan "tests/examples/BracketInstanceHead.hs" 1 11 1 18+                                     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 = []                                  }-                               "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")-                         ])))+                               (Ident+                                  SrcSpanInfo+                                    { srcInfoSpan =+                                        SrcSpan "tests/examples/BracketInstanceHead.hs" 1 19 1 20+                                    , srcInfoPoints = []+                                    }+                                  "a"))))))                 (IHApp                    SrcSpanInfo                      { srcInfoSpan =
tests/examples/ClassContext.hs.parser.golden view
@@ -40,67 +40,80 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/ClassContext.hs" 1 18 1 20 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 20                         , srcInfoPoints =                             [ SrcSpan "tests/examples/ClassContext.hs" 1 18 1 20 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo-                           { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 9-                           , srcInfoPoints = []+                           { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 20+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/ClassContext.hs" 1 18 1 20 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo-                              { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 9-                              , srcInfoPoints = []+                              { srcInfoSpan = SrcSpan "tests/examples/ClassContext.hs" 1 6 1 20+                              , srcInfoPoints =+                                  [ SrcSpan "tests/examples/ClassContext.hs" 1 18 1 20 ]                               }-                            "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"))))-                      ])))+                            (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
tests/examples/ConstraintKinds.hs.parser.golden view
@@ -342,53 +342,73 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22                         , srcInfoPoints =                             [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 15-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 22+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/ConstraintKinds.hs" 9 20 9 22 ]                            }-                         (Ident+                         (TyApp                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/ConstraintKinds.hs" 9 8 9 15+                                  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 = []                               }-                            "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")-                      ])))+                            (Ident+                               SrcSpanInfo+                                 { srcInfoSpan =+                                     SrcSpan "tests/examples/ConstraintKinds.hs" 9 18 9 19+                                 , srcInfoPoints = []+                                 }+                               "b"))))))              (TyFun                 SrcSpanInfo                   { srcInfoSpan =
tests/examples/ConstraintKinds2.hs.parser.golden view
@@ -133,6 +133,8 @@                    }                  "Dict")               Nothing+              Nothing+              Nothing               (TyForall                  SrcSpanInfo                    { srcInfoSpan =@@ -148,21 +150,27 @@                          , srcInfoPoints =                              [ SrcSpan "tests/examples/ConstraintKinds2.hs" 6 15 6 17 ]                          }-                       (AppA+                       (TypeA                           SrcSpanInfo                             { srcInfoSpan =                                 SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 17                             , srcInfoPoints =                                 [ SrcSpan "tests/examples/ConstraintKinds2.hs" 6 15 6 17 ]                             }-                          (Ident+                          (TyVar                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 14-                               , srcInfoPoints = []+                                   SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 17+                               , srcInfoPoints =+                                   [ SrcSpan "tests/examples/ConstraintKinds2.hs" 6 15 6 17 ]                                }-                             "p")-                          [])))+                             (Ident+                                SrcSpanInfo+                                  { srcInfoSpan =+                                      SrcSpan "tests/examples/ConstraintKinds2.hs" 6 13 6 14+                                  , srcInfoPoints = []+                                  }+                                "p")))))                  (TyApp                     SrcSpanInfo                       { srcInfoSpan =
tests/examples/ConstraintKinds3.hs.parser.golden view
@@ -165,34 +165,48 @@                                       , SrcSpan "tests/examples/ConstraintKinds3.hs" 6 16 6 18                                       ]                                   }-                                (AppA+                                (TypeA                                    SrcSpanInfo                                      { srcInfoSpan =                                          SrcSpan "tests/examples/ConstraintKinds3.hs" 6 11 6 14                                      , srcInfoPoints = []                                      }-                                   (Ident+                                   (TyApp                                       SrcSpanInfo                                         { srcInfoSpan =-                                            SrcSpan "tests/examples/ConstraintKinds3.hs" 6 11 6 12+                                            SrcSpan "tests/examples/ConstraintKinds3.hs" 6 11 6 14                                         , 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")-                                   ]))))+                                      (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 =
tests/examples/ConstructorAndClassOperators.hs.parser.golden view
@@ -76,7 +76,7 @@                              "tests/examples/ConstructorAndClassOperators.hs" 3 18 3 20                          ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 20@@ -85,53 +85,97 @@                                 "tests/examples/ConstructorAndClassOperators.hs" 3 18 3 20                             ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 13+                               SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 8 3 20                            , 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+                               [ SrcSpan+                                   "tests/examples/ConstructorAndClassOperators.hs" 3 18 3 20                                ]                            }-                         (Symbol+                         (TyApp                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/ConstructorAndClassOperators.hs" 3 9 3 12+                                  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 = []                               }-                            ":=>"))-                      [ 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")-                      ])))+                            (Ident+                               SrcSpanInfo+                                 { srcInfoSpan =+                                     SrcSpan+                                       "tests/examples/ConstructorAndClassOperators.hs" 3 16 3 17+                                 , srcInfoPoints = []+                                 }+                               "h"))))))              (TyInfix                 SrcSpanInfo                   { srcInfoSpan =
tests/examples/ContextOrdering.hs.parser.golden view
@@ -92,46 +92,63 @@                             , SrcSpan "tests/examples/ContextOrdering.hs" 4 16 4 18                             ]                         }-                      (AppA+                      (TypeA                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/ContextOrdering.hs" 4 9 4 14                            , srcInfoPoints = []                            }-                         (Ident+                         (TyApp                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/ContextOrdering.hs" 4 9 4 10+                                  SrcSpan "tests/examples/ContextOrdering.hs" 4 9 4 14                               , 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")-                         ]))))+                            (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 =
tests/examples/CxtWhitespace.hs.parser.golden view
@@ -46,35 +46,46 @@                             , SrcSpan "tests/examples/CxtWhitespace.hs" 2 18 2 20                             ]                         }-                      (ClassA+                      (TypeA                          SrcSpanInfo                            { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 16                            , srcInfoPoints = []                            }-                         (UnQual+                         (TyApp                             SrcSpanInfo-                              { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 14+                              { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 16                               , srcInfoPoints = []                               }-                            (Ident+                            (TyCon                                SrcSpanInfo-                                 { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 14+                                 { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 2 12 2 16                                  , 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")-                         ]))))+                               (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@@ -132,62 +143,86 @@                          , SrcSpan "tests/examples/CxtWhitespace.hs" 5 24 5 26                          ]                      }-                   [ ClassA+                   [ TypeA                        SrcSpanInfo                          { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 16                          , srcInfoPoints = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo-                            { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 14+                            { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 16                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo-                               { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 14+                               { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 12 5 16                                , 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+                             (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 = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo-                            { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 20+                            { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 22                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo-                               { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 20+                               { srcInfoSpan = SrcSpan "tests/examples/CxtWhitespace.hs" 5 18 5 22                                , 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")-                       ]+                             (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
tests/examples/DataKinds.hs.parser.golden view
@@ -118,7 +118,7 @@                      , srcInfoPoints = []                      }                    "a")-                (KindVar+                (TyCon                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 5 16 5 20                      , srcInfoPoints = []@@ -240,7 +240,7 @@                      , srcInfoPoints = []                      }                    "a")-                (KindList+                (TyList                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 8 16 8 21                      , srcInfoPoints =@@ -248,7 +248,7 @@                          , SrcSpan "tests/examples/DataKinds.hs" 8 20 8 21                          ]                      }-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 8 18 8 19                         , srcInfoPoints = []@@ -381,7 +381,7 @@                      , srcInfoPoints = []                      }                    "a")-                (KindList+                (TyList                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 16 13 28                      , srcInfoPoints =@@ -389,7 +389,7 @@                          , SrcSpan "tests/examples/DataKinds.hs" 13 27 13 28                          ]                      }-                   (KindTuple+                   (TyTuple                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 17 13 27                         , srcInfoPoints =@@ -398,7 +398,8 @@                             , SrcSpan "tests/examples/DataKinds.hs" 13 26 13 27                             ]                         }-                      [ KindVar+                      Boxed+                      [ TyCon                           SrcSpanInfo                             { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 18 13 21                             , srcInfoPoints = []@@ -414,7 +415,7 @@                                   , srcInfoPoints = []                                   }                                 "Baz"))-                      , KindVar+                      , TyCon                           SrcSpanInfo                             { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 13 23 13 26                             , srcInfoPoints = []@@ -471,7 +472,7 @@                      , srcInfoPoints = []                      }                    "a")-                (KindParen+                (TyParen                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 16 15 21                      , srcInfoPoints =@@ -479,7 +480,7 @@                          , SrcSpan "tests/examples/DataKinds.hs" 15 20 15 21                          ]                      }-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 15 18 15 19                         , srcInfoPoints = []@@ -524,17 +525,17 @@                      , srcInfoPoints = []                      }                    "a")-                (KindApp+                (TyApp                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 16 18 27                      , srcInfoPoints = []                      }-                   (KindApp+                   (TyApp                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 16 18 23                         , srcInfoPoints = []                         }-                      (KindVar+                      (TyCon                          SrcSpanInfo                            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 16 18 19                            , srcInfoPoints = []@@ -550,38 +551,28 @@                                  , srcInfoPoints = []                                  }                                "App")))-                      (KindVar+                      (TyVar                          SrcSpanInfo                            { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 20 18 23                            , srcInfoPoints = []                            }-                         (UnQual+                         (Ident                             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"))))-                   (KindVar+                            "foo")))+                   (TyVar                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 18 24 18 27                         , srcInfoPoints = []                         }-                      (UnQual+                      (Ident                          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"))))))+                         "baz")))))           []           Nothing       , ClassDecl@@ -622,7 +613,7 @@                      , srcInfoPoints = []                      }                    "a")-                (KindParen+                (TyParen                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 16 20 24                      , srcInfoPoints =@@ -630,22 +621,17 @@                          , SrcSpan "tests/examples/DataKinds.hs" 20 23 20 24                          ]                      }-                   (KindVar+                   (TyVar                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 20 17 20 23                         , srcInfoPoints = []                         }-                      (UnQual+                      (Ident                          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"))))))+                         "parens")))))           []           Nothing       , DataDecl@@ -690,7 +676,7 @@                      , srcInfoPoints = []                      }                    "a")-                (KindList+                (TyList                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 14 22 17                      , srcInfoPoints =@@ -698,7 +684,7 @@                          , SrcSpan "tests/examples/DataKinds.hs" 22 16 22 17                          ]                      }-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 22 15 22 16                         , srcInfoPoints = []@@ -968,7 +954,7 @@                      , srcInfoPoints = []                      }                    "a")-                (KindTuple+                (TyTuple                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 14 27 23                      , srcInfoPoints =@@ -977,12 +963,13 @@                          , SrcSpan "tests/examples/DataKinds.hs" 27 22 27 23                          ]                      }-                   [ KindStar+                   Boxed+                   [ TyStar                        SrcSpanInfo                          { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 15 27 16                          , srcInfoPoints = []                          }-                   , KindVar+                   , TyCon                        SrcSpanInfo                          { srcInfoSpan = SrcSpan "tests/examples/DataKinds.hs" 27 18 27 22                          , srcInfoPoints = []
tests/examples/DefaultSignatures.hs.parser.golden view
@@ -205,39 +205,53 @@                                    , SrcSpan "tests/examples/DefaultSignatures.hs" 4 25 4 27                                    ]                                }-                             (ClassA+                             (TypeA                                 SrcSpanInfo                                   { srcInfoSpan =                                       SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 23                                   , srcInfoPoints = []                                   }-                                (UnQual+                                (TyApp                                    SrcSpanInfo                                      { srcInfoSpan =-                                         SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 21+                                         SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 23                                      , srcInfoPoints = []                                      }-                                   (Ident+                                   (TyCon                                       SrcSpanInfo                                         { srcInfoSpan =-                                            SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 21+                                            SrcSpan "tests/examples/DefaultSignatures.hs" 4 19 4 23                                         , 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")-                                ]))))+                                      (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 =
tests/examples/DerivingStrategies.hs.parser.golden view
@@ -477,40 +477,53 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/DerivingStrategies.hs" 16 32 16 34 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 34                         , srcInfoPoints =                             [ SrcSpan "tests/examples/DerivingStrategies.hs" 16 32 16 34 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 29-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 34+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/DerivingStrategies.hs" 16 32 16 34 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/DerivingStrategies.hs" 16 25 16 29+                                  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 = []                               }-                            "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")-                      ])))+                            (Ident+                               SrcSpanInfo+                                 { srcInfoSpan =+                                     SrcSpan "tests/examples/DerivingStrategies.hs" 16 30 16 31+                                 , srcInfoPoints = []+                                 }+                               "a"))))))              (IHApp                 SrcSpanInfo                   { srcInfoSpan =@@ -615,40 +628,53 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/DerivingStrategies.hs" 17 33 17 35 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 35                         , srcInfoPoints =                             [ SrcSpan "tests/examples/DerivingStrategies.hs" 17 33 17 35 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 30-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 35+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/DerivingStrategies.hs" 17 33 17 35 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/DerivingStrategies.hs" 17 27 17 30+                                  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 = []                               }-                            "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")-                      ])))+                            (Ident+                               SrcSpanInfo+                                 { srcInfoSpan =+                                     SrcSpan "tests/examples/DerivingStrategies.hs" 17 31 17 32+                                 , srcInfoPoints = []+                                 }+                               "a"))))))              (IHApp                 SrcSpanInfo                   { srcInfoSpan =
+ tests/examples/DerivingVia.hs view
@@ -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))
+ tests/examples/DerivingVia.hs.exactprinter.golden view
@@ -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)+
+ tests/examples/DerivingVia.hs.parser.golden view
@@ -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) "--"+    ]+  )
+ tests/examples/DerivingVia.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/DerivingVia.hs.prettyprinter.golden view
@@ -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))
+ tests/examples/DerivingVia2.hs view
@@ -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)
+ tests/examples/DerivingVia2.hs.exactprinter.golden view
@@ -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)+
+ tests/examples/DerivingVia2.hs.parser.golden view
@@ -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"))))))+      ]+  , []+  )
+ tests/examples/DerivingVia2.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/DerivingVia2.hs.prettyprinter.golden view
@@ -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)
+ tests/examples/DerivingViaStealing.hs view
@@ -0,0 +1,5 @@+module DerivingViaStealing where++via = ()+stock = ()+anyclass = ()
+ tests/examples/DerivingViaStealing.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/DerivingViaStealing.hs.parser.golden view
@@ -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+      ]+  , []+  )
+ tests/examples/DerivingViaStealing.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/DerivingViaStealing.hs.prettyprinter.golden view
@@ -0,0 +1,4 @@+module DerivingViaStealing where+via = ()+stock = ()+anyclass = ()
tests/examples/Directory.hs.parser.golden view
@@ -25159,7 +25159,7 @@                                                         "tests/examples/Directory.hs" 766 54 766 56                                                     ]                                                 }-                                              (ClassA+                                              (TypeA                                                  SrcSpanInfo                                                    { srcInfoSpan =                                                        SrcSpan@@ -25173,7 +25173,7 @@                                                            56                                                        ]                                                    }-                                                 (UnQual+                                                 (TyApp                                                     SrcSpanInfo                                                       { srcInfoSpan =                                                           SrcSpan@@ -25181,10 +25181,17 @@                                                             766                                                             47                                                             766-                                                            51-                                                      , srcInfoPoints = []+                                                            56+                                                      , srcInfoPoints =+                                                          [ SrcSpan+                                                              "tests/examples/Directory.hs"+                                                              766+                                                              54+                                                              766+                                                              56+                                                          ]                                                       }-                                                    (Ident+                                                    (TyCon                                                        SrcSpanInfo                                                          { srcInfoSpan =                                                              SrcSpan@@ -25192,34 +25199,62 @@                                                                766                                                                47                                                                766-                                                               51+                                                               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 = []                                                          }-                                                       "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")-                                                 ])))+                                                       (Ident+                                                          SrcSpanInfo+                                                            { srcInfoSpan =+                                                                SrcSpan+                                                                  "tests/examples/Directory.hs"+                                                                  766+                                                                  52+                                                                  766+                                                                  53+                                                            , srcInfoPoints = []+                                                            }+                                                          "a"))))))                                         (TyFun                                            SrcSpanInfo                                              { srcInfoSpan =
tests/examples/DsStrictData.hs.parser.golden view
@@ -370,6 +370,8 @@                    }                  "S3")               Nothing+              Nothing+              Nothing               (TyFun                  SrcSpanInfo                    { srcInfoSpan = SrcSpan "tests/examples/DsStrictData.hs" 12 9 12 23@@ -665,6 +667,8 @@                    , srcInfoPoints = []                    }                  "L2")+              Nothing+              Nothing               Nothing               (TyFun                  SrcSpanInfo
tests/examples/EqualityConstraints1.hs.parser.golden view
@@ -61,47 +61,60 @@                      { srcInfoSpan =                          SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 18                      , srcInfoPoints =-                         [ SrcSpan "tests/examples/EqualityConstraints1.hs" 4 16 4 18 ]+                         [ SrcSpan "tests/examples/EqualityConstraints1.hs" 4 10 4 11+                         , SrcSpan "tests/examples/EqualityConstraints1.hs" 4 16 4 18+                         ]                      }-                   (EqualP+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =-                            SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 15+                            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 10 4 11+                            , SrcSpan "tests/examples/EqualityConstraints1.hs" 4 16 4 18+                            ]                         }-                      (TyVar+                      (TyEquals                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/EqualityConstraints1.hs" 4 8 4 9-                           , srcInfoPoints = []+                               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+                               ]                            }-                         (Ident+                         (TyVar                             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+                            (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 = []                               }-                            (Ident+                            (UnQual                                SrcSpanInfo                                  { srcInfoSpan =                                      SrcSpan "tests/examples/EqualityConstraints1.hs" 4 12 4 15                                  , srcInfoPoints = []                                  }-                               "Int"))))))+                               (Ident+                                  SrcSpanInfo+                                    { srcInfoSpan =+                                        SrcSpan "tests/examples/EqualityConstraints1.hs" 4 12 4 15+                                    , srcInfoPoints = []+                                    }+                                  "Int")))))))              (TyVar                 SrcSpanInfo                   { srcInfoSpan =
tests/examples/FamilyKindSig.hs.parser.golden view
@@ -84,18 +84,18 @@                      , srcInfoPoints = []                      }                    "a")-                (KindFn+                (TyFun                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 31 4 37                      , srcInfoPoints =                          [ SrcSpan "tests/examples/FamilyKindSig.hs" 4 33 4 35 ]                      }-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 31 4 32                         , srcInfoPoints = []                         })-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/FamilyKindSig.hs" 4 36 4 37                         , srcInfoPoints = []
tests/examples/Fixity3.hs.parser.golden view
@@ -88,37 +88,51 @@                                { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 12 2 28                                , srcInfoPoints = [ SrcSpan "tests/examples/Fixity3.hs" 2 26 2 28 ]                                }-                             (ClassA+                             (TypeA                                 SrcSpanInfo                                   { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 12 2 28                                   , srcInfoPoints =                                       [ SrcSpan "tests/examples/Fixity3.hs" 2 26 2 28 ]                                   }-                                (UnQual+                                (TyApp                                    SrcSpanInfo-                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 12 2 23-                                     , srcInfoPoints = []+                                     { srcInfoSpan = SrcSpan "tests/examples/Fixity3.hs" 2 12 2 28+                                     , srcInfoPoints =+                                         [ SrcSpan "tests/examples/Fixity3.hs" 2 26 2 28 ]                                      }-                                   (Ident+                                   (TyCon                                       SrcSpanInfo                                         { srcInfoSpan =-                                            SrcSpan "tests/examples/Fixity3.hs" 2 12 2 23+                                            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 = []                                         }-                                      "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")-                                ])))+                                      (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
tests/examples/FlexibleContextsWithoutVars.hs.parser.golden view
@@ -64,7 +64,7 @@                          [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 16 2 18                          ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 18@@ -72,27 +72,36 @@                             [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 16 2 18                             ]                         }-                      (Qual+                      (TyCon                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 15-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 18+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 16 2 18+                               ]                            }-                         (ModuleName-                            SrcSpanInfo-                              { srcInfoSpan =-                                  SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 15-                              , srcInfoPoints = []-                              }-                            "Log")-                         (Ident+                         (Qual                             SrcSpanInfo                               { srcInfoSpan =                                   SrcSpan "tests/examples/FlexibleContextsWithoutVars.hs" 2 6 2 15                               , srcInfoPoints = []                               }-                            "Stack"))-                      [])))+                            (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 =
tests/examples/ForallInInstance.hs.parser.golden view
@@ -95,40 +95,53 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 32                         , srcInfoPoints =                             [ SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 27-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 32+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/ForallInInstance.hs" 4 30 4 32 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/ForallInInstance.hs" 4 20 4 27+                                  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 = []                               }-                            "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")-                      ])))+                            (Ident+                               SrcSpanInfo+                                 { srcInfoSpan =+                                     SrcSpan "tests/examples/ForallInInstance.hs" 4 28 4 29+                                 , srcInfoPoints = []+                                 }+                               "a"))))))              (IHApp                 SrcSpanInfo                   { srcInfoSpan =
tests/examples/GADTRecord.hs.parser.golden view
@@ -72,6 +72,8 @@                    , srcInfoPoints = []                    }                  "T")+              Nothing+              Nothing               (Just                  [ FieldDecl                      SrcSpanInfo
+ tests/examples/GADTRecord2.hs view
@@ -0,0 +1,4 @@+{-# LANGUAGE GADTs #-}++data T where+  T :: () => { field :: Int } -> T
+ tests/examples/GADTRecord2.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/GADTRecord2.hs.parser.golden view
@@ -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")))+          ]+          []+      ]+  , []+  )
+ tests/examples/GADTRecord2.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/GADTRecord2.hs.prettyprinter.golden view
@@ -0,0 +1,4 @@+{-# LANGUAGE GADTs #-}++data T where+        T :: () => {field :: Int} -> T
tests/examples/GadtDeriving.hs.parser.golden view
@@ -70,6 +70,8 @@                    }                  "Foo")               Nothing+              Nothing+              Nothing               (TyFun                  SrcSpanInfo                    { srcInfoSpan = SrcSpan "tests/examples/GadtDeriving.hs" 4 12 4 22
tests/examples/GadtRecordFields.hs.parser.golden view
@@ -83,6 +83,8 @@                    , srcInfoPoints = []                    }                  "TCon")+              Nothing+              Nothing               (Just                  [ FieldDecl                      SrcSpanInfo@@ -186,6 +188,8 @@                    , srcInfoPoints = []                    }                  "TCon2")+              Nothing+              Nothing               Nothing               (TyCon                  SrcSpanInfo
tests/examples/GadtStrictness.hs.parser.golden view
@@ -70,6 +70,8 @@                    }                  "X")               Nothing+              Nothing+              Nothing               (TyFun                  SrcSpanInfo                    { srcInfoSpan = SrcSpan "tests/examples/GadtStrictness.hs" 4 8 4 17
tests/examples/GenericTree.hs.parser.golden view
@@ -106,34 +106,46 @@                             , SrcSpan "tests/examples/GenericTree.hs" 6 24 6 26                             ]                         }-                      (ClassA+                      (TypeA                          SrcSpanInfo                            { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22                            , srcInfoPoints = []                            }-                         (UnQual+                         (TyApp                             SrcSpanInfo-                              { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 20+                              { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22                               , srcInfoPoints = []                               }-                            (Ident+                            (TyCon                                SrcSpanInfo-                                 { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 20+                                 { srcInfoSpan = SrcSpan "tests/examples/GenericTree.hs" 6 12 6 22                                  , 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")-                         ]))))+                               (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@@ -217,39 +229,51 @@                                       , SrcSpan "tests/examples/GenericTree.hs" 6 65 6 67                                       ]                                   }-                                (ClassA+                                (TypeA                                    SrcSpanInfo                                      { srcInfoSpan =                                          SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63                                      , srcInfoPoints = []                                      }-                                   (UnQual+                                   (TyApp                                       SrcSpanInfo                                         { srcInfoSpan =-                                            SrcSpan "tests/examples/GenericTree.hs" 6 53 6 61+                                            SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63                                         , srcInfoPoints = []                                         }-                                      (Ident+                                      (TyCon                                          SrcSpanInfo                                            { srcInfoSpan =-                                               SrcSpan "tests/examples/GenericTree.hs" 6 53 6 61+                                               SrcSpan "tests/examples/GenericTree.hs" 6 53 6 63                                            , 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")-                                   ]))))+                                         (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
+ tests/examples/ImportQualifiedPost.hs view
@@ -0,0 +1,4 @@+{-# LANGUAGE ImportQualifiedPost #-}+module ImportQualifiedPost where++import Data.List qualified as L
+ tests/examples/ImportQualifiedPost.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/ImportQualifiedPost.hs.parser.golden view
@@ -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+          }+      ]+      []+  , []+  )
+ tests/examples/ImportQualifiedPost.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/ImportQualifiedPost.hs.prettyprinter.golden view
@@ -0,0 +1,3 @@+{-# LANGUAGE ImportQualifiedPost #-}+module ImportQualifiedPost where+import qualified Data.List as L
tests/examples/InfixTypeMinus.hs.parser.golden view
@@ -121,7 +121,7 @@                      , srcInfoPoints = []                      }                    "n")-                (KindVar+                (TyCon                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InfixTypeMinus.hs" 5 16 5 19@@ -156,6 +156,8 @@                    }                  "VCons")               Nothing+              Nothing+              Nothing               (TyForall                  SrcSpanInfo                    { srcInfoSpan =@@ -184,88 +186,98 @@                                 , SrcSpan "tests/examples/InfixTypeMinus.hs" 5 50 5 52                                 ]                             }-                          (EqualP+                          (TypeA                              SrcSpanInfo                                { srcInfoSpan =                                    SrcSpan "tests/examples/InfixTypeMinus.hs" 5 39 5 48                                , srcInfoPoints =                                    [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 41 5 42 ]                                }-                             (TyVar+                             (TyEquals                                 SrcSpanInfo                                   { srcInfoSpan =-                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 5 39 5 40-                                  , srcInfoPoints = []+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 5 39 5 48+                                  , srcInfoPoints =+                                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 5 41 5 42 ]                                   }-                                (Ident+                                (TyVar                                    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+                                   (Ident+                                      SrcSpanInfo+                                        { srcInfoSpan =+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 5 39 5 40+                                        , srcInfoPoints = []+                                        }+                                      "m"))+                                (TyParen                                    SrcSpanInfo                                      { srcInfoSpan =-                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 5 44 5 47-                                     , srcInfoPoints = []+                                         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+                                         ]                                      }-                                   (TyVar+                                   (TyInfix                                       SrcSpanInfo                                         { srcInfoSpan =-                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 5 44 5 45+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 5 44 5 47                                         , srcInfoPoints = []                                         }-                                      (Ident+                                      (TyVar                                          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+                                         (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 = []                                            }-                                         (Symbol+                                         (UnQual                                             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+                                            (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 = []                                            }-                                         1-                                         "1"))))))))+                                         (PromotedInteger+                                            SrcSpanInfo+                                              { srcInfoSpan =+                                                  SrcSpan+                                                    "tests/examples/InfixTypeMinus.hs" 5 46 5 47+                                              , srcInfoPoints = []+                                              }+                                            1+                                            "1")))))))))                  (TyFun                     SrcSpanInfo                       { srcInfoSpan =@@ -425,7 +437,7 @@                      , srcInfoPoints = []                      }                    "n")-                (KindVar+                (TyCon                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InfixTypeMinus.hs" 6 16 6 19@@ -460,6 +472,8 @@                    }                  "VCons")               Nothing+              Nothing+              Nothing               (TyForall                  SrcSpanInfo                    { srcInfoSpan =@@ -488,88 +502,98 @@                                 , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 50 6 52                                 ]                             }-                          (EqualP+                          (TypeA                              SrcSpanInfo                                { srcInfoSpan =                                    SrcSpan "tests/examples/InfixTypeMinus.hs" 6 39 6 48                                , srcInfoPoints =                                    [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 45 6 46 ]                                }-                             (TyParen+                             (TyEquals                                 SrcSpanInfo                                   { srcInfoSpan =-                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 6 39 6 44+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 6 39 6 48                                   , srcInfoPoints =-                                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 39 6 40-                                      , SrcSpan "tests/examples/InfixTypeMinus.hs" 6 43 6 44-                                      ]+                                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 6 45 6 46 ]                                   }-                                (TyInfix+                                (TyParen                                    SrcSpanInfo                                      { srcInfoSpan =-                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 6 40 6 43-                                     , srcInfoPoints = []+                                         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+                                         ]                                      }-                                   (TyVar+                                   (TyInfix                                       SrcSpanInfo                                         { srcInfoSpan =-                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 6 40 6 41+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 6 40 6 43                                         , srcInfoPoints = []                                         }-                                      (Ident+                                      (TyVar                                          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+                                         (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 = []                                            }-                                         (Symbol+                                         (UnQual                                             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+                                            (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 = []                                            }-                                         1-                                         "1"))))-                             (TyVar-                                SrcSpanInfo-                                  { srcInfoSpan =-                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 6 47 6 48-                                  , srcInfoPoints = []-                                  }-                                (Ident+                                         (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 = []                                      }-                                   "m"))))))+                                   (Ident+                                      SrcSpanInfo+                                        { srcInfoSpan =+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 6 47 6 48+                                        , srcInfoPoints = []+                                        }+                                      "m")))))))                  (TyFun                     SrcSpanInfo                       { srcInfoSpan =@@ -729,7 +753,7 @@                      , srcInfoPoints = []                      }                    "n")-                (KindVar+                (TyCon                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InfixTypeMinus.hs" 7 16 7 19@@ -764,6 +788,8 @@                    }                  "VCons")               Nothing+              Nothing+              Nothing               (TyForall                  SrcSpanInfo                    { srcInfoSpan =@@ -792,88 +818,98 @@                                 , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 50 7 52                                 ]                             }-                          (EqualP+                          (TypeA                              SrcSpanInfo                                { srcInfoSpan =                                    SrcSpan "tests/examples/InfixTypeMinus.hs" 7 39 7 48                                , srcInfoPoints =                                    [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 45 7 46 ]                                }-                             (TyParen+                             (TyEquals                                 SrcSpanInfo                                   { srcInfoSpan =-                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 7 39 7 44+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 7 39 7 48                                   , srcInfoPoints =-                                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 39 7 40-                                      , SrcSpan "tests/examples/InfixTypeMinus.hs" 7 43 7 44-                                      ]+                                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 7 45 7 46 ]                                   }-                                (TyInfix+                                (TyParen                                    SrcSpanInfo                                      { srcInfoSpan =-                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 7 40 7 43-                                     , srcInfoPoints = []+                                         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+                                         ]                                      }-                                   (TyVar+                                   (TyInfix                                       SrcSpanInfo                                         { srcInfoSpan =-                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 7 40 7 41+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 7 40 7 43                                         , srcInfoPoints = []                                         }-                                      (Ident+                                      (TyVar                                          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+                                         (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 = []                                            }-                                         (Symbol+                                         (UnQual                                             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+                                            (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 = []                                            }-                                         1-                                         "1"))))-                             (TyVar-                                SrcSpanInfo-                                  { srcInfoSpan =-                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 7 47 7 48-                                  , srcInfoPoints = []-                                  }-                                (Ident+                                         (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 = []                                      }-                                   "n"))))))+                                   (Ident+                                      SrcSpanInfo+                                        { srcInfoSpan =+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 7 47 7 48+                                        , srcInfoPoints = []+                                        }+                                      "n")))))))                  (TyFun                     SrcSpanInfo                       { srcInfoSpan =@@ -1033,7 +1069,7 @@                      , srcInfoPoints = []                      }                    "n")-                (KindVar+                (TyCon                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InfixTypeMinus.hs" 8 16 8 19@@ -1068,6 +1104,8 @@                    }                  "VCons")               Nothing+              Nothing+              Nothing               (TyForall                  SrcSpanInfo                    { srcInfoSpan =@@ -1096,88 +1134,98 @@                                 , SrcSpan "tests/examples/InfixTypeMinus.hs" 8 50 8 52                                 ]                             }-                          (EqualP+                          (TypeA                              SrcSpanInfo                                { srcInfoSpan =                                    SrcSpan "tests/examples/InfixTypeMinus.hs" 8 39 8 48                                , srcInfoPoints =                                    [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 41 8 42 ]                                }-                             (TyVar+                             (TyEquals                                 SrcSpanInfo                                   { srcInfoSpan =-                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 8 39 8 40-                                  , srcInfoPoints = []+                                      SrcSpan "tests/examples/InfixTypeMinus.hs" 8 39 8 48+                                  , srcInfoPoints =+                                      [ SrcSpan "tests/examples/InfixTypeMinus.hs" 8 41 8 42 ]                                   }-                                (Ident+                                (TyVar                                    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+                                   (Ident+                                      SrcSpanInfo+                                        { srcInfoSpan =+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 8 39 8 40+                                        , srcInfoPoints = []+                                        }+                                      "n"))+                                (TyParen                                    SrcSpanInfo                                      { srcInfoSpan =-                                         SrcSpan "tests/examples/InfixTypeMinus.hs" 8 44 8 47-                                     , srcInfoPoints = []+                                         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+                                         ]                                      }-                                   (TyVar+                                   (TyInfix                                       SrcSpanInfo                                         { srcInfoSpan =-                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 8 44 8 45+                                            SrcSpan "tests/examples/InfixTypeMinus.hs" 8 44 8 47                                         , srcInfoPoints = []                                         }-                                      (Ident+                                      (TyVar                                          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+                                         (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 = []                                            }-                                         (Symbol+                                         (UnQual                                             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+                                            (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 = []                                            }-                                         1-                                         "1"))))))))+                                         (PromotedInteger+                                            SrcSpanInfo+                                              { srcInfoSpan =+                                                  SrcSpan+                                                    "tests/examples/InfixTypeMinus.hs" 8 46 8 47+                                              , srcInfoPoints = []+                                              }+                                            1+                                            "1")))))))))                  (TyFun                     SrcSpanInfo                       { srcInfoSpan =
tests/examples/InjectiveTypeFamilies.hs.parser.golden view
@@ -415,25 +415,19 @@                         , srcInfoPoints = []                         }                       "result")-                   (KindVar+                   (TyVar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 14 34 14 35                         , srcInfoPoints = []                         }-                      (UnQual+                      (Ident                          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"))))))+                         "k")))))           (Just              (InjectivityInfo                 SrcSpanInfo@@ -1022,25 +1016,19 @@                            , srcInfoPoints = []                            }                          "a")-                      (KindVar+                      (TyVar                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 21 22 22                            , srcInfoPoints = []                            }-                         (UnQual+                         (Ident                             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")))))+                            "k"))))                 (UnkindedVar                    SrcSpanInfo                      { srcInfoSpan =@@ -1071,25 +1059,19 @@                      , srcInfoPoints = []                      }                    "c")-                (KindVar+                (TyVar                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 22 32 22 33                      , srcInfoPoints = []                      }-                   (UnQual+                   (Ident                       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")))))+                      "k"))))           (Just              (TyVarSig                 SrcSpanInfo@@ -1576,25 +1558,19 @@                      , srcInfoPoints = []                      }                    "b")-                (KindVar+                (TyVar                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 29 23 29 24                      , srcInfoPoints = []                      }-                   (UnQual+                   (Ident                       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")))))+                      "k"))))           (Just              (TyVarSig                 SrcSpanInfo@@ -2988,7 +2964,7 @@                            , srcInfoPoints = []                            }                          "a")-                      (KindStar+                      (TyStar                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 27 53 28@@ -3011,7 +2987,7 @@                         , srcInfoPoints = []                         }                       "b")-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 36 53 37@@ -3034,7 +3010,7 @@                      , srcInfoPoints = []                      }                    "c")-                (KindStar+                (TyStar                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 53 45 53 46@@ -3519,25 +3495,19 @@                      , srcInfoPoints = []                      }                    "b")-                (KindVar+                (TyVar                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 58 29 58 30                      , srcInfoPoints = []                      }-                   (UnQual+                   (Ident                       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")))))+                      "k"))))           (Just              (TyVarSig                 SrcSpanInfo@@ -8793,25 +8763,19 @@                      , srcInfoPoints = []                      }                    "a")-                (KindVar+                (TyVar                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 21 170 23                      , srcInfoPoints = []                      }-                   (UnQual+                   (Ident                       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")))))+                      "k1"))))           (Just              (TyVarSig                 SrcSpanInfo@@ -8837,25 +8801,19 @@                         , srcInfoPoints = []                         }                       "r")-                   (KindVar+                   (TyVar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 170 33 170 35                         , srcInfoPoints = []                         }-                      (UnQual+                      (Ident                          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"))))))+                         "k2")))))           (Just              (InjectivityInfo                 SrcSpanInfo@@ -9220,7 +9178,7 @@                      , srcInfoPoints = []                      }                    "a")-                (KindStar+                (TyStar                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 176 19 176 20@@ -9295,13 +9253,13 @@                      , srcInfoPoints = []                      }                    "kproxy")-                (KindApp+                (TyApp                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 27 177 35                      , srcInfoPoints = []                      }-                   (KindVar+                   (TyCon                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 27 177 33@@ -9320,25 +9278,19 @@                               , srcInfoPoints = []                               }                             "KProxy")))-                   (KindVar+                   (TyVar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 177 34 177 35                         , srcInfoPoints = []                         }-                      (UnQual+                      (Ident                          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"))))))+                         "k")))))           (Just              (TyVarSig                 SrcSpanInfo@@ -9458,13 +9410,13 @@                               , srcInfoPoints = []                               }                             "KProxy"))))-                (KindApp+                (TyApp                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 30 178 41                      , srcInfoPoints = []                      }-                   (KindVar+                   (TyCon                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 30 178 36@@ -9483,7 +9435,7 @@                               , srcInfoPoints = []                               }                             "KProxy")))-                   (KindVar+                   (TyCon                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 178 37 178 41@@ -9594,13 +9546,13 @@                               , srcInfoPoints = []                               }                             "KProxy"))))-                (KindApp+                (TyApp                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 30 179 38                      , srcInfoPoints = []                      }-                   (KindVar+                   (TyCon                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 30 179 36@@ -9619,7 +9571,7 @@                               , srcInfoPoints = []                               }                             "KProxy")))-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 179 37 179 38@@ -9729,13 +9681,13 @@                                  , srcInfoPoints = []                                  }                                "KProxy"))))-                   (KindApp+                   (TyApp                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 29 181 37                         , srcInfoPoints = []                         }-                      (KindVar+                      (TyCon                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 29 181 35@@ -9754,25 +9706,19 @@                                  , srcInfoPoints = []                                  }                                "KProxy")))-                      (KindVar+                      (TyVar                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 36 181 37                            , srcInfoPoints = []                            }-                         (UnQual+                         (Ident                             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"))))))+                            "k")))))              (TyApp                 SrcSpanInfo                   { srcInfoSpan =@@ -9836,13 +9782,13 @@                                  , srcInfoPoints = []                                  }                                "KProxy"))))-                   (KindApp+                   (TyApp                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 57 181 65                         , srcInfoPoints = []                         }-                      (KindVar+                      (TyCon                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 57 181 63@@ -9861,25 +9807,19 @@                                  , srcInfoPoints = []                                  }                                "KProxy")))-                      (KindVar+                      (TyVar                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 181 64 181 65                            , srcInfoPoints = []                            }-                         (UnQual+                         (Ident                             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")))))))+                            "k"))))))       , FunBind           SrcSpanInfo             { srcInfoSpan =@@ -12015,25 +11955,19 @@                      , srcInfoPoints = []                      }                    "a")-                (KindVar+                (TyVar                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 22 217 23                      , srcInfoPoints = []                      }-                   (UnQual+                   (Ident                       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")))))+                      "k"))))           (Just              (TyVarSig                 SrcSpanInfo@@ -12059,25 +11993,19 @@                         , srcInfoPoints = []                         }                       "result")-                   (KindVar+                   (TyVar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 217 38 217 39                         , srcInfoPoints = []                         }-                      (UnQual+                      (Ident                          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"))))))+                         "k")))))           (Just              (InjectivityInfo                 SrcSpanInfo@@ -12215,25 +12143,19 @@                         , srcInfoPoints = []                         }                       "a")-                   (KindVar+                   (TyVar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 222 27 222 28                         , srcInfoPoints = []                         }-                      (UnQual+                      (Ident                          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")))))+                         "k"))))              (UnkindedVar                 SrcSpanInfo                   { srcInfoSpan =@@ -12556,25 +12478,19 @@                         , srcInfoPoints = []                         }                       "a")-                   (KindVar+                   (TyVar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 227 30 227 31                         , srcInfoPoints = []                         }-                      (UnQual+                      (Ident                          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")))))+                         "k"))))              (UnkindedVar                 SrcSpanInfo                   { srcInfoSpan =@@ -12818,25 +12734,19 @@                         , srcInfoPoints = []                         }                       "a")-                   (KindVar+                   (TyVar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 22 232 23                         , srcInfoPoints = []                         }-                      (UnQual+                      (Ident                          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")))))+                         "k"))))              (KindedVar                 SrcSpanInfo                   { srcInfoSpan =@@ -12854,25 +12764,19 @@                      , srcInfoPoints = []                      }                    "b")-                (KindVar+                (TyVar                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 31 232 32                      , srcInfoPoints = []                      }-                   (UnQual+                   (Ident                       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")))))+                      "k"))))           (Just              (TyVarSig                 SrcSpanInfo@@ -12898,25 +12802,19 @@                         , srcInfoPoints = []                         }                       "r")-                   (KindVar+                   (TyVar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 232 42 232 44                         , srcInfoPoints = []                         }-                      (UnQual+                      (Ident                          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"))))))+                         "k2")))))           (Just              (InjectivityInfo                 SrcSpanInfo@@ -13079,20 +12977,20 @@                            , srcInfoPoints = []                            }                          "repr")-                      (KindFn+                      (TyFun                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 26 236 32                            , srcInfoPoints =                                [ SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 28 236 30 ]                            }-                         (KindStar+                         (TyStar                             SrcSpanInfo                               { srcInfoSpan =                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 26 236 27                               , srcInfoPoints = []                               })-                         (KindStar+                         (TyStar                             SrcSpanInfo                               { srcInfoSpan =                                   SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 31 236 32@@ -13115,7 +13013,7 @@                         , srcInfoPoints = []                         }                       "a")-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 40 236 41@@ -13138,7 +13036,7 @@                      , srcInfoPoints = []                      }                    "b")-                (KindStar+                (TyStar                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 49 236 50@@ -13169,7 +13067,7 @@                         , srcInfoPoints = []                         }                       "r")-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 236 60 236 61@@ -15569,40 +15467,53 @@                             , SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 34 254 36                             ]                         }-                      (ClassA+                      (TypeA                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 20 254 31                            , srcInfoPoints = []                            }-                         (UnQual+                         (TyApp                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 20 254 29+                                  SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 20 254 31                               , srcInfoPoints = []                               }-                            (Ident+                            (TyCon                                SrcSpanInfo                                  { srcInfoSpan =-                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 20 254 29+                                     SrcSpan "tests/examples/InjectiveTypeFamilies.hs" 254 20 254 31                                  , 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")-                         ]))))+                               (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 =
tests/examples/MultiCtxt.hs.parser.golden view
@@ -72,35 +72,46 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/MultiCtxt.hs" 5 21 5 23 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 23                         , srcInfoPoints =                             [ SrcSpan "tests/examples/MultiCtxt.hs" 5 21 5 23 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo-                           { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 18-                           , srcInfoPoints = []+                           { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 23+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/MultiCtxt.hs" 5 21 5 23 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo-                              { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 16 5 18+                              { 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 = []                               }-                            "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")-                      ])))+                            (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@@ -122,35 +133,49 @@                            , srcInfoPoints =                                [ SrcSpan "tests/examples/MultiCtxt.hs" 5 32 5 34 ]                            }-                         (ClassA+                         (TypeA                             SrcSpanInfo                               { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 34                               , srcInfoPoints =                                   [ SrcSpan "tests/examples/MultiCtxt.hs" 5 32 5 34 ]                               }-                            (UnQual+                            (TyApp                                SrcSpanInfo-                                 { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 29-                                 , srcInfoPoints = []+                                 { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 34+                                 , srcInfoPoints =+                                     [ SrcSpan "tests/examples/MultiCtxt.hs" 5 32 5 34 ]                                  }-                               (Ident+                               (TyCon                                   SrcSpanInfo-                                    { srcInfoSpan = SrcSpan "tests/examples/MultiCtxt.hs" 5 25 5 29+                                    { 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 = []                                     }-                                  "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")-                            ])))+                                  (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
tests/examples/MultiParam.hs.parser.golden view
@@ -56,46 +56,64 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/MultiParam.hs" 3 23 3 25 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 25                         , srcInfoPoints =                             [ SrcSpan "tests/examples/MultiParam.hs" 3 23 3 25 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo-                           { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 18-                           , srcInfoPoints = []+                           { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 25+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/MultiParam.hs" 3 23 3 25 ]                            }-                         (Ident+                         (TyApp                             SrcSpanInfo-                              { srcInfoSpan = SrcSpan "tests/examples/MultiParam.hs" 3 8 3 18+                              { 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 = []                               }-                            "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")-                      ])))+                            (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
+ tests/examples/NoStartNumIdents.hs view
@@ -0,0 +1,1 @@+1a = ()
+ tests/examples/NoStartNumIdents.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+ParseFailed (SrcLoc "tests/examples/NoStartNumIdents.hs" 2 1) "Parse error in pattern: 1"
+ tests/examples/NoStartNumIdents.hs.parser.golden view
@@ -0,0 +1,3 @@+ParseFailed+  (SrcLoc "tests/examples/NoStartNumIdents.hs" 2 1)+  "Parse error in pattern: 1"
+ tests/examples/NoStartNumIdents.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+ParseFailed (SrcLoc "tests/examples/NoStartNumIdents.hs" 2 1) "Parse error in pattern: 1"
+ tests/examples/NoStartNumIdents.hs.prettyprinter.golden view
@@ -0,0 +1,1 @@+ParseFailed (SrcLoc "tests/examples/NoStartNumIdents.hs" 2 1) "Parse error in pattern: 1"
tests/examples/OverloadedLabels.hs.parser.golden view
@@ -425,54 +425,74 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/OverloadedLabels.hs" 19 23 19 25 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 25                         , srcInfoPoints =                             [ SrcSpan "tests/examples/OverloadedLabels.hs" 19 23 19 25 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 13-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 25+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/OverloadedLabels.hs" 19 23 19 25 ]                            }-                         (Ident+                         (TyApp                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/OverloadedLabels.hs" 19 6 19 13+                                  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 = []                               }-                            "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")-                      ])))+                            (Ident+                               SrcSpanInfo+                                 { srcInfoSpan =+                                     SrcSpan "tests/examples/OverloadedLabels.hs" 19 21 19 22+                                 , srcInfoPoints = []+                                 }+                               "t"))))))              (TyVar                 SrcSpanInfo                   { srcInfoSpan =
tests/examples/PartialSignatures.hs.parser.golden view
@@ -4024,14 +4024,21 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PartialSignatures.hs" 51 12 51 14 ]                      }-                   (WildCardA+                   (TypeA                       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 10 51 14+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 51 12 51 14 ]+                           }+                         Nothing))))              (TyWildCard                 SrcSpanInfo                   { srcInfoSpan =@@ -4110,14 +4117,21 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PartialSignatures.hs" 55 12 55 14 ]                      }-                   (WildCardA+                   (TypeA                       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 10 55 14+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 55 12 55 14 ]+                           }+                         Nothing))))              (TyWildCard                 SrcSpanInfo                   { srcInfoSpan =@@ -4440,47 +4454,60 @@                      { srcInfoSpan =                          SrcSpan "tests/examples/PartialSignatures.hs" 61 8 61 19                      , srcInfoPoints =-                         [ SrcSpan "tests/examples/PartialSignatures.hs" 61 17 61 19 ]+                         [ SrcSpan "tests/examples/PartialSignatures.hs" 61 10 61 11+                         , SrcSpan "tests/examples/PartialSignatures.hs" 61 17 61 19+                         ]                      }-                   (EqualP+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =-                            SrcSpan "tests/examples/PartialSignatures.hs" 61 8 61 16+                            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 10 61 11+                            , SrcSpan "tests/examples/PartialSignatures.hs" 61 17 61 19+                            ]                         }-                      (TyVar+                      (TyEquals                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/PartialSignatures.hs" 61 8 61 9-                           , srcInfoPoints = []+                               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+                               ]                            }-                         (Ident+                         (TyVar                             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+                            (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 = []                               }-                            (Ident+                            (UnQual                                SrcSpanInfo                                  { srcInfoSpan =                                      SrcSpan "tests/examples/PartialSignatures.hs" 61 12 61 16                                  , srcInfoPoints = []                                  }-                               "Bool"))))))+                               (Ident+                                  SrcSpanInfo+                                    { srcInfoSpan =+                                        SrcSpan "tests/examples/PartialSignatures.hs" 61 12 61 16+                                    , srcInfoPoints = []+                                    }+                                  "Bool")))))))              (TyTuple                 SrcSpanInfo                   { srcInfoSpan =@@ -5765,14 +5792,21 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PartialSignatures.hs" 82 15 82 17 ]                      }-                   (WildCardA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/PartialSignatures.hs" 82 13 82 17                         , srcInfoPoints =                             [ SrcSpan "tests/examples/PartialSignatures.hs" 82 15 82 17 ]                         }-                      Nothing)))+                      (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 =@@ -6093,46 +6127,63 @@                          , SrcSpan "tests/examples/PartialSignatures.hs" 85 25 85 27                          ]                      }-                   [ ClassA+                   [ TypeA                        SrcSpanInfo                          { srcInfoSpan =                              SrcSpan "tests/examples/PartialSignatures.hs" 85 14 85 20                          , srcInfoPoints = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/PartialSignatures.hs" 85 14 85 18+                                SrcSpan "tests/examples/PartialSignatures.hs" 85 14 85 20                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/PartialSignatures.hs" 85 14 85 18+                                   SrcSpan "tests/examples/PartialSignatures.hs" 85 14 85 20                                , 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")-                       ]-                   , WildCardA+                             (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 = []                          }-                       Nothing+                       (TyWildCard+                          SrcSpanInfo+                            { srcInfoSpan =+                                SrcSpan "tests/examples/PartialSignatures.hs" 85 22 85 23+                            , srcInfoPoints = []+                            }+                          Nothing)                    ]))              (TyFun                 SrcSpanInfo@@ -6294,79 +6345,107 @@                          , SrcSpan "tests/examples/PartialSignatures.hs" 88 33 88 35                          ]                      }-                   [ ClassA+                   [ TypeA                        SrcSpanInfo                          { srcInfoSpan =                              SrcSpan "tests/examples/PartialSignatures.hs" 88 14 88 20                          , srcInfoPoints = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/PartialSignatures.hs" 88 14 88 18+                                SrcSpan "tests/examples/PartialSignatures.hs" 88 14 88 20                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/PartialSignatures.hs" 88 14 88 18+                                   SrcSpan "tests/examples/PartialSignatures.hs" 88 14 88 20                                , 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")-                       ]-                   , ClassA+                             (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 = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/PartialSignatures.hs" 88 22 88 26+                                SrcSpan "tests/examples/PartialSignatures.hs" 88 22 88 28                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/PartialSignatures.hs" 88 22 88 26+                                   SrcSpan "tests/examples/PartialSignatures.hs" 88 22 88 28                                , 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")-                       ]-                   , WildCardA+                             (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 = []                          }-                       Nothing+                       (TyWildCard+                          SrcSpanInfo+                            { srcInfoSpan =+                                SrcSpan "tests/examples/PartialSignatures.hs" 88 30 88 31+                            , srcInfoPoints = []+                            }+                          Nothing)                    ]))              (TyFun                 SrcSpanInfo@@ -6527,46 +6606,63 @@                          , SrcSpan "tests/examples/PartialSignatures.hs" 91 23 91 25                          ]                      }-                   [ ClassA+                   [ TypeA                        SrcSpanInfo                          { srcInfoSpan =                              SrcSpan "tests/examples/PartialSignatures.hs" 91 14 91 18                          , srcInfoPoints = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/PartialSignatures.hs" 91 14 91 16+                                SrcSpan "tests/examples/PartialSignatures.hs" 91 14 91 18                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/PartialSignatures.hs" 91 14 91 16+                                   SrcSpan "tests/examples/PartialSignatures.hs" 91 14 91 18                                , 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")-                       ]-                   , WildCardA+                             (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 = []                          }-                       Nothing+                       (TyWildCard+                          SrcSpanInfo+                            { srcInfoSpan =+                                SrcSpan "tests/examples/PartialSignatures.hs" 91 20 91 21+                            , srcInfoPoints = []+                            }+                          Nothing)                    ]))              (TyFun                 SrcSpanInfo@@ -6729,112 +6825,151 @@                          , SrcSpan "tests/examples/PartialSignatures.hs" 94 39 94 41                          ]                      }-                   [ ClassA+                   [ TypeA                        SrcSpanInfo                          { srcInfoSpan =                              SrcSpan "tests/examples/PartialSignatures.hs" 94 14 94 18                          , srcInfoPoints = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/PartialSignatures.hs" 94 14 94 16+                                SrcSpan "tests/examples/PartialSignatures.hs" 94 14 94 18                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 14 94 16+                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 14 94 18                                , 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")-                       ]-                   , ClassA+                             (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 = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/PartialSignatures.hs" 94 20 94 24+                                SrcSpan "tests/examples/PartialSignatures.hs" 94 20 94 26                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 20 94 24+                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 20 94 26                                , 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")-                       ]-                   , ClassA+                             (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 = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/PartialSignatures.hs" 94 28 94 32+                                SrcSpan "tests/examples/PartialSignatures.hs" 94 28 94 34                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 28 94 32+                                   SrcSpan "tests/examples/PartialSignatures.hs" 94 28 94 34                                , 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")-                       ]-                   , WildCardA+                             (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 = []                          }-                       Nothing+                       (TyWildCard+                          SrcSpanInfo+                            { srcInfoSpan =+                                SrcSpan "tests/examples/PartialSignatures.hs" 94 36 94 37+                            , srcInfoPoints = []+                            }+                          Nothing)                    ]))              (TyFun                 SrcSpanInfo@@ -6991,14 +7126,21 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PartialSignatures.hs" 98 10 98 12 ]                      }-                   (WildCardA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/PartialSignatures.hs" 98 8 98 12                         , srcInfoPoints =                             [ SrcSpan "tests/examples/PartialSignatures.hs" 98 10 98 12 ]                         }-                      Nothing)))+                      (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 =@@ -7089,14 +7231,21 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PartialSignatures.hs" 105 10 105 12 ]                      }-                   (WildCardA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/PartialSignatures.hs" 105 8 105 12                         , srcInfoPoints =                             [ SrcSpan "tests/examples/PartialSignatures.hs" 105 10 105 12 ]                         }-                      Nothing)))+                      (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 =@@ -7181,14 +7330,21 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PartialSignatures.hs" 109 10 109 12 ]                      }-                   (WildCardA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/PartialSignatures.hs" 109 8 109 12                         , srcInfoPoints =                             [ SrcSpan "tests/examples/PartialSignatures.hs" 109 10 109 12 ]                         }-                      Nothing)))+                      (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 =@@ -10535,13 +10691,19 @@                             , SrcSpan "tests/examples/PartialSignatures.hs" 187 10 187 12                             ]                         }-                      (WildCardA+                      (TypeA                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/PartialSignatures.hs" 187 7 187 8                            , srcInfoPoints = []                            }-                         Nothing))))+                         (TyWildCard+                            SrcSpanInfo+                              { srcInfoSpan =+                                  SrcSpan "tests/examples/PartialSignatures.hs" 187 7 187 8+                              , srcInfoPoints = []+                              }+                            Nothing)))))              (TyFun                 SrcSpanInfo                   { srcInfoSpan =@@ -12349,41 +12511,54 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PartialSignatures.hs" 230 20 230 22 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 22                         , srcInfoPoints =                             [ SrcSpan "tests/examples/PartialSignatures.hs" 230 20 230 22 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 16-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 22+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 230 20 230 22 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/PartialSignatures.hs" 230 12 230 16+                                  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 = []                               }-                            "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"))-                      ])))+                            (Just+                               (Ident+                                  SrcSpanInfo+                                    { srcInfoSpan =+                                        SrcSpan "tests/examples/PartialSignatures.hs" 230 18 230 19+                                    , srcInfoPoints = []+                                    }+                                  "a")))))))              (TyFun                 SrcSpanInfo                   { srcInfoSpan =@@ -13138,41 +13313,54 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PartialSignatures.hs" 246 30 246 32 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 32                         , srcInfoPoints =                             [ SrcSpan "tests/examples/PartialSignatures.hs" 246 30 246 32 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 26-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 32+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 246 30 246 32 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/PartialSignatures.hs" 246 22 246 26+                                  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 = []                               }-                            "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"))-                      ])))+                            (Just+                               (Ident+                                  SrcSpanInfo+                                    { srcInfoSpan =+                                        SrcSpan "tests/examples/PartialSignatures.hs" 246 28 246 29+                                    , srcInfoPoints = []+                                    }+                                  "x")))))))              (TyFun                 SrcSpanInfo                   { srcInfoSpan =@@ -14211,14 +14399,21 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PartialSignatures.hs" 261 9 261 11 ]                      }-                   (WildCardA+                   (TypeA                       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 7 261 11+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/PartialSignatures.hs" 261 9 261 11 ]+                           }+                         Nothing))))              (TyWildCard                 SrcSpanInfo                   { srcInfoSpan =@@ -16075,47 +16270,64 @@                          , SrcSpan "tests/examples/PartialSignatures.hs" 289 21 289 23                          ]                      }-                   [ ClassA+                   [ TypeA                        SrcSpanInfo                          { srcInfoSpan =                              SrcSpan "tests/examples/PartialSignatures.hs" 289 9 289 16                          , srcInfoPoints = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/PartialSignatures.hs" 289 9 289 13+                                SrcSpan "tests/examples/PartialSignatures.hs" 289 9 289 16                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/PartialSignatures.hs" 289 9 289 13+                                   SrcSpan "tests/examples/PartialSignatures.hs" 289 9 289 16                                , 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"))-                       ]-                   , WildCardA+                             (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 = []                          }-                       Nothing+                       (TyWildCard+                          SrcSpanInfo+                            { srcInfoSpan =+                                SrcSpan "tests/examples/PartialSignatures.hs" 289 18 289 19+                            , srcInfoPoints = []+                            }+                          Nothing)                    ]))              (TyFun                 SrcSpanInfo
tests/examples/PatternSynonymSignatures.hs.parser.golden view
@@ -57,6 +57,7 @@           Nothing           Nothing           Nothing+          Nothing           (TyCon              SrcSpanInfo                { srcInfoSpan =@@ -105,6 +106,7 @@                       , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 6 19 6 21                       ]                   }))+          Nothing           (Just              (CxEmpty                 SrcSpanInfo@@ -161,40 +163,54 @@                   , srcInfoPoints =                       [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 23 8 25 ]                   }-                (ClassA+                (TypeA                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 16 8 25                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 23 8 25 ]                      }-                   (UnQual+                   (TyApp                       SrcSpanInfo                         { srcInfoSpan =-                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 16 8 20-                        , srcInfoPoints = []+                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 16 8 25+                        , srcInfoPoints =+                            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 23 8 25 ]                         }-                      (Ident+                      (TyCon                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 16 8 20+                               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 = []                            }-                         "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")-                   ])))+                         (Ident+                            SrcSpanInfo+                              { srcInfoSpan =+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 21 8 22+                              , srcInfoPoints = []+                              }+                            "a"))))))+          Nothing           (Just              (CxSingle                 SrcSpanInfo@@ -203,40 +219,53 @@                   , srcInfoPoints =                       [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 33 8 35 ]                   }-                (ClassA+                (TypeA                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 26 8 35                      , srcInfoPoints =                          [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 33 8 35 ]                      }-                   (UnQual+                   (TyApp                       SrcSpanInfo                         { srcInfoSpan =-                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 26 8 30-                        , srcInfoPoints = []+                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 26 8 35+                        , srcInfoPoints =+                            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 33 8 35 ]                         }-                      (Ident+                      (TyCon                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 26 8 30+                               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 = []                            }-                         "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")-                   ])))+                         (Ident+                            SrcSpanInfo+                              { srcInfoSpan =+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 8 31 8 32+                              , srcInfoPoints = []+                              }+                            "b"))))))           (TyCon              SrcSpanInfo                { srcInfoSpan =@@ -283,7 +312,7 @@                       [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 23 10 25                       ]                   }-                (ClassA+                (TypeA                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 16 10 25@@ -291,34 +320,51 @@                          [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 23 10 25                          ]                      }-                   (UnQual+                   (TyApp                       SrcSpanInfo                         { srcInfoSpan =-                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 16 10 20-                        , srcInfoPoints = []+                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 16 10 25+                        , srcInfoPoints =+                            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 23 10 25+                            ]                         }-                      (Ident+                      (TyCon                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 16 10 20+                               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 = []                            }-                         "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")-                   ])))+                         (Ident+                            SrcSpanInfo+                              { srcInfoSpan =+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 10 21 10 22+                              , srcInfoPoints = []+                              }+                            "b"))))))           Nothing+          Nothing           (TyCon              SrcSpanInfo                { srcInfoSpan =@@ -365,7 +411,7 @@                       [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 23 12 25                       ]                   }-                (ClassA+                (TypeA                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 16 12 25@@ -373,33 +419,50 @@                          [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 23 12 25                          ]                      }-                   (UnQual+                   (TyApp                       SrcSpanInfo                         { srcInfoSpan =-                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 16 12 20-                        , srcInfoPoints = []+                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 16 12 25+                        , srcInfoPoints =+                            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 23 12 25+                            ]                         }-                      (Ident+                      (TyCon                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 16 12 20+                               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 = []                            }-                         "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")-                   ])))+                         (Ident+                            SrcSpanInfo+                              { srcInfoSpan =+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 12 21 12 22+                              , srcInfoPoints = []+                              }+                            "b"))))))+          Nothing           (Just              (CxEmpty                 SrcSpanInfo@@ -459,6 +522,7 @@                       , SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 19 14 21                       ]                   }))+          Nothing           (Just              (CxSingle                 SrcSpanInfo@@ -468,7 +532,7 @@                       [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 29 14 31                       ]                   }-                (ClassA+                (TypeA                    SrcSpanInfo                      { srcInfoSpan =                          SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 22 14 31@@ -476,33 +540,49 @@                          [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 29 14 31                          ]                      }-                   (UnQual+                   (TyApp                       SrcSpanInfo                         { srcInfoSpan =-                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 22 14 26-                        , srcInfoPoints = []+                            SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 22 14 31+                        , srcInfoPoints =+                            [ SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 29 14 31+                            ]                         }-                      (Ident+                      (TyCon                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 22 14 26+                               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 = []                            }-                         "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")-                   ])))+                         (Ident+                            SrcSpanInfo+                              { srcInfoSpan =+                                  SrcSpan "tests/examples/PatternSynonymSignatures.hs" 14 27 14 28+                              , srcInfoPoints = []+                              }+                            "b"))))))           (TyCon              SrcSpanInfo                { srcInfoSpan =
tests/examples/PatternSynonyms3.hs.parser.golden view
@@ -464,6 +464,7 @@           Nothing           Nothing           Nothing+          Nothing           (TyFun              SrcSpanInfo                { srcInfoSpan =@@ -601,6 +602,7 @@                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 22 16 24                       ]                   }))+          Nothing           (Just              (CxSingle                 SrcSpanInfo@@ -622,39 +624,50 @@                          , SrcSpan "tests/examples/PatternSynonyms3.hs" 16 34 16 36                          ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 32                         , srcInfoPoints = []                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 30+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 32                            , srcInfoPoints = []                            }-                         (Ident+                         (TyCon                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 30+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 16 26 16 32                               , 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")-                      ]))))+                            (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 =@@ -806,39 +819,50 @@                             , SrcSpan "tests/examples/PatternSynonyms3.hs" 19 15 19 17                             ]                         }-                      (ClassA+                      (TypeA                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 13                            , srcInfoPoints = []                            }-                         (UnQual+                         (TyApp                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 11+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 13                               , srcInfoPoints = []                               }-                            (Ident+                            (TyCon                                SrcSpanInfo                                  { srcInfoSpan =-                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 11+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 19 7 19 13                                  , 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")-                         ]))))+                               (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 =@@ -991,6 +1015,7 @@           Nothing           Nothing           Nothing+          Nothing           (TyFun              SrcSpanInfo                { srcInfoSpan =@@ -1192,39 +1217,50 @@                             , SrcSpan "tests/examples/PatternSynonyms3.hs" 25 15 25 17                             ]                         }-                      (ClassA+                      (TypeA                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 13                            , srcInfoPoints = []                            }-                         (UnQual+                         (TyApp                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 11+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 13                               , srcInfoPoints = []                               }-                            (Ident+                            (TyCon                                SrcSpanInfo                                  { srcInfoSpan =-                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 11+                                     SrcSpan "tests/examples/PatternSynonyms3.hs" 25 7 25 13                                  , 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")-                         ]))))+                               (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 =@@ -1483,6 +1519,7 @@           Nothing           Nothing           Nothing+          Nothing           (TyFun              SrcSpanInfo                { srcInfoSpan =@@ -1776,6 +1813,7 @@                       , SrcSpan "tests/examples/PatternSynonyms3.hs" 34 37 34 39                       ]                   }))+          Nothing           (Just              (CxEmpty                 SrcSpanInfo@@ -1845,71 +1883,83 @@                          , SrcSpan "tests/examples/PatternSynonyms3.hs" 36 31 36 33                          ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 29                         , srcInfoPoints = []                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 19+                               SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 29                            , srcInfoPoints = []                            }-                         (Ident+                         (TyCon                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 19+                                  SrcSpan "tests/examples/PatternSynonyms3.hs" 36 15 36 29                               , 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"))-                          ]-                      ]))))+                            (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 =@@ -2215,6 +2265,7 @@           Nothing           Nothing           Nothing+          Nothing           (TyApp              SrcSpanInfo                { srcInfoSpan =@@ -2368,6 +2419,7 @@           Nothing           Nothing           Nothing+          Nothing           (TyFun              SrcSpanInfo                { srcInfoSpan =@@ -3237,6 +3289,8 @@                    , srcInfoPoints = []                    }                  "MkT")+              Nothing+              Nothing               Nothing               (TyFun                  SrcSpanInfo
tests/examples/PolyKindSigs.hs.parser.golden view
@@ -89,18 +89,18 @@                   }                 "Foo"))           (Just-             (KindFn+             (TyFun                 SrcSpanInfo                   { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 7 13 7 19                   , srcInfoPoints =                       [ SrcSpan "tests/examples/PolyKindSigs.hs" 7 15 7 17 ]                   }-                (KindStar+                (TyStar                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 7 13 7 14                      , srcInfoPoints = []                      })-                (KindStar+                (TyStar                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/PolyKindSigs.hs" 7 18 7 19                      , srcInfoPoints = []@@ -117,6 +117,8 @@                    , srcInfoPoints = []                    }                  "Foo")+              Nothing+              Nothing               Nothing               (TyApp                  SrcSpanInfo
+ tests/examples/PromotedSpace.hs view
@@ -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 )
+ tests/examples/PromotedSpace.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/PromotedSpace.hs.parser.golden view
@@ -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"+    ]+  )
+ tests/examples/PromotedSpace.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/PromotedSpace.hs.prettyprinter.golden view
@@ -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)
+ tests/examples/QuantifiedConstraints.hs view
@@ -0,0 +1,4 @@+{-# LANGUAGE ExplicitForAll #-}+{-# LANGUAGE QuantifiedConstraints #-}++class (forall a. Eq (f a)) => C f
+ tests/examples/QuantifiedConstraints.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/QuantifiedConstraints.hs.parser.golden view
@@ -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+      ]+  , []+  )
+ tests/examples/QuantifiedConstraints.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/QuantifiedConstraints.hs.prettyprinter.golden view
@@ -0,0 +1,4 @@+{-# LANGUAGE ExplicitForAll #-}+{-# LANGUAGE QuantifiedConstraints #-}++class (forall a . Eq (f a)) => C f
tests/examples/RCategory.hs.parser.golden view
@@ -286,1650 +286,1928 @@                          , srcInfoPoints =                              [ SrcSpan "tests/examples/RCategory.hs" 15 30 15 32 ]                          }-                       (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")))))-                 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 ]-                               }-                             (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")-                       ]+                       (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
tests/examples/RCategory2.hs.parser.golden view
@@ -170,7 +170,7 @@                          , srcInfoPoints =                              [ SrcSpan "tests/examples/RCategory2.hs" 6 30 6 32 ]                          }-                       (KindVar+                       (TyCon                           SrcSpanInfo                             { srcInfoSpan = SrcSpan "tests/examples/RCategory2.hs" 6 33 6 43                             , srcInfoPoints = []
tests/examples/ScopedTypeVariables.hs.parser.golden view
@@ -363,40 +363,53 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 33                         , srcInfoPoints =                             [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 28-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 33+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 31 11 33 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 26 11 28+                                  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 = []                               }-                            "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")-                      ])))+                            (Ident+                               SrcSpanInfo+                                 { srcInfoSpan =+                                     SrcSpan "tests/examples/ScopedTypeVariables.hs" 11 29 11 30+                                 , srcInfoPoints = []+                                 }+                               "x"))))))              (TyFun                 SrcSpanInfo                   { srcInfoSpan =
tests/examples/SingleClassAsst.hs.parser.golden view
@@ -74,39 +74,50 @@                             , SrcSpan "tests/examples/SingleClassAsst.hs" 3 15 3 17                             ]                         }-                      (ClassA+                      (TypeA                          SrcSpanInfo                            { srcInfoSpan =                                SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 13                            , srcInfoPoints = []                            }-                         (UnQual+                         (TyApp                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 11+                                  SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 13                               , srcInfoPoints = []                               }-                            (Ident+                            (TyCon                                SrcSpanInfo                                  { srcInfoSpan =-                                     SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 11+                                     SrcSpan "tests/examples/SingleClassAsst.hs" 3 9 3 13                                  , 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")-                         ]))))+                               (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 =
tests/examples/SpecializeInstance.hs.parser.golden view
@@ -43,40 +43,53 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/SpecializeInstance.hs" 1 18 1 20 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 20                         , srcInfoPoints =                             [ SrcSpan "tests/examples/SpecializeInstance.hs" 1 18 1 20 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 15-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 20+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/SpecializeInstance.hs" 1 18 1 20 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/SpecializeInstance.hs" 1 10 1 15+                                  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 = []                               }-                            "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")-                      ])))+                            (Ident+                               SrcSpanInfo+                                 { srcInfoSpan =+                                     SrcSpan "tests/examples/SpecializeInstance.hs" 1 16 1 17+                                 , srcInfoPoints = []+                                 }+                               "a"))))))              (IHApp                 SrcSpanInfo                   { srcInfoSpan =
tests/examples/SpecializePhaseControl.hs.parser.golden view
@@ -331,72 +331,95 @@                          , SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 26 6 28                          ]                      }-                   [ ClassA+                   [ TypeA                        SrcSpanInfo                          { srcInfoSpan =                              SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 12                          , srcInfoPoints = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 10+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 12                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 10+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 7 6 12                                , 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+                             (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 = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 22+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 24                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 22+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 6 14 6 24                                , 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")-                       ]+                             (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@@ -810,72 +833,96 @@                          , SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 26 14 28                          ]                      }-                   [ ClassA+                   [ TypeA                        SrcSpanInfo                          { srcInfoSpan =                              SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 12                          , srcInfoPoints = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 10+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 12                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 10+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 7 14 12                                , 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+                             (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 = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 22+                                SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 24                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 22+                                   SrcSpan "tests/examples/SpecializePhaseControl.hs" 14 14 14 24                                , 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")-                       ]+                             (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
tests/examples/T11727.hs.parser.golden view
@@ -72,6 +72,7 @@           Nothing           Nothing           Nothing+          Nothing           (TyCon              SrcSpanInfo                { srcInfoSpan = SrcSpan "tests/examples/T11727.hs" 5 16 5 19
+ tests/examples/T326.hs view
@@ -0,0 +1,4 @@+{-# LANGUAGE TypeApplications #-}+module T326 where++(@:) a b = a
+ tests/examples/T326.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/T326.hs.parser.golden view
@@ -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+          ]+      ]+  , []+  )
+ tests/examples/T326.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/T326.hs.prettyprinter.golden view
@@ -0,0 +1,3 @@+{-# LANGUAGE TypeApplications #-}+module T326 where+(@:) a b = a
+ tests/examples/THTypedSplices.hs view
@@ -0,0 +1,6 @@+{-# LANGUAGE TemplateHaskell #-}+import Language.Haskell.TH++import THTypedSplices.Defs++main = $$justTH ($$([e|| 2 ||]))
+ tests/examples/THTypedSplices.hs.exactprinter.golden view
@@ -0,0 +1,7 @@+{-# LANGUAGE TemplateHaskell #-}+import Language.Haskell.TH++import THTypedSplices.Defs++main = $$justTH ($$([||  2 ||]))+
+ tests/examples/THTypedSplices.hs.parser.golden view
@@ -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+      ]+  , []+  )
+ tests/examples/THTypedSplices.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/THTypedSplices.hs.prettyprinter.golden view
@@ -0,0 +1,4 @@+{-# LANGUAGE TemplateHaskell #-}+import Language.Haskell.TH+import THTypedSplices.Defs+main = $$justTH ($$( [|| 2 ||] ))
+ tests/examples/TemplateHaskellQuotedNames.hs view
@@ -0,0 +1,3 @@+{-# LANGUAGE TemplateHaskell #-}+f = g 'Constructor 'function+h = g '() '[]
+ tests/examples/TemplateHaskellQuotedNames.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/TemplateHaskellQuotedNames.hs.parser.golden view
@@ -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+      ]+  , []+  )
+ tests/examples/TemplateHaskellQuotedNames.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/TemplateHaskellQuotedNames.hs.prettyprinter.golden view
@@ -0,0 +1,3 @@+{-# LANGUAGE TemplateHaskell #-}+f = g 'Constructor 'function+h = g '() '[]
tests/examples/TypeEqualityParen.hs.parser.golden view
@@ -67,39 +67,50 @@                          , SrcSpan "tests/examples/TypeEqualityParen.hs" 2 26 2 28                          ]                      }-                   [ ClassA+                   [ TypeA                        SrcSpanInfo                          { srcInfoSpan =                              SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 12                          , srcInfoPoints = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo                             { srcInfoSpan =-                                SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 10+                                SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 12                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 10+                                   SrcSpan "tests/examples/TypeEqualityParen.hs" 2 8 2 12                                , 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")-                       ]+                             (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 =@@ -109,45 +120,52 @@                              , SrcSpan "tests/examples/TypeEqualityParen.hs" 2 22 2 23                              ]                          }-                       (EqualP+                       (TypeA                           SrcSpanInfo                             { srcInfoSpan =                                 SrcSpan "tests/examples/TypeEqualityParen.hs" 2 15 2 22                             , srcInfoPoints =                                 [ SrcSpan "tests/examples/TypeEqualityParen.hs" 2 17 2 18 ]                             }-                          (TyVar+                          (TyEquals                              SrcSpanInfo                                { srcInfoSpan =-                                   SrcSpan "tests/examples/TypeEqualityParen.hs" 2 15 2 16-                               , srcInfoPoints = []+                                   SrcSpan "tests/examples/TypeEqualityParen.hs" 2 15 2 22+                               , srcInfoPoints =+                                   [ SrcSpan "tests/examples/TypeEqualityParen.hs" 2 17 2 18 ]                                }-                             (Ident+                             (TyVar                                 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+                                (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 = []                                   }-                                (Ident+                                (UnQual                                    SrcSpanInfo                                      { srcInfoSpan =                                          SrcSpan "tests/examples/TypeEqualityParen.hs" 2 19 2 22                                      , srcInfoPoints = []                                      }-                                   "Int"))))+                                   (Ident+                                      SrcSpanInfo+                                        { srcInfoSpan =+                                            SrcSpan "tests/examples/TypeEqualityParen.hs" 2 19 2 22+                                        , srcInfoPoints = []+                                        }+                                      "Int")))))                    ]))              (TyFun                 SrcSpanInfo
tests/examples/TypeFunctions.hs.parser.golden view
@@ -126,18 +126,18 @@                         , srcInfoPoints = []                         }                       "f")-                   (KindFn+                   (TyFun                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 23 5 29                         , srcInfoPoints =                             [ SrcSpan "tests/examples/TypeFunctions.hs" 5 25 5 27 ]                         }-                      (KindStar+                      (TyStar                          SrcSpanInfo                            { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 23 5 24                            , srcInfoPoints = []                            })-                      (KindStar+                      (TyStar                          SrcSpanInfo                            { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 28 5 29                            , srcInfoPoints = []@@ -160,7 +160,7 @@                   , srcInfoPoints =                       [ SrcSpan "tests/examples/TypeFunctions.hs" 5 33 5 35 ]                   }-                (KindStar+                (TyStar                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/TypeFunctions.hs" 5 36 5 37                      , srcInfoPoints = []
tests/examples/TypeInstances.hs.parser.golden view
@@ -111,7 +111,7 @@                          , srcInfoPoints =                              [ SrcSpan "tests/examples/TypeInstances.hs" 4 14 4 16 ]                          }-                       (KindStar+                       (TyStar                           SrcSpanInfo                             { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 4 17 4 18                             , srcInfoPoints = []@@ -237,7 +237,7 @@                          , srcInfoPoints =                              [ SrcSpan "tests/examples/TypeInstances.hs" 7 17 7 19 ]                          }-                       (KindStar+                       (TyStar                           SrcSpanInfo                             { srcInfoSpan = SrcSpan "tests/examples/TypeInstances.hs" 7 20 7 21                             , srcInfoPoints = []
tests/examples/TypeOperatorsTest.hs.parser.golden view
@@ -79,54 +79,67 @@                      , srcInfoPoints =                          [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan =                             SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22                         , srcInfoPoints =                             [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo                            { srcInfoSpan =-                               SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 14-                           , srcInfoPoints = []+                               SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22+                           , srcInfoPoints =+                               [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo                               { srcInfoSpan =-                                  SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 14-                              , srcInfoPoints = []+                                  SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 6 3 22+                              , srcInfoPoints =+                                  [ SrcSpan "tests/examples/TypeOperatorsTest.hs" 3 20 3 22 ]                               }-                            "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 = []-                                  }-                                "~>"))-                      ])))+                            (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 =
tests/examples/Unicode.hs.parser.golden view
@@ -3748,62 +3748,80 @@                          , SrcSpan "tests/examples/Unicode.hs" 74 28 74 29                          ]                      }-                   [ ClassA+                   [ TypeA                        SrcSpanInfo                          { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 19                          , srcInfoPoints = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo-                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 17+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 19                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo-                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 17+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 14 74 19                                , 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+                             (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 = []                          }-                       (UnQual+                       (TyApp                           SrcSpanInfo-                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 24+                            { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 26                             , srcInfoPoints = []                             }-                          (Ident+                          (TyCon                              SrcSpanInfo-                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 24+                               { srcInfoSpan = SrcSpan "tests/examples/Unicode.hs" 74 21 74 26                                , 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")-                       ]+                             (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
+ tests/examples/UnicodeIdents.hs view
@@ -0,0 +1,2 @@+猫 = ()+自乗 x = x * x
+ tests/examples/UnicodeIdents.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/UnicodeIdents.hs.parser.golden view
@@ -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+          ]+      ]+  , []+  )
+ tests/examples/UnicodeIdents.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/UnicodeIdents.hs.prettyprinter.golden view
@@ -0,0 +1,2 @@++ = ()+êW x = x * x
tests/examples/Unpack.hs.parser.golden view
@@ -101,6 +101,8 @@                    }                  "CmmEntry")               Nothing+              Nothing+              Nothing               (TyFun                  SrcSpanInfo                    { srcInfoSpan = SrcSpan "tests/examples/Unpack.hs" 4 21 4 55
tests/examples/Vta1.hs.parser.golden view
@@ -3152,34 +3152,43 @@                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 30                      , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 55 28 55 30 ]                      }-                   (ClassA+                   (TypeA                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 30                         , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 55 28 55 30 ]                         }-                      (UnQual+                      (TyApp                          SrcSpanInfo-                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 25-                           , srcInfoPoints = []+                           { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 30+                           , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 55 28 55 30 ]                            }-                         (Ident+                         (TyCon                             SrcSpanInfo-                              { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 55 22 55 25+                              { 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 = []                               }-                            "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")-                      ])))+                            (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@@ -3418,40 +3427,54 @@                                        , srcInfoPoints =                                            [ SrcSpan "tests/examples/Vta1.hs" 58 32 58 34 ]                                        }-                                     (ClassA+                                     (TypeA                                         SrcSpanInfo                                           { srcInfoSpan =                                               SrcSpan "tests/examples/Vta1.hs" 58 26 58 34                                           , srcInfoPoints =                                               [ SrcSpan "tests/examples/Vta1.hs" 58 32 58 34 ]                                           }-                                        (UnQual+                                        (TyApp                                            SrcSpanInfo                                              { srcInfoSpan =-                                                 SrcSpan "tests/examples/Vta1.hs" 58 26 58 29-                                             , srcInfoPoints = []+                                                 SrcSpan "tests/examples/Vta1.hs" 58 26 58 34+                                             , srcInfoPoints =+                                                 [ SrcSpan "tests/examples/Vta1.hs" 58 32 58 34 ]                                              }-                                           (Ident+                                           (TyCon                                               SrcSpanInfo                                                 { srcInfoSpan =-                                                    SrcSpan "tests/examples/Vta1.hs" 58 26 58 29+                                                    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 = []                                                 }-                                              "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")-                                        ])))+                                              (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@@ -3745,17 +3768,17 @@                      , srcInfoPoints = []                      }                    "a")-                (KindFn+                (TyFun                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 18 61 24                      , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 61 20 61 22 ]                      }-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 18 61 19                         , srcInfoPoints = []                         })-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 61 23 61 24                         , srcInfoPoints = []@@ -3823,22 +3846,17 @@                      , srcInfoPoints = []                      }                    "a")-                (KindVar+                (TyVar                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 18 62 19                      , srcInfoPoints = []                      }-                   (UnQual+                   (Ident                       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")))))+                      "k"))))           [ QualConDecl               SrcSpanInfo                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 62 23 62 24@@ -3902,38 +3920,33 @@                      , srcInfoPoints = []                      }                    "a")-                (KindFn+                (TyFun                    SrcSpanInfo                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 18 63 29                      , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 63 20 63 22 ]                      }-                   (KindStar+                   (TyStar                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 18 63 19                         , srcInfoPoints = []                         })-                   (KindFn+                   (TyFun                       SrcSpanInfo                         { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 23 63 29                         , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 63 25 63 27 ]                         }-                      (KindVar+                      (TyVar                          SrcSpanInfo                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 23 63 24                            , srcInfoPoints = []                            }-                         (UnQual+                         (Ident                             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")))-                      (KindStar+                            "k"))+                      (TyStar                          SrcSpanInfo                            { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 63 28 63 29                            , srcInfoPoints = []@@ -4858,37 +4871,51 @@                                 { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 38 85 47                                 , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 85 45 85 47 ]                                 }-                              (ClassA+                              (TypeA                                  SrcSpanInfo                                    { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 38 85 47                                    , srcInfoPoints =                                        [ SrcSpan "tests/examples/Vta1.hs" 85 45 85 47 ]                                    }-                                 (UnQual+                                 (TyApp                                     SrcSpanInfo-                                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 38 85 42-                                      , srcInfoPoints = []+                                      { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 85 38 85 47+                                      , srcInfoPoints =+                                          [ SrcSpan "tests/examples/Vta1.hs" 85 45 85 47 ]                                       }-                                    (Ident+                                    (TyCon                                        SrcSpanInfo                                          { srcInfoSpan =-                                             SrcSpan "tests/examples/Vta1.hs" 85 38 85 42+                                             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 = []                                          }-                                       "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")-                                 ])))+                                       (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@@ -5104,17 +5131,17 @@                          , srcInfoPoints = []                          }                        "a")-                    (KindFn+                    (TyFun                        SrcSpanInfo                          { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 22 91 28                          , srcInfoPoints = [ SrcSpan "tests/examples/Vta1.hs" 91 24 91 26 ]                          }-                       (KindStar+                       (TyStar                           SrcSpanInfo                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 22 91 23                             , srcInfoPoints = []                             })-                       (KindStar+                       (TyStar                           SrcSpanInfo                             { srcInfoSpan = SrcSpan "tests/examples/Vta1.hs" 91 27 91 28                             , srcInfoPoints = []
tests/examples/completesig01.hs.parser.golden view
@@ -101,6 +101,7 @@           Nothing           Nothing           Nothing+          Nothing           (TyCon              SrcSpanInfo                { srcInfoSpan = SrcSpan "tests/examples/completesig01.hs" 6 16 6 18
− tests/examples/t402.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE GADTs                  #-}-{-# LANGUAGE TypeOperators #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE TypeInType #-}-module Test where--import           Data.Singletons.Prelude-import           Data.Singletons.TypeLits-import           Data.Type.Equality            ((:~:) (..), (:~~:) (..))--data instance Sing (z :: (a :~: b)) where-	SRefl :: Sing Refl
+ tests/examples/t403.hs view
@@ -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))
+ tests/examples/t403.hs.exactprinter.golden view
@@ -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))+
+ tests/examples/t403.hs.parser.golden view
@@ -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+      ]+  , []+  )
+ tests/examples/t403.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/t403.hs.prettyprinter.golden view
@@ -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))
+ tests/examples/t412.hs view
@@ -0,0 +1,8 @@+{-# LANGUAGE TypeInType #-}++module Typeintype+       ( App ) where++import Data.Kind++data App (f :: k -> *)
+ tests/examples/t412.hs.exactprinter.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/t412.hs.parser.golden view
@@ -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 = []+                        }))))+          []+          []+      ]+  , []+  )
+ tests/examples/t412.hs.prettyparser.golden view
@@ -0,0 +1,1 @@+Match
+ tests/examples/t412.hs.prettyprinter.golden view
@@ -0,0 +1,5 @@+{-# LANGUAGE TypeInType #-}+module Typeintype (App) where+import Data.Kind++data App (f :: k -> *)