{-# LANGUAGE AllowAmbiguousTypes     #-} 
{-# LANGUAGE ConstraintKinds         #-}
{-# LANGUAGE DataKinds               #-}
{-# LANGUAGE DeriveDataTypeable      #-}
{-# LANGUAGE EmptyCase               #-}
{-# LANGUAGE EmptyDataDeriving       #-}
{-# LANGUAGE StandaloneDeriving      #-}
{-# LANGUAGE FlexibleContexts        #-}
{-# LANGUAGE FlexibleInstances       #-}
{-# LANGUAGE GADTs                   #-}
{-# LANGUAGE MultiParamTypeClasses   #-}
{-# LANGUAGE RankNTypes              #-}
{-# LANGUAGE ScopedTypeVariables     #-}
{-# LANGUAGE TypeFamilyDependencies  #-}
{-# LANGUAGE UndecidableInstances    #-} 
                                         
module Language.Haskell.Syntax.Extension where
import GHC.Prelude
import GHC.TypeLits (Symbol, KnownSymbol)
import Data.Data hiding ( Fixity )
import Data.Kind (Type)
import GHC.Utils.Outputable
data NoExtField = NoExtField
  deriving (Typeable NoExtField
Typeable NoExtField
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> NoExtField -> c NoExtField)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c NoExtField)
-> (NoExtField -> Constr)
-> (NoExtField -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c NoExtField))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c NoExtField))
-> ((forall b. Data b => b -> b) -> NoExtField -> NoExtField)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> NoExtField -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> NoExtField -> r)
-> (forall u. (forall d. Data d => d -> u) -> NoExtField -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> NoExtField -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> NoExtField -> m NoExtField)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> NoExtField -> m NoExtField)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> NoExtField -> m NoExtField)
-> Data NoExtField
NoExtField -> Constr
NoExtField -> DataType
(forall b. Data b => b -> b) -> NoExtField -> NoExtField
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> NoExtField -> u
forall u. (forall d. Data d => d -> u) -> NoExtField -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> NoExtField -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> NoExtField -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> NoExtField -> m NoExtField
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> NoExtField -> m NoExtField
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c NoExtField
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> NoExtField -> c NoExtField
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c NoExtField)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NoExtField)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> NoExtField -> c NoExtField
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> NoExtField -> c NoExtField
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c NoExtField
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c NoExtField
$ctoConstr :: NoExtField -> Constr
toConstr :: NoExtField -> Constr
$cdataTypeOf :: NoExtField -> DataType
dataTypeOf :: NoExtField -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c NoExtField)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c NoExtField)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NoExtField)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NoExtField)
$cgmapT :: (forall b. Data b => b -> b) -> NoExtField -> NoExtField
gmapT :: (forall b. Data b => b -> b) -> NoExtField -> NoExtField
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> NoExtField -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> NoExtField -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> NoExtField -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> NoExtField -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> NoExtField -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> NoExtField -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> NoExtField -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> NoExtField -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> NoExtField -> m NoExtField
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> NoExtField -> m NoExtField
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> NoExtField -> m NoExtField
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> NoExtField -> m NoExtField
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> NoExtField -> m NoExtField
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> NoExtField -> m NoExtField
Data,NoExtField -> NoExtField -> Bool
(NoExtField -> NoExtField -> Bool)
-> (NoExtField -> NoExtField -> Bool) -> Eq NoExtField
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NoExtField -> NoExtField -> Bool
== :: NoExtField -> NoExtField -> Bool
$c/= :: NoExtField -> NoExtField -> Bool
/= :: NoExtField -> NoExtField -> Bool
Eq,Eq NoExtField
Eq NoExtField
-> (NoExtField -> NoExtField -> Ordering)
-> (NoExtField -> NoExtField -> Bool)
-> (NoExtField -> NoExtField -> Bool)
-> (NoExtField -> NoExtField -> Bool)
-> (NoExtField -> NoExtField -> Bool)
-> (NoExtField -> NoExtField -> NoExtField)
-> (NoExtField -> NoExtField -> NoExtField)
-> Ord NoExtField
NoExtField -> NoExtField -> Bool
NoExtField -> NoExtField -> Ordering
NoExtField -> NoExtField -> NoExtField
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: NoExtField -> NoExtField -> Ordering
compare :: NoExtField -> NoExtField -> Ordering
$c< :: NoExtField -> NoExtField -> Bool
< :: NoExtField -> NoExtField -> Bool
$c<= :: NoExtField -> NoExtField -> Bool
<= :: NoExtField -> NoExtField -> Bool
$c> :: NoExtField -> NoExtField -> Bool
> :: NoExtField -> NoExtField -> Bool
$c>= :: NoExtField -> NoExtField -> Bool
>= :: NoExtField -> NoExtField -> Bool
$cmax :: NoExtField -> NoExtField -> NoExtField
max :: NoExtField -> NoExtField -> NoExtField
$cmin :: NoExtField -> NoExtField -> NoExtField
min :: NoExtField -> NoExtField -> NoExtField
Ord)
instance Outputable NoExtField where
  ppr :: NoExtField -> SDoc
ppr NoExtField
_ = String -> SDoc
text String
"NoExtField"
noExtField :: NoExtField
noExtField :: NoExtField
noExtField = NoExtField
NoExtField
data DataConCantHappen
  deriving (Typeable DataConCantHappen
Typeable DataConCantHappen
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> DataConCantHappen
    -> c DataConCantHappen)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c DataConCantHappen)
