From 6ee0ccc74c2f09fac9ed7f46552d5dda5ace6f5d Mon Sep 17 00:00:00 2001 From: Ryan Scott Date: Sun, 18 Nov 2018 13:57:27 +0100 Subject: [PATCH] Add DerivingVia support Addresses one part of #419. --- src/Language/Haskell/Exts/ExactPrint.hs | 3 + src/Language/Haskell/Exts/Extension.hs | 4 + src/Language/Haskell/Exts/InternalLexer.hs | 3 + src/Language/Haskell/Exts/InternalParser.ly | 44 +- src/Language/Haskell/Exts/Pretty.hs | 28 +- src/Language/Haskell/Exts/Syntax.hs | 25 +- tests/examples/DerivingVia.hs | 459 + .../DerivingVia.hs.exactprinter.golden | 460 + tests/examples/DerivingVia.hs.parser.golden | 32161 ++++++++++++++++ .../DerivingVia.hs.prettyparser.golden | 1 + .../DerivingVia.hs.prettyprinter.golden | 418 + tests/examples/DerivingVia2.hs | 41 + .../DerivingVia2.hs.exactprinter.golden | 42 + tests/examples/DerivingVia2.hs.parser.golden | 2297 ++ .../DerivingVia2.hs.prettyparser.golden | 1 + .../DerivingVia2.hs.prettyprinter.golden | 47 + 16 files changed, 36005 insertions(+), 29 deletions(-) create mode 100644 tests/examples/DerivingVia.hs create mode 100644 tests/examples/DerivingVia.hs.exactprinter.golden create mode 100644 tests/examples/DerivingVia.hs.parser.golden create mode 100644 tests/examples/DerivingVia.hs.prettyparser.golden create mode 100644 tests/examples/DerivingVia.hs.prettyprinter.golden create mode 100644 tests/examples/DerivingVia2.hs create mode 100644 tests/examples/DerivingVia2.hs.exactprinter.golden create mode 100644 tests/examples/DerivingVia2.hs.parser.golden create mode 100644 tests/examples/DerivingVia2.hs.prettyparser.golden create mode 100644 tests/examples/DerivingVia2.hs.prettyprinter.golden diff --git a/src/Language/Haskell/Exts/ExactPrint.hs b/src/Language/Haskell/Exts/ExactPrint.hs index 79e6a533..394b858b 100644 --- a/src/Language/Haskell/Exts/ExactPrint.hs +++ b/src/Language/Haskell/Exts/ExactPrint.hs @@ -1211,6 +1211,9 @@ instance ExactP DerivStrategy where printString "anyclass" exactP (DerivNewtype _) = printString "newtype" + exactP (DerivVia _ ty) = do + printString "via" + exactP ty instance ExactP ClassDecl where exactP cdecl = case cdecl of diff --git a/src/Language/Haskell/Exts/Extension.hs b/src/Language/Haskell/Exts/Extension.hs index bcd0b29e..1d5b3c37 100644 --- a/src/Language/Haskell/Exts/Extension.hs +++ b/src/Language/Haskell/Exts/Extension.hs @@ -552,6 +552,10 @@ data KnownExtension = | StrictData + -- | Enable deriving instances via types of the same runtime representation. + -- Implies 'DerivingStrategies'. + | DerivingVia + deriving (Show, Read, Eq, Ord, Enum, Bounded, Data, Typeable) -- | Certain extensions imply other extensions, and this function diff --git a/src/Language/Haskell/Exts/InternalLexer.hs b/src/Language/Haskell/Exts/InternalLexer.hs index fbfc3aa3..13f28b70 100644 --- a/src/Language/Haskell/Exts/InternalLexer.hs +++ b/src/Language/Haskell/Exts/InternalLexer.hs @@ -197,6 +197,7 @@ data Token | KW_Pattern | KW_Stock | KW_Anyclass + | KW_Via -- FFI | KW_Foreign @@ -297,6 +298,7 @@ reserved_ids = [ ( "pattern", (KW_Pattern, Just (Any [PatternSynonyms]))), ( "stock", (KW_Stock, Nothing)), ( "anyclass", (KW_Anyclass, Nothing)), + ( "via", (KW_Via, Nothing)), -- FFI ( "foreign", (KW_Foreign, Just (Any [ForeignFunctionInterface])) ) @@ -1446,5 +1448,6 @@ showToken t = case t of KW_Pattern -> "pattern" KW_Stock -> "stock" KW_Anyclass -> "anyclass" + KW_Via -> "via" EOF -> "EOF" diff --git a/src/Language/Haskell/Exts/InternalParser.ly b/src/Language/Haskell/Exts/InternalParser.ly index 87eb4b42..8fb11264 100644 --- a/src/Language/Haskell/Exts/InternalParser.ly +++ b/src/Language/Haskell/Exts/InternalParser.ly @@ -260,6 +260,7 @@ Reserved Ids > '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 @@ -648,7 +649,7 @@ This style requires both TypeFamilies and GADTs, the latter is handled in gadtli > 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]}; @@ -1220,15 +1221,15 @@ as qcon and then check separately that they are truly unqualified. > | 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) } @@ -1236,6 +1237,12 @@ as qcon and then check separately that they are truly unqualified. > 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 @@ -2141,15 +2148,24 @@ Pattern Synonyms ----------------------------------------------------------------------------- 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 +> ; checkEnabled DerivingStrategies +> ; return (DerivVia (nIS $1) $2) } } + +> deriv_standalone_strategy :: { Maybe (DerivStrategy L) } +> : deriv_strategy_no_via { Just $1 } +> | deriv_strategy_via { Just $1 } > | {- empty -} { Nothing } ----------------------------------------------------------------------------- diff --git a/src/Language/Haskell/Exts/Pretty.hs b/src/Language/Haskell/Exts/Pretty.hs index 44b90546..dfe574eb 100644 --- a/src/Language/Haskell/Exts/Pretty.hs +++ b/src/Language/Haskell/Exts/Pretty.hs @@ -807,15 +807,31 @@ instance Pretty (Unpackedness l) where 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 diff --git a/src/Language/Haskell/Exts/Syntax.hs b/src/Language/Haskell/Exts/Syntax.hs index aa544215..e67c4ca1 100644 --- a/src/Language/Haskell/Exts/Syntax.hs +++ b/src/Language/Haskell/Exts/Syntax.hs @@ -104,7 +104,7 @@ module Language.Haskell.Exts.Syntax ( 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, @@ -487,12 +487,13 @@ data Deriving l = Deriving l (Maybe (DerivStrategy l)) [InstRule l] -- | 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. @@ -1052,7 +1053,7 @@ hole_name l = Special l (ExprHole l) export_name, safe_name, unsafe_name, interruptible_name, threadsafe_name, stdcall_name, ccall_name, cplusplus_name, dotnet_name, jvm_name, js_name, javascript_name, capi_name, forall_name, - family_name, role_name, stock_name, anyclass_name :: 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 +1072,7 @@ family_name l = Ident l "family" role_name l = Ident l "role" stock_name l = Ident l "stock" anyclass_name l = Ident l "anyclass" +via_name l = Ident l "via" unit_tycon_name, fun_tycon_name, list_tycon_name, unboxed_singleton_tycon_name :: l -> QName l unit_tycon_name l = unit_con_name l @@ -1249,7 +1251,12 @@ instance Annotated DerivStrategy where 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 diff --git a/tests/examples/DerivingVia.hs b/tests/examples/DerivingVia.hs new file mode 100644 index 00000000..5a9808ee --- /dev/null +++ b/tests/examples/DerivingVia.hs @@ -0,0 +1,459 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE DerivingVia #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE KindSignatures #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE InstanceSigs #-} +{-# LANGUAGE TypeInType #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE TypeApplications #-} +{-# LANGUAGE ConstraintKinds #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE MultiWayIf #-} +{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE UndecidableInstances #-} +module DerivingVia where + +import Data.Void +import Data.Complex +import Data.Functor.Const +import Data.Functor.Identity +import Data.Ratio +import Control.Monad.Reader +import Control.Monad.State +import Control.Monad.Writer +import Control.Applicative hiding (WrappedMonad(..)) + +import Data.Bifunctor +import Data.Monoid +import Data.Kind + +type f ~> g = forall xx. f xx -> g xx + +----- +-- Simple example +----- + +data Foo a = MkFoo a a + deriving Show + via (Identity (Foo a)) + +----- +-- Eta reduction at work +----- + +newtype Flip p a b = Flip { runFlip :: p b a } + +instance Bifunctor p => Bifunctor (Flip p) where + bimap f g = Flip . bimap g f . runFlip + +instance Bifunctor p => Functor (Flip p a) where + fmap f = Flip . first f . runFlip + +newtype Bar a = MkBar (Either a Int) + deriving Functor + via (Flip Either Int) + +----- +-- Monad transformers +----- + +type MTrans = (Type -> Type) -> (Type -> Type) + +-- From `constraints' +data Dict c where + Dict :: c => Dict c + +newtype a :- b = Sub (a => Dict b) + +infixl 1 \\ +(\\) :: a => (b => r) -> (a :- b) -> r +r \\ Sub Dict = r + +-- With `-XQuantifiedConstraints' this just becomes +-- +-- type Lifting cls trans = forall mm. cls mm => cls (trans mm) +-- +-- type LiftingMonad trans = Lifting Monad trans +-- +class LiftingMonad (trans :: MTrans) where + proof :: Monad m :- Monad (trans m) + +instance LiftingMonad (StateT s :: MTrans) where + proof :: Monad m :- Monad (StateT s m) + proof = Sub Dict + +instance Monoid w => LiftingMonad (WriterT w :: MTrans) where + proof :: Monad m :- Monad (WriterT w m) + proof = Sub Dict + +instance (LiftingMonad trans, LiftingMonad trans') => LiftingMonad (ComposeT trans trans' :: MTrans) where + proof :: forall m. Monad m :- Monad (ComposeT trans trans' m) + proof = Sub (Dict \\ proof @trans @(trans' m) \\ proof @trans' @m) + +newtype Stack :: MTrans where + Stack :: ReaderT Int (StateT Bool (WriterT String m)) a -> Stack m a + deriving newtype + ( Functor + , Applicative + , Monad + , MonadReader Int + , MonadState Bool + , MonadWriter String + ) + deriving (MonadTrans, MFunctor) + via (ReaderT Int `ComposeT` StateT Bool `ComposeT` WriterT String) + +class MFunctor (trans :: MTrans) where + hoist :: Monad m => (m ~> m') -> (trans m ~> trans m') + +instance MFunctor (ReaderT r :: MTrans) where + hoist :: Monad m => (m ~> m') -> (ReaderT r m ~> ReaderT r m') + hoist nat = ReaderT . fmap nat . runReaderT + +instance MFunctor (StateT s :: MTrans) where + hoist :: Monad m => (m ~> m') -> (StateT s m ~> StateT s m') + hoist nat = StateT . fmap nat . runStateT + +instance MFunctor (WriterT w :: MTrans) where + hoist :: Monad m => (m ~> m') -> (WriterT w m ~> WriterT w m') + hoist nat = WriterT . nat . runWriterT + +infixr 9 `ComposeT` +newtype ComposeT :: MTrans -> MTrans -> MTrans where + ComposeT :: { getComposeT :: f (g m) a } -> ComposeT f g m a + deriving newtype (Functor, Applicative, Monad) + +instance (MonadTrans f, MonadTrans g, LiftingMonad g) => MonadTrans (ComposeT f g) where + lift :: forall m. Monad m => m ~> ComposeT f g m + lift = ComposeT . lift . lift + \\ proof @g @m + +instance (MFunctor f, MFunctor g, LiftingMonad g) => MFunctor (ComposeT f g) where + hoist :: forall m m'. Monad m => (m ~> m') -> (ComposeT f g m ~> ComposeT f g m') + hoist f = ComposeT . hoist (hoist f) . getComposeT + \\ proof @g @m + +----- +-- Using tuples in a `via` type +----- + +newtype X a = X (a, a) + deriving (Semigroup, Monoid) + via (Product a, Sum a) + + deriving (Show, Eq) + via (a, a) + +----- +-- Abstract data types +----- + +class C f where + c :: f a -> Int + +newtype X2 f a = X2 (f a) + +instance C (X2 f) where + c = const 0 + +deriving via (X2 IO) instance C IO + +---- +-- Testing parser +---- + +newtype P0 a = P0 a deriving Show via a +newtype P1 a = P1 [a] deriving Show via [a] +newtype P2 a = P2 (a, a) deriving Show via (a, a) +newtype P3 a = P3 (Maybe a) deriving Show via (First a) +newtype P4 a = P4 (Maybe a) deriving Show via (First $ a) +newtype P5 a = P5 a deriving Show via (Identity $ a) +newtype P6 a = P6 [a] deriving Show via ([] $ a) +newtype P7 a = P7 (a, a) deriving Show via (Identity $ (a, a)) +newtype P8 a = P8 (Either () a) deriving Functor via (($) (Either ())) + +newtype f $ a = APP (f a) deriving newtype Show deriving newtype Functor + +---- +-- From Baldur's notes +---- + +---- +-- 1 +---- +newtype WrapApplicative f a = WrappedApplicative (f a) + deriving (Functor, Applicative) + +instance (Applicative f, Num a) => Num (WrapApplicative f a) where + (+) = liftA2 (+) + (*) = liftA2 (*) + negate = fmap negate + fromInteger = pure . fromInteger + abs = fmap abs + signum = fmap signum + +instance (Applicative f, Fractional a) => Fractional (WrapApplicative f a) where + recip = fmap recip + fromRational = pure . fromRational + +instance (Applicative f, Floating a) => Floating (WrapApplicative f a) where + pi = pure pi + sqrt = fmap sqrt + exp = fmap exp + log = fmap log + sin = fmap sin + cos = fmap cos + asin = fmap asin + atan = fmap atan + acos = fmap acos + sinh = fmap sinh + cosh = fmap cosh + asinh = fmap asinh + atanh = fmap atanh + acosh = fmap acosh + +instance (Applicative f, Semigroup s) => Semigroup (WrapApplicative f s) where + (<>) = liftA2 (<>) + +instance (Applicative f, Monoid m) => Monoid (WrapApplicative f m) where + mempty = pure mempty + +---- +-- 2 +---- +class Pointed p where + pointed :: a -> p a + +newtype WrapMonad f a = WrappedMonad (f a) + deriving newtype (Pointed, Monad) + +instance (Monad m, Pointed m) => Functor (WrapMonad m) where + fmap = liftM + +instance (Monad m, Pointed m) => Applicative (WrapMonad m) where + pure = pointed + (<*>) = ap + +-- data +data Sorted a = Sorted a a a + deriving (Functor, Applicative) + via (WrapMonad Sorted) + deriving (Num, Fractional, Floating, Semigroup, Monoid) + via (WrapApplicative Sorted a) + + +instance Monad Sorted where + (>>=) :: Sorted a -> (a -> Sorted b) -> Sorted b + Sorted a b c >>= f = Sorted a' b' c' where + Sorted a' _ _ = f a + Sorted _ b' _ = f b + Sorted _ _ c' = f c + +instance Pointed Sorted where + pointed :: a -> Sorted a + pointed a = Sorted a a a + +---- +-- 3 +---- +class IsZero a where + isZero :: a -> Bool + +newtype WrappedNumEq a = WrappedNumEq a +newtype WrappedShow a = WrappedShow a +newtype WrappedNumEq2 a = WrappedNumEq2 a + +instance (Num a, Eq a) => IsZero (WrappedNumEq a) where + isZero :: WrappedNumEq a -> Bool + isZero (WrappedNumEq a) = 0 == a + +instance Show a => IsZero (WrappedShow a) where + isZero :: WrappedShow a -> Bool + isZero (WrappedShow a) = "0" == show a + +instance (Num a, Eq a) => IsZero (WrappedNumEq2 a) where + isZero :: WrappedNumEq2 a -> Bool + isZero (WrappedNumEq2 a) = a + a == a + +newtype INT = INT Int + deriving newtype Show + deriving IsZero via (WrappedNumEq Int) + +newtype VOID = VOID Void deriving IsZero via (WrappedShow Void) + +---- +-- 4 +---- +class Bifunctor p => Biapplicative p where + bipure :: a -> b -> p a b + + biliftA2 + :: (a -> b -> c) + -> (a' -> b' -> c') + -> p a a' + -> p b b' + -> p c c' + +instance Biapplicative (,) where + bipure = (,) + + biliftA2 f f' (a, a') (b, b') = + (f a b, f' a' b') + +newtype WrapBiapp p a b = WrapBiap (p a b) + deriving newtype (Bifunctor, Biapplicative, Eq) + +instance (Biapplicative p, Num a, Num b) => Num (WrapBiapp p a b) where + (+) = biliftA2 (+) (+) + (-) = biliftA2 (*) (*) + (*) = biliftA2 (*) (*) + negate = bimap negate negate + abs = bimap abs abs + signum = bimap signum signum + fromInteger n = fromInteger n `bipure` fromInteger n + +newtype INT2 = INT2 (Int, Int) + deriving IsZero via (WrappedNumEq2 (WrapBiapp (,) Int Int)) + +---- +-- 5 +---- +class Monoid a => MonoidNull a where + null :: a -> Bool + +newtype WrpMonNull a = WRM a deriving (Eq, Semigroup, Monoid) + +instance (Eq a, Monoid a) => MonoidNull (WrpMonNull a) where + null :: WrpMonNull a -> Bool + null = (== mempty) + +deriving via (WrpMonNull Any) instance MonoidNull Any +deriving via () instance MonoidNull () +deriving via Ordering instance MonoidNull Ordering + +---- +-- 6 +---- +-- https://github.com/mikeizbicki/subhask/blob/f53fd8f465747681c88276c7dabe3646fbdf7d50/src/SubHask/Algebra.hs#L635 + +class Lattice a where + sup :: a -> a -> a + (.>=) :: a -> a -> Bool + (.>) :: a -> a -> Bool + +newtype WrapOrd a = WrappedOrd a + deriving newtype (Eq, Ord) + +instance Ord a => Lattice (WrapOrd a) where + sup = max + (.>=) = (>=) + (.>) = (>) + +deriving via [a] instance Ord a => Lattice [a] +deriving via (a, b) instance (Ord a, Ord b) => Lattice (a, b) +--mkLattice_(Bool) +deriving via Bool instance Lattice Bool +--mkLattice_(Char) +deriving via Char instance Lattice Char +--mkLattice_(Int) +deriving via Int instance Lattice Int +--mkLattice_(Integer) +deriving via Integer instance Lattice Integer +--mkLattice_(Float) +deriving via Float instance Lattice Float +--mkLattice_(Double) +deriving via Double instance Lattice Double +--mkLattice_(Rational) +deriving via Rational instance Lattice Rational + +---- +-- 7 +---- +-- https://hackage.haskell.org/package/linear-1.20.7/docs/src/Linear-Affine.html + +class Functor f => Additive f where + zero :: Num a => f a + (^+^) :: Num a => f a -> f a -> f a + (^+^) = liftU2 (+) + (^-^) :: Num a => f a -> f a -> f a + x ^-^ y = x ^+^ fmap negate y + liftU2 :: (a -> a -> a) -> f a -> f a -> f a + +instance Additive [] where + zero = [] + liftU2 f = go where + go (x:xs) (y:ys) = f x y : go xs ys + go [] ys = ys + go xs [] = xs + +instance Additive Maybe where + zero = Nothing + liftU2 f (Just a) (Just b) = Just (f a b) + liftU2 _ Nothing ys = ys + liftU2 _ xs Nothing = xs + +instance Applicative f => Additive (WrapApplicative f) where + zero = pure 0 + liftU2 = liftA2 + +deriving via (WrapApplicative ((->) a)) instance Additive ((->) a) +deriving via (WrapApplicative Complex) instance Additive Complex +deriving via (WrapApplicative Identity) instance Additive Identity + +instance Additive ZipList where + zero = ZipList [] + liftU2 f (ZipList xs) (ZipList ys) = ZipList (liftU2 f xs ys) + +class Additive (Diff p) => Affine p where + type Diff p :: Type -> Type + + (.-.) :: Num a => p a -> p a -> Diff p a + (.+^) :: Num a => p a -> Diff p a -> p a + (.-^) :: Num a => p a -> Diff p a -> p a + p .-^ v = p .+^ fmap negate v + +-- #define ADDITIVEC(CTX,T) instance CTX => Affine T where type Diff T = T ; \ +-- (.-.) = (^-^) ; {-# INLINE (.-.) #-} ; (.+^) = (^+^) ; {-# INLINE (.+^) #-} ; \ +-- (.-^) = (^-^) ; {-# INLINE (.-^) #-} +-- #define ADDITIVE(T) ADDITIVEC((), T) +newtype WrapAdditive f a = WrappedAdditive (f a) + +instance Additive f => Affine (WrapAdditive f) where + type Diff (WrapAdditive f) = f + + WrappedAdditive a .-. WrappedAdditive b = a ^-^ b + WrappedAdditive a .+^ b = WrappedAdditive (a ^+^ b) + WrappedAdditive a .-^ b = WrappedAdditive (a ^-^ b) + +-- ADDITIVE(((->) a)) +deriving via (WrapAdditive ((->) a)) instance Affine ((->) a) +-- ADDITIVE([]) +deriving via (WrapAdditive []) instance Affine [] +-- ADDITIVE(Complex) +deriving via (WrapAdditive Complex) instance Affine Complex +-- ADDITIVE(Maybe) +deriving via (WrapAdditive Maybe) instance Affine Maybe +-- ADDITIVE(ZipList) +deriving via (WrapAdditive ZipList) instance Affine ZipList +-- ADDITIVE(Identity) +deriving via (WrapAdditive Identity) instance Affine Identity + +---- +-- 8 +---- + +class C2 a b c where + c2 :: a -> b -> c + +instance C2 a b (Const a b) where + c2 x _ = Const x + +newtype Fweemp a = Fweemp a + deriving (C2 a b) + via (Const a (b :: Type)) diff --git a/tests/examples/DerivingVia.hs.exactprinter.golden b/tests/examples/DerivingVia.hs.exactprinter.golden new file mode 100644 index 00000000..49071aaf --- /dev/null +++ b/tests/examples/DerivingVia.hs.exactprinter.golden @@ -0,0 +1,460 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE DerivingVia #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE KindSignatures #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE InstanceSigs #-} +{-# LANGUAGE TypeInType #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE TypeApplications #-} +{-# LANGUAGE ConstraintKinds #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE MultiWayIf #-} +{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE UndecidableInstances #-} +module DerivingVia where + +import Data.Void +import Data.Complex +import Data.Functor.Const +import Data.Functor.Identity +import Data.Ratio +import Control.Monad.Reader +import Control.Monad.State +import Control.Monad.Writer +import Control.Applicative hiding (WrappedMonad(..)) + +import Data.Bifunctor +import Data.Monoid +import Data.Kind + +type f ~> g = forall xx. f xx -> g xx + +----- +-- Simple example +----- + +data Foo a = MkFoo a a + deriving + via( Identity (Foo a))Show + +----- +-- Eta reduction at work +----- + +newtype Flip p a b = Flip { runFlip :: p b a } + +instance Bifunctor p => Bifunctor (Flip p) where + bimap f g = Flip . bimap g f . runFlip + +instance Bifunctor p => Functor (Flip p a) where + fmap f = Flip . first f . runFlip + +newtype Bar a = MkBar (Either a Int) + deriving + via( Flip Either Int)Functor + +----- +-- Monad transformers +----- + +type MTrans = (Type -> Type) -> (Type -> Type) + +-- From `constraints' +data Dict c where + Dict :: c => Dict c + +newtype a :- b = Sub (a => Dict b) + +infixl 1 \\ +(\\) :: a => (b => r) -> (a :- b) -> r +r \\ Sub Dict = r + +-- With `-XQuantifiedConstraints' this just becomes +-- +-- type Lifting cls trans = forall mm. cls mm => cls (trans mm) +-- +-- type LiftingMonad trans = Lifting Monad trans +-- +class LiftingMonad (trans :: MTrans) where + proof :: Monad m :- Monad (trans m) + +instance LiftingMonad (StateT s :: MTrans) where + proof :: Monad m :- Monad (StateT s m) + proof = Sub Dict + +instance Monoid w => LiftingMonad (WriterT w :: MTrans) where + proof :: Monad m :- Monad (WriterT w m) + proof = Sub Dict + +instance (LiftingMonad trans, LiftingMonad trans') => LiftingMonad (ComposeT trans trans' :: MTrans) where + proof :: forall m. Monad m :- Monad (ComposeT trans trans' m) + proof = Sub (Dict \\ proof @trans @(trans' m) \\ proof @trans' @m) + +newtype Stack :: MTrans where + Stack :: ReaderT Int (StateT Bool (WriterT String m)) a -> Stack m a + deriving newtype + ( Functor + , Applicative + , Monad + , MonadReader Int + , MonadState Bool + , MonadWriter String + ) + deriving + via( ReaderT Int `ComposeT` StateT Bool `ComposeT` WriterT String)(MonadTrans,MFunctor) + +class MFunctor (trans :: MTrans) where + hoist :: Monad m => (m ~> m') -> (trans m ~> trans m') + +instance MFunctor (ReaderT r :: MTrans) where + hoist :: Monad m => (m ~> m') -> (ReaderT r m ~> ReaderT r m') + hoist nat = ReaderT . fmap nat . runReaderT + +instance MFunctor (StateT s :: MTrans) where + hoist :: Monad m => (m ~> m') -> (StateT s m ~> StateT s m') + hoist nat = StateT . fmap nat . runStateT + +instance MFunctor (WriterT w :: MTrans) where + hoist :: Monad m => (m ~> m') -> (WriterT w m ~> WriterT w m') + hoist nat = WriterT . nat . runWriterT + +infixr 9 `ComposeT` +newtype ComposeT :: MTrans -> MTrans -> MTrans where + ComposeT :: { getComposeT :: f (g m) a } -> ComposeT f g m a + deriving newtype (Functor, Applicative, Monad) + +instance (MonadTrans f, MonadTrans g, LiftingMonad g) => MonadTrans (ComposeT f g) where + lift :: forall m. Monad m => m ~> ComposeT f g m + lift = ComposeT . lift . lift + \\ proof @g @m + +instance (MFunctor f, MFunctor g, LiftingMonad g) => MFunctor (ComposeT f g) where + hoist :: forall m m'. Monad m => (m ~> m') -> (ComposeT f g m ~> ComposeT f g m') + hoist f = ComposeT . hoist (hoist f) . getComposeT + \\ proof @g @m + +----- +-- Using tuples in a `via` type +----- + +newtype X a = X (a, a) + deriving + via (Product a, Sum a)(Semigroup,Monoid) + + deriving + via (a, a)(Show,Eq) + +----- +-- Abstract data types +----- + +class C f where + c :: f a -> Int + +newtype X2 f a = X2 (f a) + +instance C (X2 f) where + c = const 0 + +deriving via( X2 IO) instance C IO + +---- +-- Testing parser +---- + +newtype P0 a = P0 a deriving viaaShow +newtype P1 a = P1 [a] deriving via[ a]Show +newtype P2 a = P2 (a, a) deriving via (a, a)Show +newtype P3 a = P3 (Maybe a) deriving via( First a)Show +newtype P4 a = P4 (Maybe a) deriving via( First $ a)Show +newtype P5 a = P5 a deriving via( Identity $ a)Show +newtype P6 a = P6 [a] deriving via( [] $ a)Show +newtype P7 a = P7 (a, a) deriving via( Identity $ (a, a))Show +newtype P8 a = P8 (Either () a) deriving via( ($) (Either ()))Functor + +newtype f $ a = APP (f a) deriving newtype Show deriving newtype Functor + +---- +-- From Baldur's notes +---- + +---- +-- 1 +---- +newtype WrapApplicative f a = WrappedApplicative (f a) + deriving (Functor, Applicative) + +instance (Applicative f, Num a) => Num (WrapApplicative f a) where + (+) = liftA2 (+) + (*) = liftA2 (*) + negate = fmap negate + fromInteger = pure . fromInteger + abs = fmap abs + signum = fmap signum + +instance (Applicative f, Fractional a) => Fractional (WrapApplicative f a) where + recip = fmap recip + fromRational = pure . fromRational + +instance (Applicative f, Floating a) => Floating (WrapApplicative f a) where + pi = pure pi + sqrt = fmap sqrt + exp = fmap exp + log = fmap log + sin = fmap sin + cos = fmap cos + asin = fmap asin + atan = fmap atan + acos = fmap acos + sinh = fmap sinh + cosh = fmap cosh + asinh = fmap asinh + atanh = fmap atanh + acosh = fmap acosh + +instance (Applicative f, Semigroup s) => Semigroup (WrapApplicative f s) where + (<>) = liftA2 (<>) + +instance (Applicative f, Monoid m) => Monoid (WrapApplicative f m) where + mempty = pure mempty + +---- +-- 2 +---- +class Pointed p where + pointed :: a -> p a + +newtype WrapMonad f a = WrappedMonad (f a) + deriving newtype (Pointed, Monad) + +instance (Monad m, Pointed m) => Functor (WrapMonad m) where + fmap = liftM + +instance (Monad m, Pointed m) => Applicative (WrapMonad m) where + pure = pointed + (<*>) = ap + +-- data +data Sorted a = Sorted a a a + deriving + via( WrapMonad Sorted)(Functor,Applicative) + deriving + via( WrapApplicative Sorted a)(Num,Fractional,Floating,Semigroup,Monoid) + + +instance Monad Sorted where + (>>=) :: Sorted a -> (a -> Sorted b) -> Sorted b + Sorted a b c >>= f = Sorted a' b' c' where + Sorted a' _ _ = f a + Sorted _ b' _ = f b + Sorted _ _ c' = f c + +instance Pointed Sorted where + pointed :: a -> Sorted a + pointed a = Sorted a a a + +---- +-- 3 +---- +class IsZero a where + isZero :: a -> Bool + +newtype WrappedNumEq a = WrappedNumEq a +newtype WrappedShow a = WrappedShow a +newtype WrappedNumEq2 a = WrappedNumEq2 a + +instance (Num a, Eq a) => IsZero (WrappedNumEq a) where + isZero :: WrappedNumEq a -> Bool + isZero (WrappedNumEq a) = 0 == a + +instance Show a => IsZero (WrappedShow a) where + isZero :: WrappedShow a -> Bool + isZero (WrappedShow a) = "0" == show a + +instance (Num a, Eq a) => IsZero (WrappedNumEq2 a) where + isZero :: WrappedNumEq2 a -> Bool + isZero (WrappedNumEq2 a) = a + a == a + +newtype INT = INT Int + deriving newtype Show + deriving via( WrappedNumEq Int)IsZero + +newtype VOID = VOID Void deriving via( WrappedShow Void)IsZero + +---- +-- 4 +---- +class Bifunctor p => Biapplicative p where + bipure :: a -> b -> p a b + + biliftA2 + :: (a -> b -> c) + -> (a' -> b' -> c') + -> p a a' + -> p b b' + -> p c c' + +instance Biapplicative (,) where + bipure = (,) + + biliftA2 f f' (a, a') (b, b') = + (f a b, f' a' b') + +newtype WrapBiapp p a b = WrapBiap (p a b) + deriving newtype (Bifunctor, Biapplicative, Eq) + +instance (Biapplicative p, Num a, Num b) => Num (WrapBiapp p a b) where + (+) = biliftA2 (+) (+) + (-) = biliftA2 (*) (*) + (*) = biliftA2 (*) (*) + negate = bimap negate negate + abs = bimap abs abs + signum = bimap signum signum + fromInteger n = fromInteger n `bipure` fromInteger n + +newtype INT2 = INT2 (Int, Int) + deriving via( WrappedNumEq2 (WrapBiapp (,) Int Int))IsZero + +---- +-- 5 +---- +class Monoid a => MonoidNull a where + null :: a -> Bool + +newtype WrpMonNull a = WRM a deriving (Eq, Semigroup, Monoid) + +instance (Eq a, Monoid a) => MonoidNull (WrpMonNull a) where + null :: WrpMonNull a -> Bool + null = (== mempty) + +deriving via( WrpMonNull Any) instance MonoidNull Any +deriving via () instance MonoidNull () +deriving viaOrdering instance MonoidNull Ordering + +---- +-- 6 +---- +-- https://github.com/mikeizbicki/subhask/blob/f53fd8f465747681c88276c7dabe3646fbdf7d50/src/SubHask/Algebra.hs#L635 + +class Lattice a where + sup :: a -> a -> a + (.>=) :: a -> a -> Bool + (.>) :: a -> a -> Bool + +newtype WrapOrd a = WrappedOrd a + deriving newtype (Eq, Ord) + +instance Ord a => Lattice (WrapOrd a) where + sup = max + (.>=) = (>=) + (.>) = (>) + +deriving via[ a] instance Ord a => Lattice [a] +deriving via (a, b) instance (Ord a, Ord b) => Lattice (a, b) +--mkLattice_(Bool) +deriving viaBool instance Lattice Bool +--mkLattice_(Char) +deriving viaChar instance Lattice Char +--mkLattice_(Int) +deriving viaInt instance Lattice Int +--mkLattice_(Integer) +deriving viaInteger instance Lattice Integer +--mkLattice_(Float) +deriving viaFloat instance Lattice Float +--mkLattice_(Double) +deriving viaDouble instance Lattice Double +--mkLattice_(Rational) +deriving viaRational instance Lattice Rational + +---- +-- 7 +---- +-- https://hackage.haskell.org/package/linear-1.20.7/docs/src/Linear-Affine.html + +class Functor f => Additive f where + zero :: Num a => f a + (^+^) :: Num a => f a -> f a -> f a + (^+^) = liftU2 (+) + (^-^) :: Num a => f a -> f a -> f a + x ^-^ y = x ^+^ fmap negate y + liftU2 :: (a -> a -> a) -> f a -> f a -> f a + +instance Additive [] where + zero = [] + liftU2 f = go where + go (x:xs) (y:ys) = f x y : go xs ys + go [] ys = ys + go xs [] = xs + +instance Additive Maybe where + zero = Nothing + liftU2 f (Just a) (Just b) = Just (f a b) + liftU2 _ Nothing ys = ys + liftU2 _ xs Nothing = xs + +instance Applicative f => Additive (WrapApplicative f) where + zero = pure 0 + liftU2 = liftA2 + +deriving via( WrapApplicative ((->) a)) instance Additive ((->) a) +deriving via( WrapApplicative Complex) instance Additive Complex +deriving via( WrapApplicative Identity) instance Additive Identity + +instance Additive ZipList where + zero = ZipList [] + liftU2 f (ZipList xs) (ZipList ys) = ZipList (liftU2 f xs ys) + +class Additive (Diff p) => Affine p where + type Diff p :: Type -> Type + + (.-.) :: Num a => p a -> p a -> Diff p a + (.+^) :: Num a => p a -> Diff p a -> p a + (.-^) :: Num a => p a -> Diff p a -> p a + p .-^ v = p .+^ fmap negate v + +-- #define ADDITIVEC(CTX,T) instance CTX => Affine T where type Diff T = T ; \ +-- (.-.) = (^-^) ; {-# INLINE (.-.) #-} ; (.+^) = (^+^) ; {-# INLINE (.+^) #-} ; \ +-- (.-^) = (^-^) ; {-# INLINE (.-^) #-} +-- #define ADDITIVE(T) ADDITIVEC((), T) +newtype WrapAdditive f a = WrappedAdditive (f a) + +instance Additive f => Affine (WrapAdditive f) where + type Diff (WrapAdditive f) = f + + WrappedAdditive a .-. WrappedAdditive b = a ^-^ b + WrappedAdditive a .+^ b = WrappedAdditive (a ^+^ b) + WrappedAdditive a .-^ b = WrappedAdditive (a ^-^ b) + +-- ADDITIVE(((->) a)) +deriving via( WrapAdditive ((->) a)) instance Affine ((->) a) +-- ADDITIVE([]) +deriving via( WrapAdditive []) instance Affine [] +-- ADDITIVE(Complex) +deriving via( WrapAdditive Complex) instance Affine Complex +-- ADDITIVE(Maybe) +deriving via( WrapAdditive Maybe) instance Affine Maybe +-- ADDITIVE(ZipList) +deriving via( WrapAdditive ZipList) instance Affine ZipList +-- ADDITIVE(Identity) +deriving via( WrapAdditive Identity) instance Affine Identity + +---- +-- 8 +---- + +class C2 a b c where + c2 :: a -> b -> c + +instance C2 a b (Const a b) where + c2 x _ = Const x + +newtype Fweemp a = Fweemp a + deriving + via( Const a (b :: Type))(C2ab) + diff --git a/tests/examples/DerivingVia.hs.parser.golden b/tests/examples/DerivingVia.hs.parser.golden new file mode 100644 index 00000000..a409809a --- /dev/null +++ b/tests/examples/DerivingVia.hs.parser.golden @@ -0,0 +1,32161 @@ +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 ] + } + (ClassA + 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 ] + } + (ClassA + 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 ] + } + (AppA + 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 ] + } + (AppA + 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 ] + } + (AppA + 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 ] + } + (AppA + 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") + (KindVar + 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"))) + (KindVar + 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 ] + } + (ClassA + 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"))) + (KindVar + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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'"))) + (KindVar + 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 + (KindVar + 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") + (KindVar + 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 ] + } + (ClassA + 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"))) + (KindVar + 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 ] + } + (ClassA + 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"))) + (KindVar + 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 ] + } + (ClassA + 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"))) + (KindVar + 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 ] + } + (ClassA + 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 + (KindFn + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 128 21 128 47 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia.hs" 128 28 128 30 ] + } + (KindVar + 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"))) + (KindFn + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 128 31 128 47 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia.hs" 128 38 128 40 ] + } + (KindVar + 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"))) + (KindVar + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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") + ] + , ClassA + 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 ] + } + (ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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") + ] + , ClassA + 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 ] + } + (ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 ] + } + (ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 ] + } + (ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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") + ] + , ClassA + 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 ] + } + (ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 ] + } + (ClassA + 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 ] + } + (ClassA + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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 ] + } + (ClassA + 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 ] + } + (ClassA + 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 ] + } + (ClassA + 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 ] + } + (ClassA + 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 ] + } + (ClassA + 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 ] + } + (ClassA + 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 ] + } + (KindFn + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 414 18 414 30 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia.hs" 414 23 414 25 ] + } + (KindVar + 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"))) + (KindVar + 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 ] + } + (ClassA + 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 ] + } + (ClassA + 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 ] + } + (ClassA + 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 ] + } + (ClassA + 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")) + (KindVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 459 27 459 31 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 459 27 459 31 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 459 27 459 31 + , srcInfoPoints = [] + } + "Type")))))))) + [ IParen + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 12 458 20 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia.hs" 458 12 458 13 + , SrcSpan "tests/examples/DerivingVia.hs" 458 19 458 20 + ] + } + (IRule + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 19 + , srcInfoPoints = [] + } + Nothing + Nothing + (IHApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 19 + , srcInfoPoints = [] + } + (IHApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 17 + , srcInfoPoints = [] + } + (IHCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 15 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 15 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 13 458 15 + , srcInfoPoints = [] + } + "C2"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 16 458 17 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 16 458 17 + , srcInfoPoints = [] + } + "a"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 18 458 19 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia.hs" 458 18 458 19 + , srcInfoPoints = [] + } + "b")))) + ] + ] + ] + , [ Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 38 1 38 6) "---" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 39 1 39 18) + " Simple example" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 40 1 40 6) "---" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 46 1 46 6) "---" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 47 1 47 25) + " Eta reduction at work" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 48 1 48 6) "---" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 62 1 62 6) "---" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 63 1 63 22) + " Monad transformers" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 64 1 64 6) "---" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 68 1 68 22) + " From `constraints'" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 78 1 78 52) + " With `-XQuantifiedConstraints' this just becomes" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 79 1 79 3) "" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 80 1 80 68) + " type Lifting cls trans = forall mm. cls mm => cls (trans mm)" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 81 1 81 3) "" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 82 1 82 52) + " type LiftingMonad trans = Lifting Monad trans" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 83 1 83 3) "" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 142 1 142 6) "---" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 143 1 143 32) + " Using tuples in a `via` type" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 144 1 144 6) "---" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 153 1 153 6) "---" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 154 1 154 23) + " Abstract data types" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 155 1 155 6) "---" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 167 1 167 5) "--" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 168 1 168 18) + " Testing parser" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 169 1 169 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 183 1 183 5) "--" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 184 1 184 23) + " From Baldur's notes" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 185 1 185 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 187 1 187 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 188 1 188 5) " 1" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 189 1 189 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 227 1 227 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 228 1 228 5) " 2" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 229 1 229 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 243 1 243 8) " data" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 262 1 262 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 263 1 263 5) " 3" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 264 1 264 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 290 1 290 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 291 1 291 5) " 4" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 292 1 292 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 324 1 324 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 325 1 325 5) " 5" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 326 1 326 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 340 1 340 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 341 1 341 5) " 6" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 342 1 342 5) "--" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 343 1 343 116) + " https://github.com/mikeizbicki/subhask/blob/f53fd8f465747681c88276c7dabe3646fbdf7d50/src/SubHask/Algebra.hs#L635" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 360 1 360 19) + "mkLattice_(Bool)" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 362 1 362 19) + "mkLattice_(Char)" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 364 1 364 18) + "mkLattice_(Int)" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 366 1 366 22) + "mkLattice_(Integer)" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 368 1 368 20) + "mkLattice_(Float)" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 370 1 370 21) + "mkLattice_(Double)" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 372 1 372 23) + "mkLattice_(Rational)" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 375 1 375 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 376 1 376 5) " 7" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 377 1 377 5) "--" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 378 1 378 81) + " https://hackage.haskell.org/package/linear-1.20.7/docs/src/Linear-Affine.html" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 421 1 421 79) + " #define ADDITIVEC(CTX,T) instance CTX => Affine T where type Diff T = T ; \\" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 422 1 422 85) + " (.-.) = (^-^) ; {-# INLINE (.-.) #-} ; (.+^) = (^+^) ; {-# INLINE (.+^) #-} ; \\" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 423 1 423 42) + " (.-^) = (^-^) ; {-# INLINE (.-^) #-}" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 424 1 424 40) + " #define ADDITIVE(T) ADDITIVEC((), T)" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 434 1 434 22) + " ADDITIVE(((->) a))" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 436 1 436 16) + " ADDITIVE([])" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 438 1 438 21) + " ADDITIVE(Complex)" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 440 1 440 19) + " ADDITIVE(Maybe)" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 442 1 442 21) + " ADDITIVE(ZipList)" + , Comment + False + (SrcSpan "tests/examples/DerivingVia.hs" 444 1 444 22) + " ADDITIVE(Identity)" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 447 1 447 5) "--" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 448 1 448 5) " 8" + , Comment + False (SrcSpan "tests/examples/DerivingVia.hs" 449 1 449 5) "--" + ] + ) diff --git a/tests/examples/DerivingVia.hs.prettyparser.golden b/tests/examples/DerivingVia.hs.prettyparser.golden new file mode 100644 index 00000000..1796dc27 --- /dev/null +++ b/tests/examples/DerivingVia.hs.prettyparser.golden @@ -0,0 +1 @@ +Match diff --git a/tests/examples/DerivingVia.hs.prettyprinter.golden b/tests/examples/DerivingVia.hs.prettyprinter.golden new file mode 100644 index 00000000..c6245359 --- /dev/null +++ b/tests/examples/DerivingVia.hs.prettyprinter.golden @@ -0,0 +1,418 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE DerivingVia #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE KindSignatures #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE StandaloneDeriving #-} +{-# LANGUAGE InstanceSigs #-} +{-# LANGUAGE TypeInType #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE TypeApplications #-} +{-# LANGUAGE ConstraintKinds #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE MultiWayIf #-} +{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE UndecidableInstances #-} +module DerivingVia where +import Data.Void +import Data.Complex +import Data.Functor.Const +import Data.Functor.Identity +import Data.Ratio +import Control.Monad.Reader +import Control.Monad.State +import Control.Monad.Writer +import Control.Applicative hiding (WrappedMonad(..)) +import Data.Bifunctor +import Data.Monoid +import Data.Kind + +type f ~> g = forall xx . f xx -> g xx + +data Foo a = MkFoo a a + deriving Show via (Identity (Foo a)) + +newtype Flip p a b = Flip{runFlip :: p b a} + +instance Bifunctor p => Bifunctor (Flip p) where + bimap f g = Flip . bimap g f . runFlip + +instance Bifunctor p => Functor (Flip p a) where + fmap f = Flip . first f . runFlip + +newtype Bar a = MkBar (Either a Int) + deriving Functor via (Flip Either Int) + +type MTrans = (Type -> Type) -> (Type -> Type) + +data Dict c where + Dict :: c => Dict c + +newtype a :- b = Sub (a => Dict b) + +infixl 1 \\ + +(\\) :: a => (b => r) -> (a :- b) -> r +r \\ Sub Dict = r + +class LiftingMonad (trans :: MTrans) where + proof :: Monad m :- Monad (trans m) + +instance LiftingMonad (StateT s :: MTrans) where + proof :: Monad m :- Monad (StateT s m) + proof = Sub Dict + +instance Monoid w => LiftingMonad (WriterT w :: MTrans) where + proof :: Monad m :- Monad (WriterT w m) + proof = Sub Dict + +instance (LiftingMonad trans, LiftingMonad trans') => + LiftingMonad (ComposeT trans trans' :: MTrans) + where + proof :: forall m . Monad m :- Monad (ComposeT trans trans' m) + proof = Sub (Dict \\ proof @trans @(trans' m) \\ proof @trans' @m) + +newtype Stack :: MTrans where + Stack :: + ReaderT Int (StateT Bool (WriterT String m)) a -> Stack m a + deriving newtype (Functor, Applicative, Monad, MonadReader Int, + MonadState Bool, MonadWriter String) + deriving (MonadTrans, MFunctor) via (ReaderT Int `ComposeT` + StateT Bool `ComposeT` WriterT String) + +class MFunctor (trans :: MTrans) where + hoist :: Monad m => (m ~> m') -> (trans m ~> trans m') + +instance MFunctor (ReaderT r :: MTrans) where + hoist :: Monad m => (m ~> m') -> (ReaderT r m ~> ReaderT r m') + hoist nat = ReaderT . fmap nat . runReaderT + +instance MFunctor (StateT s :: MTrans) where + hoist :: Monad m => (m ~> m') -> (StateT s m ~> StateT s m') + hoist nat = StateT . fmap nat . runStateT + +instance MFunctor (WriterT w :: MTrans) where + hoist :: Monad m => (m ~> m') -> (WriterT w m ~> WriterT w m') + hoist nat = WriterT . nat . runWriterT + +infixr 9 `ComposeT` + +newtype ComposeT :: MTrans -> MTrans -> MTrans where + ComposeT :: {getComposeT :: f (g m) a} -> ComposeT f g m a + deriving newtype (Functor, Applicative, Monad) + +instance (MonadTrans f, MonadTrans g, LiftingMonad g) => + MonadTrans (ComposeT f g) + where + lift :: forall m . Monad m => m ~> ComposeT f g m + lift = ComposeT . lift . lift \\ proof @g @m + +instance (MFunctor f, MFunctor g, LiftingMonad g) => + MFunctor (ComposeT f g) + where + hoist :: + forall m m' . Monad m => + (m ~> m') -> (ComposeT f g m ~> ComposeT f g m') + hoist f = ComposeT . hoist (hoist f) . getComposeT \\ proof @g @m + +newtype X a = X (a, a) + deriving (Semigroup, Monoid) via (Product a, Sum a) + deriving (Show, Eq) via (a, a) + +class C f where + c :: f a -> Int + +newtype X2 f a = X2 (f a) + +instance C (X2 f) where + c = const 0 + +deriving via (X2 IO) instance C IO + +newtype P0 a = P0 a + deriving Show via a + +newtype P1 a = P1 [a] + deriving Show via [a] + +newtype P2 a = P2 (a, a) + deriving Show via (a, a) + +newtype P3 a = P3 (Maybe a) + deriving Show via (First a) + +newtype P4 a = P4 (Maybe a) + deriving Show via (First $ a) + +newtype P5 a = P5 a + deriving Show via (Identity $ a) + +newtype P6 a = P6 [a] + deriving Show via ([] $ a) + +newtype P7 a = P7 (a, a) + deriving Show via (Identity $ (a, a)) + +newtype P8 a = P8 (Either () a) + deriving Functor via (($) (Either ())) + +newtype f $ a = APP (f a) + deriving newtype Show + deriving newtype Functor + +newtype WrapApplicative f a = WrappedApplicative (f a) + deriving (Functor, Applicative) + +instance (Applicative f, Num a) => Num (WrapApplicative f a) where + (+) = liftA2 (+) + (*) = liftA2 (*) + negate = fmap negate + fromInteger = pure . fromInteger + abs = fmap abs + signum = fmap signum + +instance (Applicative f, Fractional a) => + Fractional (WrapApplicative f a) + where + recip = fmap recip + fromRational = pure . fromRational + +instance (Applicative f, Floating a) => + Floating (WrapApplicative f a) + where + pi = pure pi + sqrt = fmap sqrt + exp = fmap exp + log = fmap log + sin = fmap sin + cos = fmap cos + asin = fmap asin + atan = fmap atan + acos = fmap acos + sinh = fmap sinh + cosh = fmap cosh + asinh = fmap asinh + atanh = fmap atanh + acosh = fmap acosh + +instance (Applicative f, Semigroup s) => + Semigroup (WrapApplicative f s) + where + (<>) = liftA2 (<>) + +instance (Applicative f, Monoid m) => Monoid (WrapApplicative f m) + where + mempty = pure mempty + +class Pointed p where + pointed :: a -> p a + +newtype WrapMonad f a = WrappedMonad (f a) + deriving newtype (Pointed, Monad) + +instance (Monad m, Pointed m) => Functor (WrapMonad m) where + fmap = liftM + +instance (Monad m, Pointed m) => Applicative (WrapMonad m) where + pure = pointed + (<*>) = ap + +data Sorted a = Sorted a a a + deriving (Functor, Applicative) via (WrapMonad Sorted) + deriving (Num, Fractional, Floating, Semigroup, + Monoid) via (WrapApplicative Sorted a) + +instance Monad Sorted where + (>>=) :: Sorted a -> (a -> Sorted b) -> Sorted b + Sorted a b c >>= f = Sorted a' b' c' + where Sorted a' _ _ = f a + Sorted _ b' _ = f b + Sorted _ _ c' = f c + +instance Pointed Sorted where + pointed :: a -> Sorted a + pointed a = Sorted a a a + +class IsZero a where + isZero :: a -> Bool + +newtype WrappedNumEq a = WrappedNumEq a + +newtype WrappedShow a = WrappedShow a + +newtype WrappedNumEq2 a = WrappedNumEq2 a + +instance (Num a, Eq a) => IsZero (WrappedNumEq a) where + isZero :: WrappedNumEq a -> Bool + isZero (WrappedNumEq a) = 0 == a + +instance Show a => IsZero (WrappedShow a) where + isZero :: WrappedShow a -> Bool + isZero (WrappedShow a) = "0" == show a + +instance (Num a, Eq a) => IsZero (WrappedNumEq2 a) where + isZero :: WrappedNumEq2 a -> Bool + isZero (WrappedNumEq2 a) = a + a == a + +newtype INT = INT Int + deriving newtype Show + deriving IsZero via (WrappedNumEq Int) + +newtype VOID = VOID Void + deriving IsZero via (WrappedShow Void) + +class Bifunctor p => Biapplicative p where + bipure :: a -> b -> p a b + + biliftA2 :: + (a -> b -> c) -> (a' -> b' -> c') -> p a a' -> p b b' -> p c c' + +instance Biapplicative (,) where + bipure = (,) + biliftA2 f f' (a, a') (b, b') = (f a b, f' a' b') + +newtype WrapBiapp p a b = WrapBiap (p a b) + deriving newtype (Bifunctor, Biapplicative, Eq) + +instance (Biapplicative p, Num a, Num b) => Num (WrapBiapp p a b) + where + (+) = biliftA2 (+) (+) + (-) = biliftA2 (*) (*) + (*) = biliftA2 (*) (*) + negate = bimap negate negate + abs = bimap abs abs + signum = bimap signum signum + fromInteger n = fromInteger n `bipure` fromInteger n + +newtype INT2 = INT2 (Int, Int) + deriving IsZero via (WrappedNumEq2 (WrapBiapp (,) Int Int)) + +class Monoid a => MonoidNull a where + null :: a -> Bool + +newtype WrpMonNull a = WRM a + deriving (Eq, Semigroup, Monoid) + +instance (Eq a, Monoid a) => MonoidNull (WrpMonNull a) where + null :: WrpMonNull a -> Bool + null = (== mempty) + +deriving via (WrpMonNull Any) instance MonoidNull Any + +deriving via () instance MonoidNull () + +deriving via Ordering instance MonoidNull Ordering + +class Lattice a where + sup :: a -> a -> a + + (.>=) :: a -> a -> Bool + + (.>) :: a -> a -> Bool + +newtype WrapOrd a = WrappedOrd a + deriving newtype (Eq, Ord) + +instance Ord a => Lattice (WrapOrd a) where + sup = max + (.>=) = (>=) + (.>) = (>) + +deriving via [a] instance Ord a => Lattice [a] + +deriving via (a, b) instance (Ord a, Ord b) => Lattice (a, b) + +deriving via Bool instance Lattice Bool + +deriving via Char instance Lattice Char + +deriving via Int instance Lattice Int + +deriving via Integer instance Lattice Integer + +deriving via Float instance Lattice Float + +deriving via Double instance Lattice Double + +deriving via Rational instance Lattice Rational + +class Functor f => Additive f where + zero :: Num a => f a + + (^+^) :: Num a => f a -> f a -> f a + (^+^) = liftU2 (+) + + (^-^) :: Num a => f a -> f a -> f a + x ^-^ y = x ^+^ fmap negate y + + liftU2 :: (a -> a -> a) -> f a -> f a -> f a + +instance Additive [] where + zero = [] + liftU2 f = go + where go (x : xs) (y : ys) = f x y : go xs ys + go [] ys = ys + go xs [] = xs + +instance Additive Maybe where + zero = Nothing + liftU2 f (Just a) (Just b) = Just (f a b) + liftU2 _ Nothing ys = ys + liftU2 _ xs Nothing = xs + +instance Applicative f => Additive (WrapApplicative f) where + zero = pure 0 + liftU2 = liftA2 + +deriving via (WrapApplicative ((->) a)) instance Additive ((->) a) + +deriving via (WrapApplicative Complex) instance Additive Complex + +deriving via (WrapApplicative Identity) instance Additive Identity + +instance Additive ZipList where + zero = ZipList [] + liftU2 f (ZipList xs) (ZipList ys) = ZipList (liftU2 f xs ys) + +class Additive (Diff p) => Affine p where + type Diff p :: Type -> Type + + (.-.) :: Num a => p a -> p a -> Diff p a + + (.+^) :: Num a => p a -> Diff p a -> p a + + (.-^) :: Num a => p a -> Diff p a -> p a + p .-^ v = p .+^ fmap negate v + +newtype WrapAdditive f a = WrappedAdditive (f a) + +instance Additive f => Affine (WrapAdditive f) where + type Diff (WrapAdditive f) = f + WrappedAdditive a .-. WrappedAdditive b = a ^-^ b + WrappedAdditive a .+^ b = WrappedAdditive (a ^+^ b) + WrappedAdditive a .-^ b = WrappedAdditive (a ^-^ b) + +deriving via (WrapAdditive ((->) a)) instance Affine ((->) a) + +deriving via (WrapAdditive []) instance Affine [] + +deriving via (WrapAdditive Complex) instance Affine Complex + +deriving via (WrapAdditive Maybe) instance Affine Maybe + +deriving via (WrapAdditive ZipList) instance Affine ZipList + +deriving via (WrapAdditive Identity) instance Affine Identity + +class C2 a b c where + c2 :: a -> b -> c + +instance C2 a b (Const a b) where + c2 x _ = Const x + +newtype Fweemp a = Fweemp a + deriving (C2 a b) via (Const a (b :: Type)) diff --git a/tests/examples/DerivingVia2.hs b/tests/examples/DerivingVia2.hs new file mode 100644 index 00000000..80b9c332 --- /dev/null +++ b/tests/examples/DerivingVia2.hs @@ -0,0 +1,41 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE DerivingVia #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE StandaloneDeriving #-} +module DerivingVia2 where + +import Control.Applicative +import Data.Functor.Compose +import Data.Proxy +import Data.Semigroup + +newtype App (f :: * -> *) a = App (f a) + deriving newtype + (Functor, Applicative) + +instance (Applicative f, Semigroup a) => Semigroup (App f a) where + (<>) = liftA2 (<>) + +deriving via (App (Compose (f :: * -> *) g) a) + instance (Applicative f, Applicative g, Semigroup a) + => Semigroup (Compose f g a) + +class C (a :: k -> *) +instance C Proxy + +newtype MyProxy a = MyProxy (Proxy a) +deriving via (Proxy :: * -> *) instance C MyProxy + +class Z a b +data T a +data X1 a +data X2 a +data X3 a + +deriving via (forall a. T a) instance Z a (X1 b) +deriving via (T a) instance forall b. Z a (X2 b) +deriving via (forall a. T a) instance forall b. Z a (X3 b) diff --git a/tests/examples/DerivingVia2.hs.exactprinter.golden b/tests/examples/DerivingVia2.hs.exactprinter.golden new file mode 100644 index 00000000..3160bef3 --- /dev/null +++ b/tests/examples/DerivingVia2.hs.exactprinter.golden @@ -0,0 +1,42 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE DerivingVia #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE StandaloneDeriving #-} +module DerivingVia2 where + +import Control.Applicative +import Data.Functor.Compose +import Data.Proxy +import Data.Semigroup + +newtype App (f :: * -> *) a = App (f a) + deriving newtype + (Functor, Applicative) + +instance (Applicative f, Semigroup a) => Semigroup (App f a) where + (<>) = liftA2 (<>) + +deriving via( App (Compose (f :: * -> *) g) a) + instance (Applicative f, Applicative g, Semigroup a) + => Semigroup (Compose f g a) + +class C (a :: k -> *) +instance C Proxy + +newtype MyProxy a = MyProxy (Proxy a) +deriving via( Proxy :: * -> *) instance C MyProxy + +class Z a b +data T a +data X1 a +data X2 a +data X3 a + +deriving via( forall a. T a) instance Z a (X1 b) +deriving via( T a) instance forall b. Z a (X2 b) +deriving via( forall a. T a) instance forall b. Z a (X3 b) + diff --git a/tests/examples/DerivingVia2.hs.parser.golden b/tests/examples/DerivingVia2.hs.parser.golden new file mode 100644 index 00000000..9abc0633 --- /dev/null +++ b/tests/examples/DerivingVia2.hs.parser.golden @@ -0,0 +1,2297 @@ +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") + (KindFn + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 16 19 16 25 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 16 21 16 23 ] + } + (KindStar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 16 19 16 20 + , srcInfoPoints = [] + }) + (KindStar + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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")) + (KindFn + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 23 34 23 40 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 23 36 23 38 + ] + } + (KindStar + SrcSpanInfo + { srcInfoSpan = + SrcSpan + "tests/examples/DerivingVia2.hs" 23 34 23 35 + , srcInfoPoints = [] + }) + (KindStar + 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 + ] + } + [ ClassA + 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") + ] + , ClassA + 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") + ] + , ClassA + 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") + (KindFn + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 27 15 27 21 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 27 17 27 19 ] + } + (KindVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 27 15 27 16 + , srcInfoPoints = [] + } + (UnQual + 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"))) + (KindStar + 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"))) + (KindFn + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 24 31 30 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 31 26 31 28 ] + } + (KindStar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 24 31 25 + , srcInfoPoints = [] + }) + (KindStar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 29 31 30 + , srcInfoPoints = [] + }))))) + Nothing + (IRule + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 41 31 50 + , srcInfoPoints = [] + } + Nothing + Nothing + (IHApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 41 31 50 + , srcInfoPoints = [] + } + (IHCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 41 31 42 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 41 31 42 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 41 31 42 + , srcInfoPoints = [] + } + "C"))) + (TyCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 43 31 50 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 43 31 50 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 31 43 31 50 + , srcInfoPoints = [] + } + "MyProxy"))))) + , ClassDecl + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 1 33 12 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 33 1 33 6 ] + } + Nothing + (DHApp + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 7 33 12 + , srcInfoPoints = [] + } + (DHApp + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 7 33 10 + , srcInfoPoints = [] + } + (DHead + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 7 33 8 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 7 33 8 + , srcInfoPoints = [] + } + "Z")) + (UnkindedVar + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 9 33 10 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 33 9 33 10 + , srcInfoPoints = [] + } + "a"))) + (UnkindedVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 33 11 33 12 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 33 11 33 12 + , srcInfoPoints = [] + } + "b"))) + [] + Nothing + , DataDecl + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 1 34 5 + , srcInfoPoints = [] + } + (DataType + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 1 34 5 + , srcInfoPoints = [] + }) + Nothing + (DHApp + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 6 34 9 + , srcInfoPoints = [] + } + (DHead + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 6 34 7 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 6 34 7 + , srcInfoPoints = [] + } + "T")) + (UnkindedVar + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 8 34 9 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 34 8 34 9 + , srcInfoPoints = [] + } + "a"))) + [] + [] + , DataDecl + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 1 35 5 + , srcInfoPoints = [] + } + (DataType + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 1 35 5 + , srcInfoPoints = [] + }) + Nothing + (DHApp + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 6 35 10 + , srcInfoPoints = [] + } + (DHead + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 6 35 8 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 6 35 8 + , srcInfoPoints = [] + } + "X1")) + (UnkindedVar + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 9 35 10 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 35 9 35 10 + , srcInfoPoints = [] + } + "a"))) + [] + [] + , DataDecl + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 1 36 5 + , srcInfoPoints = [] + } + (DataType + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 1 36 5 + , srcInfoPoints = [] + }) + Nothing + (DHApp + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 6 36 10 + , srcInfoPoints = [] + } + (DHead + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 6 36 8 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 6 36 8 + , srcInfoPoints = [] + } + "X2")) + (UnkindedVar + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 9 36 10 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 36 9 36 10 + , srcInfoPoints = [] + } + "a"))) + [] + [] + , DataDecl + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 1 37 5 + , srcInfoPoints = [] + } + (DataType + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 1 37 5 + , srcInfoPoints = [] + }) + Nothing + (DHApp + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 6 37 10 + , srcInfoPoints = [] + } + (DHead + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 6 37 8 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 6 37 8 + , srcInfoPoints = [] + } + "X3")) + (UnkindedVar + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 9 37 10 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 37 9 37 10 + , srcInfoPoints = [] + } + "a"))) + [] + [] + , DerivDecl + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 39 1 39 59 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 39 1 39 9 + , SrcSpan "tests/examples/DerivingVia2.hs" 39 30 39 38 + ] + } + (Just + (DerivVia + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 10 39 13 + , srcInfoPoints = [] + } + (TyParen + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 14 39 29 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 39 14 39 15 + , SrcSpan "tests/examples/DerivingVia2.hs" 39 28 39 29 + ] + } + (TyForall + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 15 39 28 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 39 15 39 21 + , SrcSpan "tests/examples/DerivingVia2.hs" 39 23 39 24 + ] + } + (Just + [ UnkindedVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 22 39 23 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 22 39 23 + , srcInfoPoints = [] + } + "a") + ]) + Nothing + (TyApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 25 39 28 + , srcInfoPoints = [] + } + (TyCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 25 39 26 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 25 39 26 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 25 39 26 + , srcInfoPoints = [] + } + "T"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 27 39 28 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 27 39 28 + , srcInfoPoints = [] + } + "a"))))))) + Nothing + (IRule + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 59 + , srcInfoPoints = [] + } + Nothing + Nothing + (IHApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 59 + , srcInfoPoints = [] + } + (IHApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 52 + , srcInfoPoints = [] + } + (IHCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 50 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 50 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 49 39 50 + , srcInfoPoints = [] + } + "Z"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 51 39 52 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 51 39 52 + , srcInfoPoints = [] + } + "a"))) + (TyParen + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 53 39 59 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 39 53 39 54 + , SrcSpan "tests/examples/DerivingVia2.hs" 39 58 39 59 + ] + } + (TyApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 54 39 58 + , srcInfoPoints = [] + } + (TyCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 54 39 56 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 54 39 56 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 54 39 56 + , srcInfoPoints = [] + } + "X1"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 57 39 58 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 39 57 39 58 + , srcInfoPoints = [] + } + "b")))))) + , DerivDecl + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 40 1 40 59 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 40 1 40 9 + , SrcSpan "tests/examples/DerivingVia2.hs" 40 30 40 38 + ] + } + (Just + (DerivVia + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 10 40 13 + , srcInfoPoints = [] + } + (TyParen + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 24 40 29 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 40 24 40 25 + , SrcSpan "tests/examples/DerivingVia2.hs" 40 28 40 29 + ] + } + (TyApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 25 40 28 + , srcInfoPoints = [] + } + (TyCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 25 40 26 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 25 40 26 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 25 40 26 + , srcInfoPoints = [] + } + "T"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 27 40 28 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 27 40 28 + , srcInfoPoints = [] + } + "a")))))) + Nothing + (IRule + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 39 40 59 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 40 39 40 45 + , SrcSpan "tests/examples/DerivingVia2.hs" 40 47 40 48 + ] + } + (Just + [ UnkindedVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 46 40 47 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 46 40 47 + , srcInfoPoints = [] + } + "b") + ]) + Nothing + (IHApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 49 40 59 + , srcInfoPoints = [] + } + (IHApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 49 40 52 + , srcInfoPoints = [] + } + (IHCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 49 40 50 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 49 40 50 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 49 40 50 + , srcInfoPoints = [] + } + "Z"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 51 40 52 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 51 40 52 + , srcInfoPoints = [] + } + "a"))) + (TyParen + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 53 40 59 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 40 53 40 54 + , SrcSpan "tests/examples/DerivingVia2.hs" 40 58 40 59 + ] + } + (TyApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 54 40 58 + , srcInfoPoints = [] + } + (TyCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 54 40 56 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 54 40 56 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 54 40 56 + , srcInfoPoints = [] + } + "X2"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 57 40 58 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 40 57 40 58 + , srcInfoPoints = [] + } + "b")))))) + , DerivDecl + SrcSpanInfo + { srcInfoSpan = SrcSpan "tests/examples/DerivingVia2.hs" 41 1 41 59 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 41 1 41 9 + , SrcSpan "tests/examples/DerivingVia2.hs" 41 30 41 38 + ] + } + (Just + (DerivVia + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 10 41 13 + , srcInfoPoints = [] + } + (TyParen + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 14 41 29 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 41 14 41 15 + , SrcSpan "tests/examples/DerivingVia2.hs" 41 28 41 29 + ] + } + (TyForall + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 15 41 28 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 41 15 41 21 + , SrcSpan "tests/examples/DerivingVia2.hs" 41 23 41 24 + ] + } + (Just + [ UnkindedVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 22 41 23 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 22 41 23 + , srcInfoPoints = [] + } + "a") + ]) + Nothing + (TyApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 25 41 28 + , srcInfoPoints = [] + } + (TyCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 25 41 26 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 25 41 26 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 25 41 26 + , srcInfoPoints = [] + } + "T"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 27 41 28 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 27 41 28 + , srcInfoPoints = [] + } + "a"))))))) + Nothing + (IRule + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 39 41 59 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 41 39 41 45 + , SrcSpan "tests/examples/DerivingVia2.hs" 41 47 41 48 + ] + } + (Just + [ UnkindedVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 46 41 47 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 46 41 47 + , srcInfoPoints = [] + } + "b") + ]) + Nothing + (IHApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 49 41 59 + , srcInfoPoints = [] + } + (IHApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 49 41 52 + , srcInfoPoints = [] + } + (IHCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 49 41 50 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 49 41 50 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 49 41 50 + , srcInfoPoints = [] + } + "Z"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 51 41 52 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 51 41 52 + , srcInfoPoints = [] + } + "a"))) + (TyParen + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 53 41 59 + , srcInfoPoints = + [ SrcSpan "tests/examples/DerivingVia2.hs" 41 53 41 54 + , SrcSpan "tests/examples/DerivingVia2.hs" 41 58 41 59 + ] + } + (TyApp + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 54 41 58 + , srcInfoPoints = [] + } + (TyCon + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 54 41 56 + , srcInfoPoints = [] + } + (UnQual + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 54 41 56 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 54 41 56 + , srcInfoPoints = [] + } + "X3"))) + (TyVar + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 57 41 58 + , srcInfoPoints = [] + } + (Ident + SrcSpanInfo + { srcInfoSpan = + SrcSpan "tests/examples/DerivingVia2.hs" 41 57 41 58 + , srcInfoPoints = [] + } + "b")))))) + ] + , [] + ) diff --git a/tests/examples/DerivingVia2.hs.prettyparser.golden b/tests/examples/DerivingVia2.hs.prettyparser.golden new file mode 100644 index 00000000..1796dc27 --- /dev/null +++ b/tests/examples/DerivingVia2.hs.prettyparser.golden @@ -0,0 +1 @@ +Match diff --git a/tests/examples/DerivingVia2.hs.prettyprinter.golden b/tests/examples/DerivingVia2.hs.prettyprinter.golden new file mode 100644 index 00000000..18ed259e --- /dev/null +++ b/tests/examples/DerivingVia2.hs.prettyprinter.golden @@ -0,0 +1,47 @@ +{-# LANGUAGE DerivingStrategies #-} +{-# LANGUAGE DerivingVia #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE StandaloneDeriving #-} +module DerivingVia2 where +import Control.Applicative +import Data.Functor.Compose +import Data.Proxy +import Data.Semigroup + +newtype App (f :: * -> *) a = App (f a) + deriving newtype (Functor, Applicative) + +instance (Applicative f, Semigroup a) => Semigroup (App f a) where + (<>) = liftA2 (<>) + +deriving via (App (Compose (f :: * -> *) g) a) instance + (Applicative f, Applicative g, Semigroup a) => + Semigroup (Compose f g a) + +class C (a :: k -> *) + +instance C Proxy + +newtype MyProxy a = MyProxy (Proxy a) + +deriving via (Proxy :: * -> *) instance C MyProxy + +class Z a b + +data T a + +data X1 a + +data X2 a + +data X3 a + +deriving via (forall a . T a) instance Z a (X1 b) + +deriving via (T a) instance forall b . Z a (X2 b) + +deriving via (forall a . T a) instance forall b . Z a (X3 b)