-> (DataConCantHappen -> Constr)
-> (DataConCantHappen -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c DataConCantHappen))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c DataConCantHappen))
-> ((forall b. Data b => b -> b)
    -> DataConCantHappen -> DataConCantHappen)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> DataConCantHappen -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> DataConCantHappen -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> DataConCantHappen -> m DataConCantHappen)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> DataConCantHappen -> m DataConCantHappen)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> DataConCantHappen -> m DataConCantHappen)
-> Data DataConCantHappen
DataConCantHappen -> Constr
DataConCantHappen -> DataType
(forall b. Data b => b -> b)
-> DataConCantHappen -> DataConCantHappen
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> DataConCantHappen -> u
forall u. (forall d. Data d => d -> u) -> DataConCantHappen -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> DataConCantHappen -> m DataConCantHappen
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DataConCantHappen -> m DataConCantHappen
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DataConCantHappen
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DataConCantHappen -> c DataConCantHappen
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DataConCantHappen)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DataConCantHappen)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DataConCantHappen -> c DataConCantHappen
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DataConCantHappen -> c DataConCantHappen
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DataConCantHappen
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DataConCantHappen
$ctoConstr :: DataConCantHappen -> Constr
toConstr :: DataConCantHappen -> Constr
$cdataTypeOf :: DataConCantHappen -> DataType
dataTypeOf :: DataConCantHappen -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DataConCantHappen)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DataConCantHappen)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DataConCantHappen)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c DataConCantHappen)
$cgmapT :: (forall b. Data b => b -> b)
-> DataConCantHappen -> DataConCantHappen
gmapT :: (forall b. Data b => b -> b)
-> DataConCantHappen -> DataConCantHappen
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DataConCantHappen -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> DataConCantHappen -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> DataConCantHappen -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> DataConCantHappen -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> DataConCantHappen -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> DataConCantHappen -> m DataConCantHappen
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> DataConCantHappen -> m DataConCantHappen
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DataConCantHappen -> m DataConCantHappen
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DataConCantHappen -> m DataConCantHappen
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DataConCantHappen -> m DataConCantHappen
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> DataConCantHappen -> m DataConCantHappen
Data,DataConCantHappen -> DataConCantHappen -> Bool
(DataConCantHappen -> DataConCantHappen -> Bool)
-> (DataConCantHappen -> DataConCantHappen -> Bool)
-> Eq DataConCantHappen
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DataConCantHappen -> DataConCantHappen -> Bool
== :: DataConCantHappen -> DataConCantHappen -> Bool
$c/= :: DataConCantHappen -> DataConCantHappen -> Bool
/= :: DataConCantHappen -> DataConCantHappen -> Bool
Eq,Eq DataConCantHappen
Eq DataConCantHappen
-> (DataConCantHappen -> DataConCantHappen -> Ordering)
-> (DataConCantHappen -> DataConCantHappen -> Bool)
-> (DataConCantHappen -> DataConCantHappen -> Bool)
-> (DataConCantHappen -> DataConCantHappen -> Bool)
-> (DataConCantHappen -> DataConCantHappen -> Bool)
-> (DataConCantHappen -> DataConCantHappen -> DataConCantHappen)
-> (DataConCantHappen -> DataConCantHappen -> DataConCantHappen)
-> Ord DataConCantHappen
DataConCantHappen -> DataConCantHappen -> Bool
DataConCantHappen -> DataConCantHappen -> Ordering
DataConCantHappen -> DataConCantHappen -> DataConCantHappen
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DataConCantHappen -> DataConCantHappen -> Ordering
compare :: DataConCantHappen -> DataConCantHappen -> Ordering
$c< :: DataConCantHappen -> DataConCantHappen -> Bool
< :: DataConCantHappen -> DataConCantHappen -> Bool
$c<= :: DataConCantHappen -> DataConCantHappen -> Bool
<= :: DataConCantHappen -> DataConCantHappen -> Bool
$c> :: DataConCantHappen -> DataConCantHappen -> Bool
> :: DataConCantHappen -> DataConCantHappen -> Bool
$c>= :: DataConCantHappen -> DataConCantHappen -> Bool
>= :: DataConCantHappen -> DataConCantHappen -> Bool
$cmax :: DataConCantHappen -> DataConCantHappen -> DataConCantHappen
max :: DataConCantHappen -> DataConCantHappen -> DataConCantHappen
$cmin :: DataConCantHappen -> DataConCantHappen -> DataConCantHappen
min :: DataConCantHappen -> DataConCantHappen -> DataConCantHappen
Ord)
instance Outputable DataConCantHappen where
  ppr :: DataConCantHappen -> SDoc
ppr = DataConCantHappen -> SDoc
forall a. DataConCantHappen -> a
dataConCantHappen
dataConCantHappen :: DataConCantHappen -> a
dataConCantHappen :: forall a. DataConCantHappen -> a
dataConCantHappen DataConCantHappen
x = case DataConCantHappen
x of {}
type family XRec p a = r | r -> a
type family Anno a = b 
class UnXRec p where
  unXRec :: XRec p a -> a
class MapXRec p where
  mapXRec :: (Anno a ~ Anno b) => (a -> b) -> XRec p a -> XRec p b
class WrapXRec p a where
  wrapXRec :: a -> XRec p a
type family IdP p
type LIdP p = XRec p (IdP p)
type family XHsValBinds      x x'
type family XHsIPBinds       x x'
type family XEmptyLocalBinds x x'
type family XXHsLocalBindsLR x x'
type family XValBinds    x x'
type family XXValBindsLR x x'
type family XFunBind    x x'
type family XPatBind    x x'
type family XVarBind    x x'
type family XPatSynBind x x'
type family XXHsBindsLR x x'
type family XPSB x x'
type family XXPatSynBind x x'
type family XIPBinds    x
type family XXHsIPBinds x
type family XCIPBind x
type family XXIPBind x
type family XTypeSig          x
type family XPatSynSig        x
type family XClassOpSig       x
type family XIdSig            x
type family XFixSig           x
type family XInlineSig        x
type family XSpecSig          x
type family XSpecInstSig      x
type family XMinimalSig       x
type family XSCCFunSig        x
type family XCompleteMatchSig x
type family XXSig             x
type family XFixitySig          x
type family XXFixitySig         x
type family XStandaloneKindSig  x
type family XXStandaloneKindSig x
type family XTyClD       x
type family XInstD       x
type family XDerivD      x
type family XValD        x
type family XSigD        x
type family XKindSigD    x
type family XDefD        x
type family XForD        x
type family XWarningD    x
type family XAnnD        x
type family XRuleD       x
type family XSpliceD     x
type family XDocD        x
type family XRoleAnnotD  x
type family XXHsDecl     x
type family XCHsGroup      x
type family XXHsGroup      x
type family XSpliceDecl       x
type family XXSpliceDecl      x
type family XFamDecl       x
type family XSynDecl       x
type family XDataDecl      x
type family XClassDecl     x
type family XXTyClDecl     x
type family XCFunDep      x
type family XXFunDep      x
type family XCTyClGroup      x
type family XXTyClGroup      x
type family XNoSig            x
type family XCKindSig         x 
type family XTyVarSig         x
type family XXFamilyResultSig x
type family XCFamilyDecl      x
type family XXFamilyDecl      x
type family XCHsDataDefn      x
type family XXHsDataDefn      x
type family XCHsDerivingClause      x
type family XXHsDerivingClause      x
type family XDctSingle       x
type family XDctMulti        x
type family XXDerivClauseTys x
type family XConDeclGADT   x
type family XConDeclH98    x
type family XXConDecl      x
type family XCFamEqn      x r
type family XXFamEqn      x r
type family XCTyFamInstDecl x
type family XXTyFamInstDecl x
type family XCClsInstDecl      x
type family XXClsInstDecl      x
type family XClsInstD      x
type family XDataFamInstD  x
type family XTyFamInstD    x
type family XXInstDecl     x
type family XCDerivDecl      x
type family XXDerivDecl      x
type family XStockStrategy    x
type family XAnyClassStrategy x
type family XNewtypeStrategy  x
type family XViaStrategy      x
type family XCDefaultDecl      x
type family XXDefaultDecl      x
type family XForeignImport     x
type family XForeignExport     x
type family XXForeignDecl      x
type family XCRuleDecls      x
type family XXRuleDecls      x
type family XHsRule          x
type family XXRuleDecl       x
type family XCRuleBndr      x
type family XRuleBndrSig    x
type family XXRuleBndr      x
type family XWarnings        x
type family XXWarnDecls      x
type family XWarning        x
type family XXWarnDecl      x
type family XHsAnnotation  x
type family XXAnnDecl      x
type family XCRoleAnnotDecl  x
type family XXRoleAnnotDecl  x
type family XCInjectivityAnn  x
type family XXInjectivityAnn  x
type family XVar            x
type family XUnboundVar     x
type family XRecSel         x
type family XOverLabel      x
type family XIPVar          x
type family XOverLitE       x
type family XLitE           x
type family XLam            x
type family XLamCase        x
type family XApp            x
type family XAppTypeE       x
type family XOpApp          x
type family XNegApp         x
type family XPar            x
type family XSectionL       x
type family XSectionR       x
type family XExplicitTuple  x
type family XExplicitSum    x
type family XCase           x
type family XIf             x
type family XMultiIf        x
type family XLet            x
type family XDo             x
type family XExplicitList   x
type family XRecordCon      x
type family XRecordUpd      x
type family XGetField       x
type family XProjection     x
type family XExprWithTySig  x
type family XArithSeq       x
type family XTypedBracket   x
type family XUntypedBracket x
type family XSpliceE        x
type family XProc           x
type family XStatic         x
type family XTick           x
type family XBinTick        x
type family XPragE          x
type family XXExpr          x
type family XCDotFieldOcc  x
type family XXDotFieldOcc  x
type family XSCC            x
type family XXPragE         x
type family XUnambiguous        x
type family XAmbiguous          x
type family XXAmbiguousFieldOcc x
type family XPresent  x
type family XMissing  x
type family XXTupArg  x
type family XTypedSplice   x
type family XUntypedSplice x
type family XQuasiQuote    x
type family XSpliced       x
type family XXSplice       x
type family XExpBr  x
type family XPatBr  x
type family XDecBrL x
type family XDecBrG x
type family XTypBr  x
type family XVarBr  x
type family XXQuote x
type family XCmdTop  x
type family XXCmdTop x
type family XMG           x b
type family XXMatchGroup  x b
type family XCMatch  x b
type family XXMatch  x b
type family XCGRHSs  x b
type family XXGRHSs  x b
type family XCGRHS  x b
type family XXGRHS  x b
type family XLastStmt        x x' b
type family XBindStmt        x x' b
type family XApplicativeStmt x x' b
type family XBodyStmt        x x' b
type family XLetStmt         x x' b
type family XParStmt         x x' b
type family XTransStmt       x x' b
type family XRecStmt         x x' b
type family XXStmtLR         x x' b
type family XCmdArrApp   x
type family XCmdArrForm  x
type family XCmdApp      x
type family XCmdLam      x
type family XCmdPar      x
type family XCmdCase     x
type family XCmdLamCase  x
type family XCmdIf       x
type family XCmdLet      x
type family XCmdDo       x
type family XCmdWrap     x
type family XXCmd        x
type family XParStmtBlock  x x'
type family XXParStmtBlock x x'
type family XApplicativeArgOne   x
type family XApplicativeArgMany  x
type family XXApplicativeArg     x
type family XHsChar x
type family XHsCharPrim x
type family XHsString x
type family XHsStringPrim x
type family XHsInt x
type family XHsIntPrim x
type family XHsWordPrim x
type family XHsInt64Prim x
type family XHsWord64Prim x
type family XHsInteger x
type family XHsRat x
type family XHsFloatPrim x
type family XHsDoublePrim x
type family XXLit x
type family XOverLit  x
type family XXOverLit x
type family XWildPat     x
type family XVarPat      x
type family XLazyPat     x
type family XAsPat       x
type family XParPat      x
type family XBangPat     x
type family XListPat     x
type family XTuplePat    x
type family XSumPat      x
type family XConPat      x
type family XViewPat     x
type family XSplicePat   x
type family XLitPat      x
type family XNPat        x
type family XNPlusKPat   x
type family XSigPat      x
type family XCoPat       x
type family XXPat        x
type family XHsFieldBind x
type family XHsQTvs       x
type family XXLHsQTyVars  x
type family XHsOuterImplicit    x
type family XHsOuterExplicit    x flag
type family XXHsOuterTyVarBndrs x
type family XHsSig      x
type family XXHsSigType x
type family XHsWC              x b
type family XXHsWildCardBndrs  x b
type family XHsPS x
type family XXHsPatSigType x
type family XForAllTy        x
type family XQualTy          x
type family XTyVar           x
type family XAppTy           x
type family XAppKindTy       x
type family XFunTy           x
type family XListTy          x
type family XTupleTy         x
type family XSumTy           x
type family XOpTy            x
type family XParTy           x
type family XIParamTy        x
type family XStarTy          x
type family XKindSig         x
type family XSpliceTy        x
type family XDocTy           x
type family XBangTy          x
type family XRecTy           x
type family XExplicitListTy  x
type family XExplicitTupleTy x
type family XTyLit           x
type family XWildCardTy      x
type family XXType           x
type family XHsForAllVis        x
type family XHsForAllInvis      x
type family XXHsForAllTelescope x
type family XUserTyVar   x
type family XKindedTyVar x
type family XXTyVarBndr  x
type family XConDeclField  x
type family XXConDeclField x
type family XCFieldOcc x
type family XXFieldOcc x
type family XCImportDecl       x
type family XXImportDecl       x
type family XIEVar             x
type family XIEThingAbs        x
type family XIEThingAll        x
type family XIEThingWith       x
type family XIEModuleContents  x
type family XIEGroup           x
type family XIEDoc             x
type family XIEDocNamed        x
type family XXIE               x
type family NoGhcTc (p :: Type)
type LHsToken tok p = XRec p (HsToken tok)
data HsToken (tok :: Symbol) = HsTok
deriving instance KnownSymbol tok => Data (HsToken tok)
type LHsUniToken tok utok p = XRec p (HsUniToken tok utok)
data HsUniToken (tok :: Symbol) (utok :: Symbol) = HsNormalTok | HsUnicodeTok
deriving instance (KnownSymbol tok, KnownSymbol utok) => Data (HsUniToken tok utok)