ghc-lib-parser-9.12.2.20250421: The GHC API, decoupled from GHC versions

Safe Haskell | Ignore
Language | GHC2021

GHC.Internal.TH.Syntax

Contents

- Language extensions
- Notes
  - Unresolved Infix

Description

This module is used internally in GHC's integration with Template Haskell and defines the abstract syntax of Template Haskell.

This is not a part of the public API, and as such, there are no API guarantees for this module from version to version.

Import Language.Haskell.TH or Language.Haskell.TH.Syntax instead!

Synopsis

- data Foreign
  - = ImportF Callconv Safety String Name Type
  - | ExportF Callconv String Name Type
- type Unlifted = Bool
- data Module = Module PkgName ModName
- data Type
  - = ForallT [TyVarBndr Specificity] Cxt Type
  - | ForallVisT [TyVarBndr ()] Type
  - | AppT Type Type
  - | AppKindT Type Kind
  - | SigT Type Kind
  - | VarT Name
  - | ConT Name
  - | PromotedT Name
  - | InfixT Type Name Type
  - | UInfixT Type Name Type
  - | PromotedInfixT Type Name Type
  - | PromotedUInfixT Type Name Type
  - | ParensT Type
  - | TupleT Int
  - | UnboxedTupleT Int
  - | UnboxedSumT SumArity
  - | ArrowT
  - | MulArrowT
  - | EqualityT
  - | ListT
  - | PromotedTupleT Int
  - | PromotedNilT
  - | PromotedConsT
  - | StarT
  - | ConstraintT
  - | LitT TyLit
  - | WildCardT
  - | ImplicitParamT String Type
- data SourceUnpackedness
  - = NoSourceUnpackedness
  - | SourceNoUnpack
  - | SourceUnpack
- data SourceStrictness
  - = NoSourceStrictness
  - | SourceLazy
  - | SourceStrict
- data DecidedStrictness
  - = DecidedLazy
  - | DecidedStrict
  - | DecidedUnpack
- data Fixity = Fixity Int FixityDirection
- data NameIs
  - = Alone
  - | Applied
  - | Infix
- data Con
  - = NormalC Name [BangType]
  - | RecC Name [VarBangType]
  - | InfixC BangType Name BangType
  - | ForallC [TyVarBndr Specificity] Cxt Con
  - | GadtC [Name] [BangType] Type
  - | RecGadtC [Name] [VarBangType] Type
- recover :: Q a -> Q a -> Q a
- reportError :: String -> Q ()
- runIO :: IO a -> Q a
- memcmp :: Ptr a -> Ptr b -> CSize -> IO CInt
- newtype Q a = Q {
  - unQ :: forall (m :: Type -> Type). Quasi m => m a
  }
- type Strict = Bang
- sequenceQ :: Monad m => forall a. [m a] -> m [a]
- class Monad m => Quote (m :: Type -> Type) where
  - newName :: String -> m Name
- mkName :: String -> Name
- mkNameG_v :: String -> String -> String -> Name
- mkNameG_d :: String -> String -> String -> Name
- mkNameG_tc :: String -> String -> String -> Name
- mkNameL :: String -> Uniq -> Name
- mkNameS :: String -> Name
- newtype TExp (a :: TYPE r) = TExp {
  - unType :: Exp
  }
- unTypeCode :: forall a m. Quote m => Code m a -> m Exp
- mkModName :: String -> ModName
- unsafeCodeCoerce :: forall a m. Quote m => m Exp -> Code m a
- mkNameQ :: String -> String -> Name
- mkNameG_fld :: String -> String -> String -> String -> Name
- data Exp
  - = VarE Name
  - | ConE Name
  - | LitE Lit
  - | AppE Exp Exp
  - | AppTypeE Exp Type
  - | InfixE (Maybe Exp) Exp (Maybe Exp)
  - | UInfixE Exp Exp Exp
  - | ParensE Exp
  - | LamE [Pat] Exp
  - | LamCaseE [Match]
  - | LamCasesE [Clause]
  - | TupE [Maybe Exp]
  - | UnboxedTupE [Maybe Exp]
  - | UnboxedSumE Exp SumAlt SumArity
  - | CondE Exp Exp Exp
  - | MultiIfE [(Guard, Exp)]
  - | LetE [Dec] Exp
  - | CaseE Exp [Match]
  - | DoE (Maybe ModName) [Stmt]
  - | MDoE (Maybe ModName) [Stmt]
  - | CompE [Stmt]
  - | ArithSeqE Range
  - | ListE [Exp]
  - | SigE Exp Type
  - | RecConE Name [FieldExp]
  - | RecUpdE Exp [FieldExp]
  - | StaticE Exp
  - | UnboundVarE Name
  - | LabelE String
  - | ImplicitParamVarE String
  - | GetFieldE Exp String
  - | ProjectionE (NonEmpty String)
  - | TypedBracketE Exp
  - | TypedSpliceE Exp
  - | TypeE Type
  - | ForallE [TyVarBndr Specificity] Exp
  - | ForallVisE [TyVarBndr ()] Exp
  - | ConstrainedE [Exp] Exp
- data Match = Match Pat Body [Dec]
- data Clause = Clause [Pat] Body [Dec]
- data Pat
  - = LitP Lit
  - | VarP Name
  - | TupP [Pat]
  - | UnboxedTupP [Pat]
  - | UnboxedSumP Pat SumAlt SumArity
  - | ConP Name [Type] [Pat]
  - | InfixP Pat Name Pat
  - | UInfixP Pat Name Pat
  - | ParensP Pat
  - | TildeP Pat
  - | BangP Pat
  - | AsP Name Pat
  - | WildP
  - | RecP Name [FieldPat]
  - | ListP [Pat]
  - | SigP Pat Type
  - | ViewP Exp Pat
  - | TypeP Type
  - | InvisP Type
  - | OrP (NonEmpty Pat)
- data Stmt
  - = BindS Pat Exp
  - | LetS [Dec]
  - | NoBindS Exp
  - | ParS [[Stmt]]
  - | RecS [Stmt]
- data Dec
  - = FunD Name [Clause]
  - | ValD Pat Body [Dec]
  - | DataD Cxt Name [TyVarBndr BndrVis] (Maybe Kind) [Con] [DerivClause]
  - | NewtypeD Cxt Name [TyVarBndr BndrVis] (Maybe Kind) Con [DerivClause]
  - | TypeDataD Name [TyVarBndr BndrVis] (Maybe Kind) [Con]
  - | TySynD Name [TyVarBndr BndrVis] Type
  - | ClassD Cxt Name [TyVarBndr BndrVis] [FunDep] [Dec]
  - | InstanceD (Maybe Overlap) Cxt Type [Dec]
  - | SigD Name Type
  - | KiSigD Name Kind
  - | ForeignD Foreign
  - | InfixD Fixity NamespaceSpecifier Name
  - | DefaultD [Type]
  - | PragmaD Pragma
  - | DataFamilyD Name [TyVarBndr BndrVis] (Maybe Kind)
  - | DataInstD Cxt (Maybe [TyVarBndr ()]) Type (Maybe Kind) [Con] [DerivClause]
  - | NewtypeInstD Cxt (Maybe [TyVarBndr ()]) Type (Maybe Kind) Con [DerivClause]
  - | TySynInstD TySynEqn
  - | OpenTypeFamilyD TypeFamilyHead
  - | ClosedTypeFamilyD TypeFamilyHead [TySynEqn]
  - | RoleAnnotD Name [Role]
  - | StandaloneDerivD (Maybe DerivStrategy) Cxt Type
  - | DefaultSigD Name Type
  - | PatSynD Name PatSynArgs PatSynDir Pat
  - | PatSynSigD Name PatSynType
  - | ImplicitParamBindD String Exp
- type BangType = (Bang, Type)
- type VarBangType = (Name, Bang, Type)
- type FieldExp = (Name, Exp)
- type FieldPat = (Name, Pat)
- data Name = Name OccName NameFlavour
- data FunDep = FunDep [Name] [Name]
- type Pred = Type
- data RuleBndr
  - = RuleVar Name
  - | TypedRuleVar Name Type
- data TySynEqn = TySynEqn (Maybe [TyVarBndr ()]) Type Type
- data Role
  - = NominalR
  - | RepresentationalR
  - | PhantomR
  - | InferR
- data InjectivityAnn = InjectivityAnn Name [Name]
- type Kind = Type
- data Overlap
  - = Overlappable
  - | Overlapping
  - | Overlaps
  - | Incoherent
- data DerivClause = DerivClause (Maybe DerivStrategy) Cxt
- data DerivStrategy
  - = StockStrategy
  - | AnyclassStrategy
  - | NewtypeStrategy
  - | ViaStrategy Type
- newtype Code (m :: Type -> Type) (a :: TYPE r) = Code {
  - examineCode :: m (TExp a)
  }
- newtype ModName = ModName String
- data Inline
  - = NoInline
  - | Inline
  - | Inlinable
- data RuleMatch
  - = ConLike
  - | FunLike
- data Phases
  - = AllPhases
  - | FromPhase Int
  - | BeforePhase Int
- data NamespaceSpecifier
  - = NoNamespaceSpecifier
  - | TypeNamespaceSpecifier
  - | DataNamespaceSpecifier
- data DocLoc
  - = ModuleDoc
  - | DeclDoc Name
  - | ArgDoc Name Int
  - | InstDoc Type
- data AnnLookup
  - = AnnLookupModule Module
  - | AnnLookupName Name
- data TyLit
  - = NumTyLit Integer
  - | StrTyLit String
  - | CharTyLit Char
- data FamilyResultSig
  - = NoSig
  - | KindSig Kind
  - | TyVarSig (TyVarBndr ())
- data BndrVis
  - = BndrReq
  - | BndrInvis
- data TyVarBndr flag
  - = PlainTV Name flag
  - | KindedTV Name flag Kind
- data Specificity
  - = SpecifiedSpec
  - | InferredSpec
- data PatSynArgs
  - = PrefixPatSyn [Name]
  - | InfixPatSyn Name Name
  - | RecordPatSyn [Name]
- data PatSynDir
  - = Unidir
  - | ImplBidir
  - | ExplBidir [Clause]
- type VarStrictType = VarBangType
- type StrictType = BangType
- data Bang = Bang SourceUnpackedness SourceStrictness
- type Cxt = [Pred]
- data AnnTarget
  - = ModuleAnnotation
  - | TypeAnnotation Name
  - | ValueAnnotation Name
- data Pragma
  - = InlineP Name Inline RuleMatch Phases
  - | OpaqueP Name
  - | SpecialiseP Name Type (Maybe Inline) Phases
  - | SpecialiseInstP Type
  - | RuleP String (Maybe [TyVarBndr ()]) [RuleBndr] Exp Exp Phases
  - | AnnP AnnTarget Exp
  - | LineP Int String
  - | CompleteP [Name] (Maybe Name)
  - | SCCP Name (Maybe String)
- data Safety
  - = Unsafe
  - | Safe
  - | Interruptible
- data Callconv
  - = CCall
  - | StdCall
  - | CApi
  - | Prim
  - | JavaScript
- data TypeFamilyHead = TypeFamilyHead Name [TyVarBndr BndrVis] FamilyResultSig (Maybe InjectivityAnn)
- type PatSynType = Type
- data Range
  - = FromR Exp
  - | FromThenR Exp Exp
  - | FromToR Exp Exp
  - | FromThenToR Exp Exp Exp
- data Guard
  - = NormalG Exp
  - | PatG [Stmt]
- data Body
  - = GuardedB [(Guard, Exp)]
  - | NormalB Exp
- data Bytes = Bytes {
  - bytesPtr :: ForeignPtr Word8
  - bytesOffset :: Word
  - bytesSize :: Word
  }
- data Lit
  - = CharL Char
  - | StringL String
  - | IntegerL Integer
  - | RationalL Rational
  - | IntPrimL Integer
  - | WordPrimL Integer
  - | FloatPrimL Rational
  - | DoublePrimL Rational
  - | StringPrimL [Word8]
  - | BytesPrimL Bytes
  - | CharPrimL Char
- data FixityDirection
  - = InfixL
  - | InfixR
  - | InfixN
- type InstanceDec = Dec
- type Arity = Int
- type SumArity = Int
- type SumAlt = Int
- type ParentName = Name
- data ModuleInfo = ModuleInfo [Module]
- data Info
  - = ClassI Dec [InstanceDec]
  - | ClassOpI Name Type ParentName
  - | TyConI Dec
  - | FamilyI Dec [InstanceDec]
  - | PrimTyConI Name Arity Unlifted
  - | DataConI Name Type ParentName
  - | PatSynI Name PatSynType
  - | VarI Name Type (Maybe Dec)
  - | TyVarI Name Type
- type CharPos = (Int, Int)
- data Loc = Loc {
  - loc_filename :: String
  - loc_package :: String
  - loc_module :: String
  - loc_start :: CharPos
  - loc_end :: CharPos
  }
- type Uniq = Integer
- data NameSpace
  - = VarName
  - | DataName
  - | TcClsName
  - | FldName {
    - fldParent :: !String
    }
- data NameFlavour
  - = NameS
  - | NameQ ModName
  - | NameU !Uniq
  - | NameL !Uniq
  - | NameG NameSpace PkgName ModName
- newtype OccName = OccName String
- newtype PkgName = PkgName String
- class (MonadIO m, MonadFail m) => Quasi (m :: Type -> Type) where
  - qNewName :: String -> m Name
  - qReport :: Bool -> String -> m ()
  - qRecover :: m a -> m a -> m a
  - qLookupName :: Bool -> String -> m (Maybe Name)
  - qReify :: Name -> m Info
  - qReifyFixity :: Name -> m (Maybe Fixity)
  - qReifyType :: Name -> m Type
  - qReifyInstances :: Name -> [Type] -> m [Dec]
  - qReifyRoles :: Name -> m [Role]
  - qReifyAnnotations :: Data a => AnnLookup -> m [a]
  - qReifyModule :: Module -> m ModuleInfo
  - qReifyConStrictness :: Name -> m [DecidedStrictness]
  - qLocation :: m Loc
  - qRunIO :: IO a -> m a
  - qGetPackageRoot :: m FilePath
  - qAddDependentFile :: FilePath -> m ()
  - qAddTempFile :: String -> m FilePath
  - qAddTopDecls :: [Dec] -> m ()
  - qAddForeignFilePath :: ForeignSrcLang -> String -> m ()
  - qAddModFinalizer :: Q () -> m ()
  - qAddCorePlugin :: String -> m ()
  - qGetQ :: Typeable a => m (Maybe a)
  - qPutQ :: Typeable a => a -> m ()
  - qIsExtEnabled :: Extension -> m Bool
  - qExtsEnabled :: m [Extension]
  - qPutDoc :: DocLoc -> String -> m ()
  - qGetDoc :: DocLoc -> m (Maybe String)
- newNameIO :: String -> IO Name
- badIO :: String -> IO a
- counter :: IORef Uniq
- runQ :: Quasi m => Q a -> m a
- unTypeQ :: forall a m. Quote m => m (TExp a) -> m Exp
- unsafeTExpCoerce :: forall a m. Quote m => m Exp -> m (TExp a)
- liftCode :: forall a m. m (TExp a) -> Code m a
- hoistCode :: Monad m => (forall x. m x -> n x) -> Code m a -> Code n a
- bindCode :: Monad m => m a -> (a -> Code m b) -> Code m b
- bindCode_ :: Monad m => m a -> Code m b -> Code m b
- joinCode :: Monad m => m (Code m a) -> Code m a
- report :: Bool -> String -> Q ()
- reportWarning :: String -> Q ()
- lookupName :: Bool -> String -> Q (Maybe Name)
- lookupTypeName :: String -> Q (Maybe Name)
- lookupValueName :: String -> Q (Maybe Name)
- reify :: Name -> Q Info
- reifyFixity :: Name -> Q (Maybe Fixity)
- reifyType :: Name -> Q Type
- newDeclarationGroup :: Q [Dec]
- reifyInstances :: Name -> [Type] -> Q [InstanceDec]
- reifyRoles :: Name -> Q [Role]
- reifyAnnotations :: Data a => AnnLookup -> Q [a]
- reifyModule :: Module -> Q ModuleInfo
- reifyConStrictness :: Name -> Q [DecidedStrictness]
- isInstance :: Name -> [Type] -> Q Bool
- location :: Q Loc
- getPackageRoot :: Q FilePath
- addDependentFile :: FilePath -> Q ()
- addTempFile :: String -> Q FilePath
- addTopDecls :: [Dec] -> Q ()
- addForeignFile :: ForeignSrcLang -> String -> Q ()
- addForeignSource :: ForeignSrcLang -> String -> Q ()
- addForeignFilePath :: ForeignSrcLang -> FilePath -> Q ()
- addModFinalizer :: Q () -> Q ()
- addCorePlugin :: String -> Q ()
- getQ :: Typeable a => Q (Maybe a)
- putQ :: Typeable a => a -> Q ()
- isExtEnabled :: Extension -> Q Bool
- extsEnabled :: Q [Extension]
- putDoc :: DocLoc -> String -> Q ()
- getDoc :: DocLoc -> Q (Maybe String)
- oneName :: Name
- manyName :: Name
- modString :: ModName -> String
- mkPkgName :: String -> PkgName
- pkgString :: PkgName -> String
- mkOccName :: String -> OccName
- occString :: OccName -> String
- nameBase :: Name -> String
- nameModule :: Name -> Maybe String
- namePackage :: Name -> Maybe String
- nameSpace :: Name -> Maybe NameSpace
- mkNameU :: String -> Uniq -> Name
- mkNameG :: NameSpace -> String -> String -> String -> Name
- showName :: Name -> String
- showName' :: NameIs -> Name -> String
- tupleDataName :: Int -> Name
- tupleTypeName :: Int -> Name
- unboxedTupleDataName :: Int -> Name
- unboxedTupleTypeName :: Int -> Name
- mk_tup_name :: Int -> NameSpace -> Bool -> Name
- unboxedSumDataName :: SumAlt -> SumArity -> Name
- unboxedSumTypeName :: SumArity -> Name
- maxPrecedence :: Int
- defaultFixity :: Fixity
- eqBytes :: Bytes -> Bytes -> Bool
- compareBytes :: Bytes -> Bytes -> Ordering
- cmpEq :: Ordering -> Bool
- thenCmp :: Ordering -> Ordering -> Ordering
- get_cons_names :: Con -> [Name]
- module GHC.Internal.LanguageExtensions
- data ForeignSrcLang
  - = LangC
  - | LangCxx
  - | LangObjc
  - | LangObjcxx
  - | LangAsm
  - | LangJs
  - | RawObject

# Documentation

data Foreign Source #

A `foreign` declaration.

Constructors

ImportF Callconv Safety String Name Type

    foreign import callconv safety "foreign_name" haskellName :: type

ExportF Callconv String Name Type

    foreign export callconv "foreign_name" haskellName :: type

#### Instances

Instances details

Binary Foreign Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Foreign -> Put Source # get :: Get Foreign Source # putList :: [Foreign] -> Put Source #
Data Foreign Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Foreign -> c Foreign Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Foreign Source #

toConstr :: Foreign -> Constr Source #

dataTypeOf :: Foreign -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Foreign) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Foreign) Source #

gmapT :: (forall b. Data b => b -> b) -> Foreign -> Foreign Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Foreign -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Foreign -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Foreign -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Foreign -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Foreign -> m Foreign Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Foreign -> m Foreign Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Foreign -> m Foreign Source #

Generic Foreign Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Foreign |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Foreign = D1 ('MetaData "Foreign" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "ImportF" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Callconv) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Safety)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: C1 ('MetaCons "ExportF" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Callconv) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))

Methods

from :: Foreign -> Rep Foreign x Source #

to :: Rep Foreign x -> Foreign Source #

Show Foreign Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Foreign -> ShowS Source # show :: Foreign -> String Source # showList :: [Foreign] -> ShowS Source #
Ppr Foreign Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Foreign -> Doc Source # ppr_list :: [Foreign] -> Doc Source #
Eq Foreign Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Foreign -> Foreign -> Bool Source # (/=) :: Foreign -> Foreign -> Bool Source #
Ord Foreign Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Foreign -> Foreign -> Ordering Source # (<) :: Foreign -> Foreign -> Bool Source # (<=) :: Foreign -> Foreign -> Bool Source # (>) :: Foreign -> Foreign -> Bool Source # (>=) :: Foreign -> Foreign -> Bool Source # max :: Foreign -> Foreign -> Foreign Source # min :: Foreign -> Foreign -> Foreign Source #
type Rep Foreign Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Foreign = D1 ('MetaData "Foreign" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "ImportF" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Callconv) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Safety)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: C1 ('MetaCons "ExportF" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Callconv) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))

type Unlifted = Bool Source #

In `PrimTyConI`, is the type constructor unlifted?

data Module Source #

Obtained from `reifyModule` and `thisModule`.

Constructors

Module PkgName ModName |

#### Instances

Instances details

Binary Module Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Module -> Put Source # get :: Get Module Source # putList :: [Module] -> Put Source #
Data Module Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Module -> c Module Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Module Source #

toConstr :: Module -> Constr Source #

dataTypeOf :: Module -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Module) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Module) Source #

gmapT :: (forall b. Data b => b -> b) -> Module -> Module Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Module -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Module -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Module -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Module -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Module -> m Module Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Module -> m Module Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Module -> m Module Source #

Generic Module Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Module |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Module = D1 ('MetaData "Module" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Module" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PkgName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName)))

Methods

from :: Module -> Rep Module x Source #

to :: Rep Module x -> Module Source #

Show Module Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Module -> ShowS Source # show :: Module -> String Source # showList :: [Module] -> ShowS Source #
Ppr Module Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Module -> Doc Source # ppr_list :: [Module] -> Doc Source #
Eq Module Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Module -> Module -> Bool Source # (/=) :: Module -> Module -> Bool Source #
Ord Module Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Module -> Module -> Ordering Source # (<) :: Module -> Module -> Bool Source # (<=) :: Module -> Module -> Bool Source # (>) :: Module -> Module -> Bool Source # (>=) :: Module -> Module -> Bool Source # max :: Module -> Module -> Module Source # min :: Module -> Module -> Module Source #
type Rep Module Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Module = D1 ('MetaData "Module" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Module" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PkgName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName)))

data Type Source #

A Haskell type.

Constructors

ForallT [TyVarBndr Specificity] Cxt Type

    forall <vars>. <ctxt> => <type>

ForallVisT [TyVarBndr ()] Type

    forall <vars> -> <type>

AppT Type Type

    T a b

AppKindT Type Kind

    T @k t

SigT Type Kind

    t :: k

VarT Name

    a

ConT Name

    T

PromotedT Name

    'T

InfixT Type Name Type

    T + T

UInfixT Type Name Type

    T + T

See Language.Haskell.TH.Syntax

PromotedInfixT Type Name Type

    T :+: T

PromotedUInfixT Type Name Type

    T :+: T

See Language.Haskell.TH.Syntax

ParensT Type

    (T)

TupleT Int | `(,)`, `(,,)`, etc.
UnboxedTupleT Int | `(#,#)`, `(#,,#)`, etc.
UnboxedSumT SumArity | `(#|#)`, `(#||#)`, etc.

ArrowT

    ->

MulArrowT

    %n ->

Generalised arrow type with multiplicity argument

EqualityT

    ~

ListT

    []

PromotedTupleT Int | `'()`, `'(,)`, `'(,,)`, etc.

PromotedNilT

    '[]

PromotedConsT

    '(:)

StarT

    *

ConstraintT

    Constraint

LitT TyLit | `0`, `1`, `2`, etc.

WildCardT

    _

ImplicitParamT String Type

    ?x :: t

#### Instances

Instances details

Binary Type Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Type -> Put Source # get :: Get Type Source # putList :: [Type] -> Put Source #
Data Type Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Type -> c Type Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Type Source #

toConstr :: Type -> Constr Source #

dataTypeOf :: Type -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Type) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Type) Source #

gmapT :: (forall b. Data b => b -> b) -> Type -> Type Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Type -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Type -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Type -> m Type Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type Source #

Generic Type Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Type |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Type = D1 ('MetaData "Type" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((((C1 ('MetaCons "ForallT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons "ForallVisT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr ()]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "AppT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons "AppKindT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "SigT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind))) :+: (C1 ('MetaCons "VarT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "ConT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))))) :+: ((C1 ('MetaCons "PromotedT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: (C1 ('MetaCons "InfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons "UInfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))) :+: ((C1 ('MetaCons "PromotedInfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons "PromotedUInfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: (C1 ('MetaCons "ParensT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "TupleT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))))) :+: (((C1 ('MetaCons "UnboxedTupleT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: (C1 ('MetaCons "UnboxedSumT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)) :+: C1 ('MetaCons "ArrowT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MulArrowT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EqualityT" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ListT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PromotedTupleT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))) :+: ((C1 ('MetaCons "PromotedNilT" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PromotedConsT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StarT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ConstraintT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LitT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyLit))) :+: (C1 ('MetaCons "WildCardT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ImplicitParamT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))))))

Methods

from :: Type -> Rep Type x Source #

to :: Rep Type x -> Type Source #

Show Type Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Type -> ShowS Source # show :: Type -> String Source # showList :: [Type] -> ShowS Source #
Ppr Type Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Type -> Doc Source # ppr_list :: [Type] -> Doc Source #
Eq Type Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Type -> Type -> Bool Source # (/=) :: Type -> Type -> Bool Source #
Ord Type Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Type -> Type -> Ordering Source # (<) :: Type -> Type -> Bool Source # (<=) :: Type -> Type -> Bool Source # (>) :: Type -> Type -> Bool Source # (>=) :: Type -> Type -> Bool Source # max :: Type -> Type -> Type Source # min :: Type -> Type -> Type Source #
type Rep Type Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Type = D1 ('MetaData "Type" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((((C1 ('MetaCons "ForallT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons "ForallVisT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr ()]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "AppT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons "AppKindT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "SigT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind))) :+: (C1 ('MetaCons "VarT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "ConT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))))) :+: ((C1 ('MetaCons "PromotedT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: (C1 ('MetaCons "InfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons "UInfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))) :+: ((C1 ('MetaCons "PromotedInfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons "PromotedUInfixT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: (C1 ('MetaCons "ParensT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "TupleT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))))) :+: (((C1 ('MetaCons "UnboxedTupleT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: (C1 ('MetaCons "UnboxedSumT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)) :+: C1 ('MetaCons "ArrowT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "MulArrowT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EqualityT" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ListT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PromotedTupleT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))) :+: ((C1 ('MetaCons "PromotedNilT" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PromotedConsT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StarT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ConstraintT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LitT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TyLit))) :+: (C1 ('MetaCons "WildCardT" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ImplicitParamT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))))))

data SourceUnpackedness Source #

`SourceUnpackedness` corresponds to unpack annotations found in the source code.

This may not agree with the annotations returned by `reifyConStrictness`. See `reifyConStrictness` for more information.

Constructors

NoSourceUnpackedness

    C a

SourceNoUnpack

    C { {-# NOUNPACK #-} } a

SourceUnpack

    C { {-# UNPACK #-} } a

#### Instances

Instances details

Binary SourceUnpackedness Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: SourceUnpackedness -> Put Source # get :: Get SourceUnpackedness Source # putList :: [SourceUnpackedness] -> Put Source #
Data SourceUnpackedness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SourceUnpackedness -> c SourceUnpackedness Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SourceUnpackedness Source #

toConstr :: SourceUnpackedness -> Constr Source #

dataTypeOf :: SourceUnpackedness -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SourceUnpackedness) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SourceUnpackedness) Source #

gmapT :: (forall b. Data b => b -> b) -> SourceUnpackedness -> SourceUnpackedness Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SourceUnpackedness -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SourceUnpackedness -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> SourceUnpackedness -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SourceUnpackedness -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SourceUnpackedness -> m SourceUnpackedness Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceUnpackedness -> m SourceUnpackedness Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceUnpackedness -> m SourceUnpackedness Source #

Generic SourceUnpackedness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep SourceUnpackedness |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep SourceUnpackedness = D1 ('MetaData "SourceUnpackedness" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NoSourceUnpackedness" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SourceNoUnpack" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SourceUnpack" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: SourceUnpackedness -> Rep SourceUnpackedness x Source #

to :: Rep SourceUnpackedness x -> SourceUnpackedness Source #

Show SourceUnpackedness Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> SourceUnpackedness -> ShowS Source # show :: SourceUnpackedness -> String Source # showList :: [SourceUnpackedness] -> ShowS Source #
Ppr SourceUnpackedness Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: SourceUnpackedness -> Doc Source # ppr_list :: [SourceUnpackedness] -> Doc Source #
Eq SourceUnpackedness Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: SourceUnpackedness -> SourceUnpackedness -> Bool Source # (/=) :: SourceUnpackedness -> SourceUnpackedness -> Bool Source #
Ord SourceUnpackedness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: SourceUnpackedness -> SourceUnpackedness -> Ordering Source #

(<) :: SourceUnpackedness -> SourceUnpackedness -> Bool Source #

(<=) :: SourceUnpackedness -> SourceUnpackedness -> Bool Source #

(>) :: SourceUnpackedness -> SourceUnpackedness -> Bool Source #

(>=) :: SourceUnpackedness -> SourceUnpackedness -> Bool Source #

max :: SourceUnpackedness -> SourceUnpackedness -> SourceUnpackedness Source #

min :: SourceUnpackedness -> SourceUnpackedness -> SourceUnpackedness Source #

type Rep SourceUnpackedness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep SourceUnpackedness = D1 ('MetaData "SourceUnpackedness" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NoSourceUnpackedness" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SourceNoUnpack" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SourceUnpack" 'PrefixI 'False) (U1 :: Type -> Type)))

data SourceStrictness Source #

`SourceStrictness` corresponds to strictness annotations found in the source code.

This may not agree with the annotations returned by `reifyConStrictness`. See `reifyConStrictness` for more information.

Constructors

NoSourceStrictness

    C a

SourceLazy

    C {~}a

SourceStrict

    C {!}a

#### Instances

Instances details

Binary SourceStrictness Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: SourceStrictness -> Put Source # get :: Get SourceStrictness Source # putList :: [SourceStrictness] -> Put Source #
Data SourceStrictness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SourceStrictness -> c SourceStrictness Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SourceStrictness Source #

toConstr :: SourceStrictness -> Constr Source #

dataTypeOf :: SourceStrictness -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SourceStrictness) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SourceStrictness) Source #

gmapT :: (forall b. Data b => b -> b) -> SourceStrictness -> SourceStrictness Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SourceStrictness -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SourceStrictness -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> SourceStrictness -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SourceStrictness -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SourceStrictness -> m SourceStrictness Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceStrictness -> m SourceStrictness Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SourceStrictness -> m SourceStrictness Source #

Generic SourceStrictness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep SourceStrictness |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep SourceStrictness = D1 ('MetaData "SourceStrictness" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NoSourceStrictness" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SourceLazy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SourceStrict" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: SourceStrictness -> Rep SourceStrictness x Source #

to :: Rep SourceStrictness x -> SourceStrictness Source #

Show SourceStrictness Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> SourceStrictness -> ShowS Source # show :: SourceStrictness -> String Source # showList :: [SourceStrictness] -> ShowS Source #
Ppr SourceStrictness Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: SourceStrictness -> Doc Source # ppr_list :: [SourceStrictness] -> Doc Source #
Eq SourceStrictness Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: SourceStrictness -> SourceStrictness -> Bool Source # (/=) :: SourceStrictness -> SourceStrictness -> Bool Source #
Ord SourceStrictness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: SourceStrictness -> SourceStrictness -> Ordering Source #

(<) :: SourceStrictness -> SourceStrictness -> Bool Source #

(<=) :: SourceStrictness -> SourceStrictness -> Bool Source #

(>) :: SourceStrictness -> SourceStrictness -> Bool Source #

(>=) :: SourceStrictness -> SourceStrictness -> Bool Source #

max :: SourceStrictness -> SourceStrictness -> SourceStrictness Source #

min :: SourceStrictness -> SourceStrictness -> SourceStrictness Source #

type Rep SourceStrictness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep SourceStrictness = D1 ('MetaData "SourceStrictness" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NoSourceStrictness" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SourceLazy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SourceStrict" 'PrefixI 'False) (U1 :: Type -> Type)))

data DecidedStrictness Source #

Unlike `SourceStrictness` and `SourceUnpackedness`, `DecidedStrictness` refers to the strictness annotations that the compiler chooses for a data constructor field, which may be different from what is written in source code.

Note that non-unpacked strict fields are assigned `DecidedLazy` when a bang would be inappropriate, such as the field of a newtype constructor and fields that have an unlifted type.

See `reifyConStrictness` for more information.

Constructors

DecidedLazy | Field inferred to not have a bang.
DecidedStrict | Field inferred to have a bang.
DecidedUnpack | Field inferred to be unpacked.

#### Instances

Instances details

Binary DecidedStrictness Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: DecidedStrictness -> Put Source # get :: Get DecidedStrictness Source # putList :: [DecidedStrictness] -> Put Source #
Data DecidedStrictness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DecidedStrictness -> c DecidedStrictness Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DecidedStrictness Source #

toConstr :: DecidedStrictness -> Constr Source #

dataTypeOf :: DecidedStrictness -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DecidedStrictness) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DecidedStrictness) Source #

gmapT :: (forall b. Data b => b -> b) -> DecidedStrictness -> DecidedStrictness Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DecidedStrictness -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DecidedStrictness -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> DecidedStrictness -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DecidedStrictness -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DecidedStrictness -> m DecidedStrictness Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DecidedStrictness -> m DecidedStrictness Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DecidedStrictness -> m DecidedStrictness Source #

Generic DecidedStrictness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep DecidedStrictness |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep DecidedStrictness = D1 ('MetaData "DecidedStrictness" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "DecidedLazy" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DecidedStrict" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DecidedUnpack" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: DecidedStrictness -> Rep DecidedStrictness x Source #

to :: Rep DecidedStrictness x -> DecidedStrictness Source #

Show DecidedStrictness Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> DecidedStrictness -> ShowS Source # show :: DecidedStrictness -> String Source # showList :: [DecidedStrictness] -> ShowS Source #
Ppr DecidedStrictness Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: DecidedStrictness -> Doc Source # ppr_list :: [DecidedStrictness] -> Doc Source #
Eq DecidedStrictness Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: DecidedStrictness -> DecidedStrictness -> Bool Source # (/=) :: DecidedStrictness -> DecidedStrictness -> Bool Source #
Ord DecidedStrictness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: DecidedStrictness -> DecidedStrictness -> Ordering Source #

(<) :: DecidedStrictness -> DecidedStrictness -> Bool Source #

(<=) :: DecidedStrictness -> DecidedStrictness -> Bool Source #

(>) :: DecidedStrictness -> DecidedStrictness -> Bool Source #

(>=) :: DecidedStrictness -> DecidedStrictness -> Bool Source #

max :: DecidedStrictness -> DecidedStrictness -> DecidedStrictness Source #

min :: DecidedStrictness -> DecidedStrictness -> DecidedStrictness Source #

type Rep DecidedStrictness Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep DecidedStrictness = D1 ('MetaData "DecidedStrictness" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "DecidedLazy" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DecidedStrict" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DecidedUnpack" 'PrefixI 'False) (U1 :: Type -> Type)))

data Fixity Source #

Fixity, as specified in a `infix[lr] n` declaration.

Constructors

Fixity Int FixityDirection |

#### Instances

Instances details

Binary Fixity Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Fixity -> Put Source # get :: Get Fixity Source # putList :: [Fixity] -> Put Source #
Data Fixity Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Fixity -> c Fixity Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Fixity Source #

toConstr :: Fixity -> Constr Source #

dataTypeOf :: Fixity -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Fixity) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Fixity) Source #

gmapT :: (forall b. Data b => b -> b) -> Fixity -> Fixity Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Fixity -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Fixity -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Fixity -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Fixity -> m Fixity Source #

Generic Fixity Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Fixity |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Fixity = D1 ('MetaData "Fixity" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Fixity" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FixityDirection)))

Methods

from :: Fixity -> Rep Fixity x Source #

to :: Rep Fixity x -> Fixity Source #

Show Fixity Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Fixity -> ShowS Source # show :: Fixity -> String Source # showList :: [Fixity] -> ShowS Source #
Eq Fixity Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Fixity -> Fixity -> Bool Source # (/=) :: Fixity -> Fixity -> Bool Source #
Ord Fixity Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Fixity -> Fixity -> Ordering Source # (<) :: Fixity -> Fixity -> Bool Source # (<=) :: Fixity -> Fixity -> Bool Source # (>) :: Fixity -> Fixity -> Bool Source # (>=) :: Fixity -> Fixity -> Bool Source # max :: Fixity -> Fixity -> Fixity Source # min :: Fixity -> Fixity -> Fixity Source #
type Rep Fixity Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Fixity = D1 ('MetaData "Fixity" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Fixity" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FixityDirection)))

data NameIs Source #

Constructors

Alone

    name

Applied

    (name)

Infix

    `name`

data Con Source #

A data constructor.

The constructors for `Con` can roughly be divided up into two categories: those for constructors with "vanilla" syntax (`NormalC`, `RecC`, and `InfixC`), and those for constructors with GADT syntax (`GadtC` and `RecGadtC`). The `ForallC` constructor, which quantifies additional type variables and class contexts, can surround either variety of constructor. However, the type variables that it quantifies are different depending on what constructor syntax is used:

- If a `ForallC` surrounds a constructor with vanilla syntax, then the `ForallC` will only quantify existential type variables. For example:

      data Foo a = forall b. MkFoo a b

In `MkFoo`, `ForallC` will quantify `b`, but not `a`.

- If a `ForallC` surrounds a constructor with GADT syntax, then the `ForallC` will quantify all type variables used in the constructor. For example:

      data Bar a b where
        MkBar :: (a ~ b) => c -> MkBar a b

In `MkBar`, `ForallC` will quantify `a`, `b`, and `c`.

Multiplicity annotations for data types are currently not supported in Template Haskell (i.e. all fields represented by Template Haskell will be linear).

Constructors

NormalC Name [BangType]

    C Int a

RecC Name [VarBangType]

    C { v :: Int, w :: a }

InfixC BangType Name BangType

    Int :+ a

ForallC [TyVarBndr Specificity] Cxt Con

    forall a. Eq a => C [a]

GadtC |

Fields

- [Name]

  The list of constructors, corresponding to the GADT constructor syntax `C1, C2 :: a -> T b`.

  Invariant: the list must be non-empty.

- [BangType]

  The constructor arguments

- Type

  See Note [GADT return type]

RecGadtC

    C :: { v :: Int } -> T b Int

Fields

- [Name]

  The list of constructors, corresponding to the GADT record constructor syntax `C1, C2 :: { fld :: a } -> T b`.

  Invariant: the list must be non-empty.

- [VarBangType]

  The constructor arguments

- Type

  See Note [GADT return type]

#### Instances

Instances details

Binary Con Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Con -> Put Source # get :: Get Con Source # putList :: [Con] -> Put Source #
Data Con Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Con -> c Con Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Con Source #

toConstr :: Con -> Constr Source #

dataTypeOf :: Con -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Con) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Con) Source #

gmapT :: (forall b. Data b => b -> b) -> Con -> Con Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Con -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Con -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Con -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Con -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Con -> m Con Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Con -> m Con Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Con -> m Con Source #

Generic Con Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Con |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Con = D1 ('MetaData "Con" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "NormalC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [BangType])) :+: (C1 ('MetaCons "RecC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [VarBangType])) :+: C1 ('MetaCons "InfixC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BangType) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BangType))))) :+: (C1 ('MetaCons "ForallC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con))) :+: (C1 ('MetaCons "GadtC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [BangType]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons "RecGadtC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [VarBangType]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))))

Methods

from :: Con -> Rep Con x Source #

to :: Rep Con x -> Con Source #

Show Con Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Con -> ShowS Source # show :: Con -> String Source # showList :: [Con] -> ShowS Source #
Ppr Con Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Con -> Doc Source # ppr_list :: [Con] -> Doc Source #
Eq Con Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Con -> Con -> Bool Source # (/=) :: Con -> Con -> Bool Source #
Ord Con Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Con -> Con -> Ordering Source # (<) :: Con -> Con -> Bool Source # (<=) :: Con -> Con -> Bool Source # (>) :: Con -> Con -> Bool Source # (>=) :: Con -> Con -> Bool Source # max :: Con -> Con -> Con Source # min :: Con -> Con -> Con Source #
type Rep Con Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Con = D1 ('MetaData "Con" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "NormalC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [BangType])) :+: (C1 ('MetaCons "RecC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [VarBangType])) :+: C1 ('MetaCons "InfixC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BangType) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BangType))))) :+: (C1 ('MetaCons "ForallC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con))) :+: (C1 ('MetaCons "GadtC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [BangType]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: C1 ('MetaCons "RecGadtC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [VarBangType]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))))

recover Source #

Arguments

:: Q a | handler to invoke on failure
-> Q a | computation to run
-> Q a |

Recover from errors raised by `reportError` or `fail`.

reportError :: String -> Q () Source #

Report an error to the user, but allow the current splice's computation to carry on. To abort the computation, use `fail`.

runIO :: IO a -> Q a Source #

The `runIO` function lets you run an I/O computation in the `Q` monad. Take care: you are guaranteed the ordering of calls to `runIO` within a single `Q` computation, but not about the order in which splices are run.

Note: for various murky reasons, stdout and stderr handles are not necessarily flushed when the compiler finishes running, so you should flush them yourself.

memcmp :: Ptr a -> Ptr b -> CSize -> IO CInt Source #

newtype Q a Source #

In short, `Q` provides the `Quasi` operations in one neat monad for the user.

The longer story, is that `Q` wraps an arbitrary `Quasi`-able monad. The perceptive reader notices that `Quasi` has only two instances, `Q` itself and `IO`, neither of which have concrete implementations.`Q` plays the trick of dependency inversion, providing an abstract interface for the user which is later concretely fufilled by an concrete `Quasi` instance, internal to GHC.

Constructors

Q |

Fields

- unQ :: forall (m :: Type -> Type). Quasi m => m a

#### Instances

Instances details

MonadIO Q Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods liftIO :: IO a -> Q a Source #
Applicative Q Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods pure :: a -> Q a Source # (<*>) :: Q (a -> b) -> Q a -> Q b Source # liftA2 :: (a -> b -> c) -> Q a -> Q b -> Q c Source # (*>) :: Q a -> Q b -> Q b Source # (<*) :: Q a -> Q b -> Q a Source #
Functor Q Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods fmap :: (a -> b) -> Q a -> Q b Source # (<$) :: a -> Q b -> Q a Source #
Monad Q Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (>>=) :: Q a -> (a -> Q b) -> Q b Source # (>>) :: Q a -> Q b -> Q b Source # return :: a -> Q a Source #
MonadFail Q Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods fail :: String -> Q a Source #
MonadFix Q Source # | If the function passed to `mfix` inspects its argument, the resulting action will throw a `FixIOException`. Since: 2.17.0.0
Instance details Defined in GHC.Internal.TH.Syntax Methods mfix :: (a -> Q a) -> Q a Source #
Quasi Q Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

qNewName :: String -> Q Name Source #

qReport :: Bool -> String -> Q () Source #

qRecover :: Q a -> Q a -> Q a Source #

qLookupName :: Bool -> String -> Q (Maybe Name) Source #

qReify :: Name -> Q Info Source #

qReifyFixity :: Name -> Q (Maybe Fixity) Source #

qReifyType :: Name -> Q Type Source #

qReifyInstances :: Name -> [Type] -> Q [Dec] Source #

qReifyRoles :: Name -> Q [Role] Source #

qReifyAnnotations :: Data a => AnnLookup -> Q [a] Source #

qReifyModule :: Module -> Q ModuleInfo Source #

qReifyConStrictness :: Name -> Q [DecidedStrictness] Source #

qLocation :: Q Loc Source #

qRunIO :: IO a -> Q a Source #

qGetPackageRoot :: Q FilePath Source #

qAddDependentFile :: FilePath -> Q () Source #

qAddTempFile :: String -> Q FilePath Source #

qAddTopDecls :: [Dec] -> Q () Source #

qAddForeignFilePath :: ForeignSrcLang -> String -> Q () Source #

qAddModFinalizer :: Q () -> Q () Source #

qAddCorePlugin :: String -> Q () Source #

qGetQ :: Typeable a => Q (Maybe a) Source #

qPutQ :: Typeable a => a -> Q () Source #

qIsExtEnabled :: Extension -> Q Bool Source #

qExtsEnabled :: Q [Extension] Source #

qPutDoc :: DocLoc -> String -> Q () Source #

qGetDoc :: DocLoc -> Q (Maybe String) Source #

Quote Q Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods newName :: String -> Q Name Source #
Monoid a => Monoid (Q a) Source # | Since: 2.17.0.0
Instance details Defined in GHC.Internal.TH.Syntax Methods mempty :: Q a Source # mappend :: Q a -> Q a -> Q a Source # mconcat :: [Q a] -> Q a Source #
Semigroup a => Semigroup (Q a) Source # | Since: 2.17.0.0
Instance details Defined in GHC.Internal.TH.Syntax Methods (<>) :: Q a -> Q a -> Q a Source # sconcat :: NonEmpty (Q a) -> Q a Source # stimes :: Integral b => b -> Q a -> Q a Source #

type Strict = Bang Source #

As of `template-haskell-2.11.0.0`, `Strict` has been replaced by `Bang`.

sequenceQ :: Monad m => forall a. [m a] -> m [a] Source #

This function is only used in `Quote` when desugaring brackets. This is not necessary for the user, who can use the ordinary `return` and `(>>=)` operations.

class Monad m => Quote (m :: Type -> Type) where Source #

The `Quote` class implements the minimal interface which is necessary for desugaring quotations.

- The `Monad m` superclass is needed to stitch together the different AST fragments.
- `newName` is used when desugaring binding structures such as lambdas to generate fresh names.

Therefore the type of an untyped quotation in GHC is `Quote m => m Exp`

For many years the type of a quotation was fixed to be `Q Exp` but by more precisely specifying the minimal interface it enables the `Exp` to be extracted purely from the quotation without interacting with `Q`.

Methods

newName :: String -> m Name Source #

Generate a fresh name, which cannot be captured.

For example, this:

    f = $(do
        nm1 <- newName "x"
        let nm2 = mkName "x"
        return (LamE [VarP nm1] (LamE [VarP nm2] (VarE nm1)))
       )

will produce the splice

    f = \x0 -> \x -> x0

In particular, the occurrence `VarE nm1` refers to the binding `VarP nm1`, and is not captured by the binding `VarP nm2`.

Although names generated by `newName` cannot be captured, they can capture other names. For example, this:

    g = $(do
      nm1 <- newName "x"
      let nm2 = mkName "x"
      return (LamE [VarP nm2] (LamE [VarP nm1] (VarE nm2)))
     )

will produce the splice

    g = \x -> \x0 -> x0

since the occurrence `VarE nm2` is captured by the innermost binding of `x`, namely `VarP nm1`.

#### Instances

Instances details

Quote Q Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods newName :: String -> Q Name Source #
Quote IO Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods newName :: String -> IO Name Source #

mkName :: String -> Name Source #

Generate a capturable name. Occurrences of such names will be resolved according to the Haskell scoping rules at the occurrence site.

For example:

    f = [| pi + $(varE (mkName "pi")) |]
    ...
    g = let pi = 3 in $f

In this case, `g` is desugared to

    g = Prelude.pi + 3

Note that `mkName` may be used with qualified names:

    mkName "Prelude.pi"

See also `dyn` for a useful combinator. The above example could be rewritten using `dyn` as

    f = [| pi + $(dyn "pi") |]

mkNameG_v :: String -> String -> String -> Name Source #

mkNameG_d :: String -> String -> String -> Name Source #

mkNameG_tc :: String -> String -> String -> Name Source #

mkNameL :: String -> Uniq -> Name Source #

Only used internally

mkNameS :: String -> Name Source #

newtype TExp (a :: TYPE r) Source #

Typed wrapper around an `Exp`.

This is the typed representation of terms produced by typed quotes.

Representation-polymorphic since template-haskell-2.16.0.0.

Constructors

TExp |

Fields

- unType :: Exp

  Underlying untyped Template Haskell expression

unTypeCode :: forall a m. Quote m => Code m a -> m Exp Source #

Extract the untyped representation from the typed representation

mkModName :: String -> ModName Source #

Smart constructor for `ModName`

unsafeCodeCoerce :: forall a m. Quote m => m Exp -> Code m a Source #

Unsafely convert an untyped code representation into a typed code representation.

mkNameQ :: String -> String -> Name Source #

Only used internally

mkNameG_fld Source #

Arguments

:: String | package
-> String | module
-> String | parent (first constructor of parent type)
-> String | field name
-> Name |

data Exp Source #

A Haskell expression.

Constructors

VarE Name

    { x }

ConE Name

    data T1 = C1 t1 t2; p = {C1} e1 e2

LitE Lit

    { 5 or 'c'}

AppE Exp Exp

    { f x }

AppTypeE Exp Type

    { f @Int }

InfixE (Maybe Exp) Exp (Maybe Exp)

    {x + y} or {(x+)} or {(+ x)} or {(+)}

UInfixE Exp Exp Exp

    {x + y}

See Language.Haskell.TH.Syntax

ParensE Exp

    { (e) }

See Language.Haskell.TH.Syntax

LamE [Pat] Exp

    { \ p1 p2 -> e }

LamCaseE [Match]

    { \case m1; m2 }

LamCasesE [Clause]

    { \cases m1; m2 }

TupE [Maybe Exp]

    { (e1,e2) }

The `Maybe` is necessary for handling tuple sections.

    (1,)

translates to

    TupE [Just (LitE (IntegerL 1)),Nothing]

UnboxedTupE [Maybe Exp]

    { (# e1,e2 #) }

The `Maybe` is necessary for handling tuple sections.

    (# 'c', #)

translates to

    UnboxedTupE [Just (LitE (CharL 'c')),Nothing]

UnboxedSumE Exp SumAlt SumArity

    { (#|e|#) }

CondE Exp Exp Exp

    { if e1 then e2 else e3 }

MultiIfE [(Guard, Exp)]

    { if | g1 -> e1 | g2 -> e2 }

LetE [Dec] Exp

    { let { x=e1; y=e2 } in e3 }

CaseE Exp [Match]

    { case e of m1; m2 }

DoE (Maybe ModName) [Stmt] | `{ do { p <- e1; e2 } }` or a qualified do if the module name is present
MDoE (Maybe ModName) [Stmt] | `{ mdo { x <- e1 y; y <- e2 x; } }` or a qualified mdo if the module name is present

CompE [Stmt]

    { [ (x,y) | x <- xs, y <- ys ] }

The result expression of the comprehension is the last of the ``Stmt``s, and should be a `NoBindS`.

E.g. translation:

    [ f x | x <- xs ]

    CompE [BindS (VarP x) (VarE xs), NoBindS (AppE (VarE f) (VarE x))]

ArithSeqE Range

    { [ 1 ,2 .. 10 ] }

ListE [Exp]

    { [1,2,3] }

SigE Exp Type

    { e :: t }

RecConE Name [FieldExp]

    { T { x = y, z = w } }

RecUpdE Exp [FieldExp]

    { (f x) { z = w } }

StaticE Exp

    { static e }

UnboundVarE Name

    { _x }

This is used for holes or unresolved identifiers in AST quotes. Note that it could either have a variable name or constructor name.

LabelE String | `{ #x }` ( Overloaded label )
ImplicitParamVarE String | `{ ?x }` ( Implicit parameter )
GetFieldE Exp String | `{ exp.field }` ( Overloaded Record Dot )
ProjectionE (NonEmpty String) | `(.x)` or `(.x.y)` (Record projections)

TypedBracketE Exp

    [|| e ||]

TypedSpliceE Exp

    $$e

TypeE Type

    { type t }

ForallE [TyVarBndr Specificity] Exp

    forall <vars>. <expr>

ForallVisE [TyVarBndr ()] Exp

    forall <vars> -> <expr>

ConstrainedE [Exp] Exp

    <ctxt> => <expr>

#### Instances

Instances details

Binary Exp Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Exp -> Put Source # get :: Get Exp Source # putList :: [Exp] -> Put Source #
Data Exp Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Exp -> c Exp Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Exp Source #

toConstr :: Exp -> Constr Source #

dataTypeOf :: Exp -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Exp) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Exp) Source #

gmapT :: (forall b. Data b => b -> b) -> Exp -> Exp Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Exp -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Exp -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Exp -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Exp -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Exp -> m Exp Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Exp -> m Exp Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Exp -> m Exp Source #

Generic Exp Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Exp |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Exp = D1 ('MetaData "Exp" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (((((C1 ('MetaCons "VarE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "ConE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "LitE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Lit)) :+: C1 ('MetaCons "AppE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))) :+: ((C1 ('MetaCons "AppTypeE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "InfixE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Exp)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Exp))))) :+: (C1 ('MetaCons "UInfixE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons "ParensE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "LamE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))) :+: (((C1 ('MetaCons "LamCaseE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Match])) :+: C1 ('MetaCons "LamCasesE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause]))) :+: (C1 ('MetaCons "TupE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe Exp])) :+: (C1 ('MetaCons "UnboxedTupE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe Exp])) :+: C1 ('MetaCons "UnboxedSumE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumAlt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)))))) :+: ((C1 ('MetaCons "CondE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: C1 ('MetaCons "MultiIfE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Guard, Exp)]))) :+: (C1 ('MetaCons "LetE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons "CaseE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Match])) :+: C1 ('MetaCons "DoE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt]))))))) :+: ((((C1 ('MetaCons "MDoE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt])) :+: C1 ('MetaCons "CompE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt]))) :+: (C1 ('MetaCons "ArithSeqE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Range)) :+: C1 ('MetaCons "ListE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Exp])))) :+: ((C1 ('MetaCons "SigE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "RecConE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldExp]))) :+: (C1 ('MetaCons "RecUpdE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldExp])) :+: (C1 ('MetaCons "StaticE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "UnboundVarE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))))) :+: (((C1 ('MetaCons "LabelE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons "ImplicitParamVarE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :+: (C1 ('MetaCons "GetFieldE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: (C1 ('MetaCons "ProjectionE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty String))) :+: C1 ('MetaCons "TypedBracketE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))))) :+: ((C1 ('MetaCons "TypedSpliceE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "TypeE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons "ForallE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons "ForallVisE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr ()]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "ConstrainedE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Exp]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))))))))

Methods

from :: Exp -> Rep Exp x Source #

to :: Rep Exp x -> Exp Source #

Show Exp Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Exp -> ShowS Source # show :: Exp -> String Source # showList :: [Exp] -> ShowS Source #
Ppr Exp Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Exp -> Doc Source # ppr_list :: [Exp] -> Doc Source #
Eq Exp Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Exp -> Exp -> Bool Source # (/=) :: Exp -> Exp -> Bool Source #
Ord Exp Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Exp -> Exp -> Ordering Source # (<) :: Exp -> Exp -> Bool Source # (<=) :: Exp -> Exp -> Bool Source # (>) :: Exp -> Exp -> Bool Source # (>=) :: Exp -> Exp -> Bool Source # max :: Exp -> Exp -> Exp Source # min :: Exp -> Exp -> Exp Source #
type Rep Exp Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Exp = D1 ('MetaData "Exp" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (((((C1 ('MetaCons "VarE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "ConE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "LitE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Lit)) :+: C1 ('MetaCons "AppE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))) :+: ((C1 ('MetaCons "AppTypeE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "InfixE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Exp)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Exp))))) :+: (C1 ('MetaCons "UInfixE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons "ParensE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "LamE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))) :+: (((C1 ('MetaCons "LamCaseE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Match])) :+: C1 ('MetaCons "LamCasesE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause]))) :+: (C1 ('MetaCons "TupE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe Exp])) :+: (C1 ('MetaCons "UnboxedTupE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Maybe Exp])) :+: C1 ('MetaCons "UnboxedSumE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumAlt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)))))) :+: ((C1 ('MetaCons "CondE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: C1 ('MetaCons "MultiIfE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Guard, Exp)]))) :+: (C1 ('MetaCons "LetE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons "CaseE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Match])) :+: C1 ('MetaCons "DoE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt]))))))) :+: ((((C1 ('MetaCons "MDoE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt])) :+: C1 ('MetaCons "CompE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt]))) :+: (C1 ('MetaCons "ArithSeqE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Range)) :+: C1 ('MetaCons "ListE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Exp])))) :+: ((C1 ('MetaCons "SigE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "RecConE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldExp]))) :+: (C1 ('MetaCons "RecUpdE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldExp])) :+: (C1 ('MetaCons "StaticE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "UnboundVarE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))))) :+: (((C1 ('MetaCons "LabelE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons "ImplicitParamVarE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :+: (C1 ('MetaCons "GetFieldE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: (C1 ('MetaCons "ProjectionE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty String))) :+: C1 ('MetaCons "TypedBracketE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))))) :+: ((C1 ('MetaCons "TypedSpliceE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "TypeE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :+: (C1 ('MetaCons "ForallE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr Specificity]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons "ForallVisE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr ()]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "ConstrainedE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Exp]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))))))))

data Match Source #

A `case`-alternative

Constructors

Match Pat Body [Dec]

    case e of { pat -> body where decs }

#### Instances

Instances details

Binary Match Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Match -> Put Source # get :: Get Match Source # putList :: [Match] -> Put Source #
Data Match Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Match -> c Match Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Match Source #

toConstr :: Match -> Constr Source #

dataTypeOf :: Match -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Match) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Match) Source #

gmapT :: (forall b. Data b => b -> b) -> Match -> Match Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Match -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Match -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Match -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Match -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Match -> m Match Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Match -> m Match Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Match -> m Match Source #

Generic Match Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Match |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Match = D1 ('MetaData "Match" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Match" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))))

Methods

from :: Match -> Rep Match x Source #

to :: Rep Match x -> Match Source #

Show Match Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Match -> ShowS Source # show :: Match -> String Source # showList :: [Match] -> ShowS Source #
Ppr Match Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Match -> Doc Source # ppr_list :: [Match] -> Doc Source #
Eq Match Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Match -> Match -> Bool Source # (/=) :: Match -> Match -> Bool Source #
Ord Match Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Match -> Match -> Ordering Source # (<) :: Match -> Match -> Bool Source # (<=) :: Match -> Match -> Bool Source # (>) :: Match -> Match -> Bool Source # (>=) :: Match -> Match -> Bool Source # max :: Match -> Match -> Match Source # min :: Match -> Match -> Match Source #
type Rep Match Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Match = D1 ('MetaData "Match" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Match" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))))

data Clause Source #

A clause consists of patterns, guards, a body expression, and a list of declarations under a `where`. Clauses are seen in equations for function definitions, `case`-experssions, explicitly-bidirectional pattern synonyms, etc.

Constructors

Clause [Pat] Body [Dec]

    f { p1 p2 = body where decs }

#### Instances

Instances details

Binary Clause Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Clause -> Put Source # get :: Get Clause Source # putList :: [Clause] -> Put Source #
Data Clause Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Clause -> c Clause Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Clause Source #

toConstr :: Clause -> Constr Source #

dataTypeOf :: Clause -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Clause) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Clause) Source #

gmapT :: (forall b. Data b => b -> b) -> Clause -> Clause Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Clause -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Clause -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Clause -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Clause -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Clause -> m Clause Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Clause -> m Clause Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Clause -> m Clause Source #

Generic Clause Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Clause |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Clause = D1 ('MetaData "Clause" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Clause" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))))

Methods

from :: Clause -> Rep Clause x Source #

to :: Rep Clause x -> Clause Source #

Show Clause Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Clause -> ShowS Source # show :: Clause -> String Source # showList :: [Clause] -> ShowS Source #
Ppr Clause Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Clause -> Doc Source # ppr_list :: [Clause] -> Doc Source #
Eq Clause Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Clause -> Clause -> Bool Source # (/=) :: Clause -> Clause -> Bool Source #
Ord Clause Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Clause -> Clause -> Ordering Source # (<) :: Clause -> Clause -> Bool Source # (<=) :: Clause -> Clause -> Bool Source # (>) :: Clause -> Clause -> Bool Source # (>=) :: Clause -> Clause -> Bool Source # max :: Clause -> Clause -> Clause Source # min :: Clause -> Clause -> Clause Source #
type Rep Clause Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Clause = D1 ('MetaData "Clause" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Clause" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))))

data Pat Source #

Pattern in Haskell given in `{}`

Constructors

LitP Lit

    { 5 or 'c' }

VarP Name

    { x }

TupP [Pat]

    { (p1,p2) }

UnboxedTupP [Pat]

    { (# p1,p2 #) }

UnboxedSumP Pat SumAlt SumArity

    { (#|p|#) }

ConP Name [Type] [Pat]

    data T1 = C1 t1 t2; {C1 @ty1 p1 p2} = e

InfixP Pat Name Pat

    foo ({x :+ y}) = e

UInfixP Pat Name Pat

    foo ({x :+ y}) = e

See Language.Haskell.TH.Syntax

ParensP Pat

    {(p)}

See Language.Haskell.TH.Syntax

TildeP Pat

    { ~p }

BangP Pat

    { !p }

AsP Name Pat

    { x @ p }

WildP

    { _ }

RecP Name [FieldPat]

    f (Pt { pointx = x }) = g x

ListP [Pat]

    { [1,2,3] }

SigP Pat Type

    { p :: t }

ViewP Exp Pat

    { e -> p }

TypeP Type

    { type p }

InvisP Type | `{` p }@

OrP (NonEmpty Pat)

    { p1; p2 }

#### Instances

Instances details

Binary Pat Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Pat -> Put Source # get :: Get Pat Source # putList :: [Pat] -> Put Source #
Data Pat Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pat -> c Pat Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pat Source #

toConstr :: Pat -> Constr Source #

dataTypeOf :: Pat -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pat) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pat) Source #

gmapT :: (forall b. Data b => b -> b) -> Pat -> Pat Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pat -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pat -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Pat -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Pat -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pat -> m Pat Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pat -> m Pat Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pat -> m Pat Source #

Generic Pat Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Pat |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Pat = D1 ('MetaData "Pat" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((((C1 ('MetaCons "LitP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Lit)) :+: C1 ('MetaCons "VarP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "TupP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat])) :+: (C1 ('MetaCons "UnboxedTupP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat])) :+: C1 ('MetaCons "UnboxedSumP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumAlt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)))))) :+: ((C1 ('MetaCons "ConP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]))) :+: C1 ('MetaCons "InfixP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)))) :+: (C1 ('MetaCons "UInfixP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat))) :+: (C1 ('MetaCons "ParensP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)) :+: C1 ('MetaCons "TildeP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)))))) :+: (((C1 ('MetaCons "BangP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)) :+: C1 ('MetaCons "AsP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat))) :+: (C1 ('MetaCons "WildP" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RecP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldPat])) :+: C1 ('MetaCons "ListP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]))))) :+: ((C1 ('MetaCons "SigP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "ViewP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat))) :+: (C1 ('MetaCons "TypeP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: (C1 ('MetaCons "InvisP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "OrP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty Pat))))))))

Methods

from :: Pat -> Rep Pat x Source #

to :: Rep Pat x -> Pat Source #

Show Pat Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Pat -> ShowS Source # show :: Pat -> String Source # showList :: [Pat] -> ShowS Source #
Ppr Pat Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Pat -> Doc Source # ppr_list :: [Pat] -> Doc Source #
Eq Pat Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Pat -> Pat -> Bool Source # (/=) :: Pat -> Pat -> Bool Source #
Ord Pat Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Pat -> Pat -> Ordering Source # (<) :: Pat -> Pat -> Bool Source # (<=) :: Pat -> Pat -> Bool Source # (>) :: Pat -> Pat -> Bool Source # (>=) :: Pat -> Pat -> Bool Source # max :: Pat -> Pat -> Pat Source # min :: Pat -> Pat -> Pat Source #
type Rep Pat Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Pat = D1 ('MetaData "Pat" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((((C1 ('MetaCons "LitP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Lit)) :+: C1 ('MetaCons "VarP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "TupP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat])) :+: (C1 ('MetaCons "UnboxedTupP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat])) :+: C1 ('MetaCons "UnboxedSumP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumAlt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SumArity)))))) :+: ((C1 ('MetaCons "ConP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]))) :+: C1 ('MetaCons "InfixP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)))) :+: (C1 ('MetaCons "UInfixP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat))) :+: (C1 ('MetaCons "ParensP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)) :+: C1 ('MetaCons "TildeP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)))))) :+: (((C1 ('MetaCons "BangP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)) :+: C1 ('MetaCons "AsP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat))) :+: (C1 ('MetaCons "WildP" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RecP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FieldPat])) :+: C1 ('MetaCons "ListP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pat]))))) :+: ((C1 ('MetaCons "SigP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "ViewP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat))) :+: (C1 ('MetaCons "TypeP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: (C1 ('MetaCons "InvisP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "OrP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty Pat))))))))

data Stmt Source #

A single statement, as in `do`-notation.

Constructors

BindS Pat Exp

    p <- e

LetS [Dec]

    { let { x=e1; y=e2 } }

NoBindS Exp

    e

ParS [[Stmt]] | `x <- e1 | s2, s3 | s4` (in `CompE`)

RecS [Stmt]

    rec { s1; s2 }

#### Instances

Instances details

Binary Stmt Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Stmt -> Put Source # get :: Get Stmt Source # putList :: [Stmt] -> Put Source #
Data Stmt Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Stmt -> c Stmt Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Stmt Source #

toConstr :: Stmt -> Constr Source #

dataTypeOf :: Stmt -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Stmt) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Stmt) Source #

gmapT :: (forall b. Data b => b -> b) -> Stmt -> Stmt Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Stmt -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Stmt -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Stmt -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Stmt -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Stmt -> m Stmt Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Stmt -> m Stmt Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Stmt -> m Stmt Source #

Generic Stmt Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Stmt |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Stmt = D1 ('MetaData "Stmt" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "BindS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "LetS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: (C1 ('MetaCons "NoBindS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons "ParS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [[Stmt]])) :+: C1 ('MetaCons "RecS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt])))))

Methods

from :: Stmt -> Rep Stmt x Source #

to :: Rep Stmt x -> Stmt Source #

Show Stmt Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Stmt -> ShowS Source # show :: Stmt -> String Source # showList :: [Stmt] -> ShowS Source #
Ppr Stmt Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Stmt -> Doc Source # ppr_list :: [Stmt] -> Doc Source #
Eq Stmt Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Stmt -> Stmt -> Bool Source # (/=) :: Stmt -> Stmt -> Bool Source #
Ord Stmt Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Stmt -> Stmt -> Ordering Source # (<) :: Stmt -> Stmt -> Bool Source # (<=) :: Stmt -> Stmt -> Bool Source # (>) :: Stmt -> Stmt -> Bool Source # (>=) :: Stmt -> Stmt -> Bool Source # max :: Stmt -> Stmt -> Stmt Source # min :: Stmt -> Stmt -> Stmt Source #
type Rep Stmt Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Stmt = D1 ('MetaData "Stmt" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "BindS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "LetS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: (C1 ('MetaCons "NoBindS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: (C1 ('MetaCons "ParS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [[Stmt]])) :+: C1 ('MetaCons "RecS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt])))))

data Dec Source #

A single declaration.

Constructors

FunD Name [Clause]

    { f p1 p2 = b where decs }

ValD Pat Body [Dec]

    { p = b where decs }

DataD Cxt Name [TyVarBndr BndrVis] (Maybe Kind) [Con] [DerivClause]

    { data Cxt x => T x = A x | B (T x)
           deriving (Z,W)
           deriving stock Eq }

NewtypeD Cxt Name [TyVarBndr BndrVis] (Maybe Kind) Con [DerivClause]

    { newtype Cxt x => T x = A (B x)
           deriving (Z,W Q)
           deriving stock Eq }

TypeDataD Name [TyVarBndr BndrVis] (Maybe Kind) [Con]

    { type data T x = A x | B (T x) }

TySynD Name [TyVarBndr BndrVis] Type

    { type T x = (x,x) }

ClassD Cxt Name [TyVarBndr BndrVis] [FunDep] [Dec]

    { class Eq a => Ord a where ds }

InstanceD (Maybe Overlap) Cxt Type [Dec]

    { instance {-# OVERLAPS #-}
            Show w => Show [w] where ds }

SigD Name Type

    { length :: [a] -> Int }

KiSigD Name Kind

    { type TypeRep :: k -> Type }

ForeignD Foreign

    { foreign import ... }
    { foreign export ... }

InfixD Fixity NamespaceSpecifier Name

    { infix 3 data foo }

DefaultD [Type]

    { default (Integer, Double) }

PragmaD | pragmas

Fields

- Pragma

      { {-# INLINE [1] foo #-} }

DataFamilyD | data families (may also appear in [Dec] of `ClassD` and `InstanceD`)

Fields

- Name
- [TyVarBndr BndrVis]
- (Maybe Kind)

      { data family T a b c :: * }

DataInstD Cxt (Maybe [TyVarBndr ()]) Type (Maybe Kind) [Con] [DerivClause]

    { data instance Cxt x => T [x]
           = A x | B (T x)
           deriving (Z,W)
           deriving stock Eq }

NewtypeInstD Cxt (Maybe [TyVarBndr ()]) Type (Maybe Kind) Con [DerivClause]

    { newtype instance Cxt x => T [x]
            = A (B x)
            deriving (Z,W)
            deriving stock Eq }

TySynInstD TySynEqn

    { type instance ... }

OpenTypeFamilyD | open type families (may also appear in [Dec] of `ClassD` and `InstanceD`)

Fields

- TypeFamilyHead

      { type family T a b c = (r :: *) | r -> a b }

ClosedTypeFamilyD TypeFamilyHead [TySynEqn]

    { type family F a b = (r :: *) | r -> a where ... }

RoleAnnotD Name [Role]

    { type role T nominal representational }

StandaloneDerivD (Maybe DerivStrategy) Cxt Type

    { deriving stock instance Ord a => Ord (Foo a) }

DefaultSigD Name Type

    { default size :: Data a => a -> Int }

PatSynD | Pattern Synonyms

Fields

- Name
- PatSynArgs
- PatSynDir
- Pat

  `{ pattern P v1 v2 .. vn <- p }` unidirectional or `{ pattern P v1 v2 .. vn = p }` implicit bidirectional or `{ pattern P v1 v2 .. vn <- p where P v1 v2 .. vn = e }` explicit bidirectional

  also, besides prefix pattern synonyms, both infix and record pattern synonyms are supported. See `PatSynArgs` for details

PatSynSigD Name PatSynType | A pattern synonym's type signature.

ImplicitParamBindD String Exp

    { ?x = expr }

Implicit parameter binding declaration. Can only be used in let and where clauses which consist entirely of implicit bindings.

#### Instances

Instances details

Binary Dec Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Dec -> Put Source # get :: Get Dec Source # putList :: [Dec] -> Put Source #
Data Dec Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Dec -> c Dec Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Dec Source #

toConstr :: Dec -> Constr Source #

dataTypeOf :: Dec -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Dec) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Dec) Source #

gmapT :: (forall b. Data b => b -> b) -> Dec -> Dec Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Dec -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Dec -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Dec -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Dec -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Dec -> m Dec Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Dec -> m Dec Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Dec -> m Dec Source #

Generic Dec Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Dec |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Dec = D1 ('MetaData "Dec" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((((C1 ('MetaCons "FunD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause])) :+: (C1 ('MetaCons "ValD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: C1 ('MetaCons "DataD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))))) :+: (C1 ('MetaCons "NewtypeD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))) :+: (C1 ('MetaCons "TypeDataD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]))) :+: C1 ('MetaCons "TySynD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))))) :+: ((C1 ('MetaCons "ClassD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FunDep]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec])))) :+: (C1 ('MetaCons "InstanceD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Overlap)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: C1 ('MetaCons "SigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons "KiSigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "ForeignD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Foreign))) :+: (C1 ('MetaCons "InfixD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Fixity) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NamespaceSpecifier) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: C1 ('MetaCons "DefaultD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type])))))) :+: (((C1 ('MetaCons "PragmaD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pragma)) :+: (C1 ('MetaCons "DataFamilyD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)))) :+: C1 ('MetaCons "DataInstD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))))) :+: (C1 ('MetaCons "NewtypeInstD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))) :+: (C1 ('MetaCons "TySynInstD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TySynEqn)) :+: C1 ('MetaCons "OpenTypeFamilyD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeFamilyHead))))) :+: ((C1 ('MetaCons "ClosedTypeFamilyD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeFamilyHead) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TySynEqn])) :+: (C1 ('MetaCons "RoleAnnotD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Role])) :+: C1 ('MetaCons "StandaloneDerivD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DerivStrategy)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))) :+: ((C1 ('MetaCons "DefaultSigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "PatSynD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynArgs)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynDir) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)))) :+: (C1 ('MetaCons "PatSynSigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynType)) :+: C1 ('MetaCons "ImplicitParamBindD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))))

Methods

from :: Dec -> Rep Dec x Source #

to :: Rep Dec x -> Dec Source #

Show Dec Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Dec -> ShowS Source # show :: Dec -> String Source # showList :: [Dec] -> ShowS Source #
Ppr Dec Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Dec -> Doc Source # ppr_list :: [Dec] -> Doc Source #
Eq Dec Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Dec -> Dec -> Bool Source # (/=) :: Dec -> Dec -> Bool Source #
Ord Dec Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Dec -> Dec -> Ordering Source # (<) :: Dec -> Dec -> Bool Source # (<=) :: Dec -> Dec -> Bool Source # (>) :: Dec -> Dec -> Bool Source # (>=) :: Dec -> Dec -> Bool Source # max :: Dec -> Dec -> Dec Source # min :: Dec -> Dec -> Dec Source #
type Rep Dec Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Dec = D1 ('MetaData "Dec" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((((C1 ('MetaCons "FunD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause])) :+: (C1 ('MetaCons "ValD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Body) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: C1 ('MetaCons "DataD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))))) :+: (C1 ('MetaCons "NewtypeD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))) :+: (C1 ('MetaCons "TypeDataD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]))) :+: C1 ('MetaCons "TySynD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))))) :+: ((C1 ('MetaCons "ClassD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FunDep]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec])))) :+: (C1 ('MetaCons "InstanceD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Overlap)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Dec]))) :+: C1 ('MetaCons "SigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons "KiSigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "ForeignD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Foreign))) :+: (C1 ('MetaCons "InfixD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Fixity) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NamespaceSpecifier) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: C1 ('MetaCons "DefaultD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type])))))) :+: (((C1 ('MetaCons "PragmaD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pragma)) :+: (C1 ('MetaCons "DataFamilyD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)))) :+: C1 ('MetaCons "DataInstD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Con]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))))) :+: (C1 ('MetaCons "NewtypeInstD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Kind)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Con) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DerivClause])))) :+: (C1 ('MetaCons "TySynInstD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TySynEqn)) :+: C1 ('MetaCons "OpenTypeFamilyD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeFamilyHead))))) :+: ((C1 ('MetaCons "ClosedTypeFamilyD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeFamilyHead) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TySynEqn])) :+: (C1 ('MetaCons "RoleAnnotD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Role])) :+: C1 ('MetaCons "StandaloneDerivD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DerivStrategy)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))) :+: ((C1 ('MetaCons "DefaultSigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "PatSynD" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynArgs)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynDir) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Pat)))) :+: (C1 ('MetaCons "PatSynSigD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynType)) :+: C1 ('MetaCons "ImplicitParamBindD" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))))

type BangType = (Bang, Type) Source #

A type with a strictness annotation, as in data constructors. See `Con`.

type VarBangType = (Name, Bang, Type) Source #

`BangType`, but for record fields. See `Con`.

type FieldExp = (Name, Exp) Source #

A (field name, expression) pair. See `RecConE` and `RecUpdE`.

type FieldPat = (Name, Pat) Source #

A (field name, pattern) pair. See `RecP`.

data Name Source #

An abstract type representing names in the syntax tree.

`Name`s can be constructed in several ways, which come with different name-capture guarantees (see Language.Haskell.TH.Syntax for an explanation of name capture):

- the built-in syntax `'f` and `''T` can be used to construct names, The expression `'f` gives a `Name` which refers to the value `f` currently in scope, and `''T` gives a `Name` which refers to the type `T` currently in scope. These names can never be captured.
- `lookupValueName` and `lookupTypeName` are similar to `'f` and `''T` respectively, but the `Name`s are looked up at the point where the current splice is being run. These names can never be captured.
- `newName` monadically generates a new name, which can never be captured.
- `mkName` generates a capturable name.

Names constructed using `newName` and `mkName` may be used in bindings (such as `let x = ...` or `x -> ...`), but names constructed using `lookupValueName`, `lookupTypeName`, `'f`, `''T` may not.

Constructors

Name OccName NameFlavour |

#### Instances

Instances details

Binary Name Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Name -> Put Source # get :: Get Name Source # putList :: [Name] -> Put Source #
Data Name Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Name -> c Name Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Name Source #

toConstr :: Name -> Constr Source #

dataTypeOf :: Name -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Name) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Name) Source #

gmapT :: (forall b. Data b => b -> b) -> Name -> Name Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Name -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Name -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Name -> m Name Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Name -> m Name Source #

Generic Name Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Name |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Name = D1 ('MetaData "Name" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Name" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OccName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NameFlavour)))

Methods

from :: Name -> Rep Name x Source #

to :: Rep Name x -> Name Source #

Show Name Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Name -> ShowS Source # show :: Name -> String Source # showList :: [Name] -> ShowS Source #
Ppr Name Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Name -> Doc Source # ppr_list :: [Name] -> Doc Source #
Eq Name Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Name -> Name -> Bool Source # (/=) :: Name -> Name -> Bool Source #
Ord Name Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Name -> Name -> Ordering Source # (<) :: Name -> Name -> Bool Source # (<=) :: Name -> Name -> Bool Source # (>) :: Name -> Name -> Bool Source # (>=) :: Name -> Name -> Bool Source # max :: Name -> Name -> Name Source # min :: Name -> Name -> Name Source #
type Rep Name Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Name = D1 ('MetaData "Name" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Name" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OccName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NameFlavour)))

data FunDep Source #

Functional dependency syntax, as in a class declaration.

Constructors

FunDep [Name] [Name]

    class C a b {| a -> b}

#### Instances

Instances details

Binary FunDep Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: FunDep -> Put Source # get :: Get FunDep Source # putList :: [FunDep] -> Put Source #
Data FunDep Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FunDep -> c FunDep Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FunDep Source #

toConstr :: FunDep -> Constr Source #

dataTypeOf :: FunDep -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FunDep) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FunDep) Source #

gmapT :: (forall b. Data b => b -> b) -> FunDep -> FunDep Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FunDep -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FunDep -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> FunDep -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> FunDep -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> FunDep -> m FunDep Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FunDep -> m FunDep Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FunDep -> m FunDep Source #

Generic FunDep Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep FunDep |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep FunDep = D1 ('MetaData "FunDep" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "FunDep" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])))

Methods

from :: FunDep -> Rep FunDep x Source #

to :: Rep FunDep x -> FunDep Source #

Show FunDep Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> FunDep -> ShowS Source # show :: FunDep -> String Source # showList :: [FunDep] -> ShowS Source #
Ppr FunDep Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: FunDep -> Doc Source # ppr_list :: [FunDep] -> Doc Source #
Eq FunDep Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: FunDep -> FunDep -> Bool Source # (/=) :: FunDep -> FunDep -> Bool Source #
Ord FunDep Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: FunDep -> FunDep -> Ordering Source # (<) :: FunDep -> FunDep -> Bool Source # (<=) :: FunDep -> FunDep -> Bool Source # (>) :: FunDep -> FunDep -> Bool Source # (>=) :: FunDep -> FunDep -> Bool Source # max :: FunDep -> FunDep -> FunDep Source # min :: FunDep -> FunDep -> FunDep Source #
type Rep FunDep Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep FunDep = D1 ('MetaData "FunDep" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "FunDep" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])))

type Pred = Type Source #

Since the advent of `ConstraintKinds`, constraints are really just types. Equality constraints use the `EqualityT` constructor. Constraints may also be tuples of other constraints.

data RuleBndr Source #

A binder found in the `forall` of a `RULES` pragma.

Constructors

RuleVar Name

    forall {a} ... .

TypedRuleVar Name Type

    forall {(a :: t)} ... .

#### Instances

Instances details

Binary RuleBndr Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: RuleBndr -> Put Source # get :: Get RuleBndr Source # putList :: [RuleBndr] -> Put Source #
Data RuleBndr Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RuleBndr -> c RuleBndr Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RuleBndr Source #

toConstr :: RuleBndr -> Constr Source #

dataTypeOf :: RuleBndr -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RuleBndr) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RuleBndr) Source #

gmapT :: (forall b. Data b => b -> b) -> RuleBndr -> RuleBndr Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RuleBndr -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RuleBndr -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> RuleBndr -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RuleBndr -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RuleBndr -> m RuleBndr Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RuleBndr -> m RuleBndr Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RuleBndr -> m RuleBndr Source #

Generic RuleBndr Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep RuleBndr |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep RuleBndr = D1 ('MetaData "RuleBndr" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "RuleVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "TypedRuleVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))

Methods

from :: RuleBndr -> Rep RuleBndr x Source #

to :: Rep RuleBndr x -> RuleBndr Source #

Show RuleBndr Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> RuleBndr -> ShowS Source # show :: RuleBndr -> String Source # showList :: [RuleBndr] -> ShowS Source #
Ppr RuleBndr Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: RuleBndr -> Doc Source # ppr_list :: [RuleBndr] -> Doc Source #
Eq RuleBndr Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: RuleBndr -> RuleBndr -> Bool Source # (/=) :: RuleBndr -> RuleBndr -> Bool Source #
Ord RuleBndr Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: RuleBndr -> RuleBndr -> Ordering Source # (<) :: RuleBndr -> RuleBndr -> Bool Source # (<=) :: RuleBndr -> RuleBndr -> Bool Source # (>) :: RuleBndr -> RuleBndr -> Bool Source # (>=) :: RuleBndr -> RuleBndr -> Bool Source # max :: RuleBndr -> RuleBndr -> RuleBndr Source # min :: RuleBndr -> RuleBndr -> RuleBndr Source #
type Rep RuleBndr Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep RuleBndr = D1 ('MetaData "RuleBndr" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "RuleVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "TypedRuleVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))

data TySynEqn Source #

One equation of a type family instance or closed type family. The arguments are the left-hand-side type and the right-hand-side result.

For instance, if you had the following type family:

    type family Foo (a :: k) :: k where
      forall k (a :: k). Foo @k a = a

The `Foo @k a = a` equation would be represented as follows:

    TySynEqn (Just [PlainTV k, KindedTV a (VarT k)])
               (AppT (AppKindT (ConT ''Foo) (VarT k)) (VarT a))
               (VarT a)

Constructors

TySynEqn (Maybe [TyVarBndr ()]) Type Type |

#### Instances

Instances details

Binary TySynEqn Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: TySynEqn -> Put Source # get :: Get TySynEqn Source # putList :: [TySynEqn] -> Put Source #
Data TySynEqn Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TySynEqn -> c TySynEqn Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TySynEqn Source #

toConstr :: TySynEqn -> Constr Source #

dataTypeOf :: TySynEqn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TySynEqn) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TySynEqn) Source #

gmapT :: (forall b. Data b => b -> b) -> TySynEqn -> TySynEqn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TySynEqn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TySynEqn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> TySynEqn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TySynEqn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TySynEqn -> m TySynEqn Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TySynEqn -> m TySynEqn Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TySynEqn -> m TySynEqn Source #

Generic TySynEqn Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep TySynEqn |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep TySynEqn = D1 ('MetaData "TySynEqn" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "TySynEqn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))

Methods

from :: TySynEqn -> Rep TySynEqn x Source #

to :: Rep TySynEqn x -> TySynEqn Source #

Show TySynEqn Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> TySynEqn -> ShowS Source # show :: TySynEqn -> String Source # showList :: [TySynEqn] -> ShowS Source #
Eq TySynEqn Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: TySynEqn -> TySynEqn -> Bool Source # (/=) :: TySynEqn -> TySynEqn -> Bool Source #
Ord TySynEqn Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: TySynEqn -> TySynEqn -> Ordering Source # (<) :: TySynEqn -> TySynEqn -> Bool Source # (<=) :: TySynEqn -> TySynEqn -> Bool Source # (>) :: TySynEqn -> TySynEqn -> Bool Source # (>=) :: TySynEqn -> TySynEqn -> Bool Source # max :: TySynEqn -> TySynEqn -> TySynEqn Source # min :: TySynEqn -> TySynEqn -> TySynEqn Source #
type Rep TySynEqn Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep TySynEqn = D1 ('MetaData "TySynEqn" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "TySynEqn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))

data Role Source #

Role annotations

Constructors

NominalR

    nominal

RepresentationalR

    representational

PhantomR

    phantom

InferR

    _

#### Instances

Instances details

Binary Role Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Role -> Put Source # get :: Get Role Source # putList :: [Role] -> Put Source #
Data Role Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Role -> c Role Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Role Source #

toConstr :: Role -> Constr Source #

dataTypeOf :: Role -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Role) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Role) Source #

gmapT :: (forall b. Data b => b -> b) -> Role -> Role Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Role -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Role -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Role -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Role -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Role -> m Role Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Role -> m Role Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Role -> m Role Source #

Generic Role Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Role |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Role = D1 ('MetaData "Role" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "NominalR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RepresentationalR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PhantomR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InferR" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: Role -> Rep Role x Source #

to :: Rep Role x -> Role Source #

Show Role Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Role -> ShowS Source # show :: Role -> String Source # showList :: [Role] -> ShowS Source #
Ppr Role Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Role -> Doc Source # ppr_list :: [Role] -> Doc Source #
Eq Role Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Role -> Role -> Bool Source # (/=) :: Role -> Role -> Bool Source #
Ord Role Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Role -> Role -> Ordering Source # (<) :: Role -> Role -> Bool Source # (<=) :: Role -> Role -> Bool Source # (>) :: Role -> Role -> Bool Source # (>=) :: Role -> Role -> Bool Source # max :: Role -> Role -> Role Source # min :: Role -> Role -> Role Source #
type Rep Role Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Role = D1 ('MetaData "Role" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "NominalR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RepresentationalR" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "PhantomR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InferR" 'PrefixI 'False) (U1 :: Type -> Type)))

data InjectivityAnn Source #

Injectivity annotation as in an injective type family

Constructors

InjectivityAnn Name [Name] |

#### Instances

Instances details

Binary InjectivityAnn Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: InjectivityAnn -> Put Source # get :: Get InjectivityAnn Source # putList :: [InjectivityAnn] -> Put Source #
Data InjectivityAnn Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> InjectivityAnn -> c InjectivityAnn Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c InjectivityAnn Source #

toConstr :: InjectivityAnn -> Constr Source #

dataTypeOf :: InjectivityAnn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c InjectivityAnn) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c InjectivityAnn) Source #

gmapT :: (forall b. Data b => b -> b) -> InjectivityAnn -> InjectivityAnn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> InjectivityAnn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> InjectivityAnn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> InjectivityAnn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> InjectivityAnn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> InjectivityAnn -> m InjectivityAnn Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> InjectivityAnn -> m InjectivityAnn Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> InjectivityAnn -> m InjectivityAnn Source #

Generic InjectivityAnn Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep InjectivityAnn |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep InjectivityAnn = D1 ('MetaData "InjectivityAnn" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "InjectivityAnn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])))

Methods

from :: InjectivityAnn -> Rep InjectivityAnn x Source #

to :: Rep InjectivityAnn x -> InjectivityAnn Source #

Show InjectivityAnn Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> InjectivityAnn -> ShowS Source # show :: InjectivityAnn -> String Source # showList :: [InjectivityAnn] -> ShowS Source #
Ppr InjectivityAnn Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: InjectivityAnn -> Doc Source # ppr_list :: [InjectivityAnn] -> Doc Source #
Eq InjectivityAnn Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: InjectivityAnn -> InjectivityAnn -> Bool Source # (/=) :: InjectivityAnn -> InjectivityAnn -> Bool Source #
Ord InjectivityAnn Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: InjectivityAnn -> InjectivityAnn -> Ordering Source #

(<) :: InjectivityAnn -> InjectivityAnn -> Bool Source #

(<=) :: InjectivityAnn -> InjectivityAnn -> Bool Source #

(>) :: InjectivityAnn -> InjectivityAnn -> Bool Source #

(>=) :: InjectivityAnn -> InjectivityAnn -> Bool Source #

max :: InjectivityAnn -> InjectivityAnn -> InjectivityAnn Source #

min :: InjectivityAnn -> InjectivityAnn -> InjectivityAnn Source #

type Rep InjectivityAnn Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep InjectivityAnn = D1 ('MetaData "InjectivityAnn" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "InjectivityAnn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])))

type Kind = Type Source #

To avoid duplication between kinds and types, they are defined to be the same. Naturally, you would never have a type be `StarT` and you would never have a kind be `SigT`, but many of the other constructors are shared. Note that the kind `Bool` is denoted with `ConT`, not `PromotedT`. Similarly, tuple kinds are made with `TupleT`, not `PromotedTupleT`.

data Overlap Source #

Varieties of allowed instance overlap.

Constructors

Overlappable | May be overlapped by more specific instances
Overlapping | May overlap a more general instance
Overlaps | Both `Overlapping` and `Overlappable`
Incoherent | Both `Overlapping` and `Overlappable`, and pick an arbitrary one if multiple choices are available.

#### Instances

Instances details

Binary Overlap Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Overlap -> Put Source # get :: Get Overlap Source # putList :: [Overlap] -> Put Source #
Data Overlap Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Overlap -> c Overlap Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Overlap Source #

toConstr :: Overlap -> Constr Source #

dataTypeOf :: Overlap -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Overlap) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Overlap) Source #

gmapT :: (forall b. Data b => b -> b) -> Overlap -> Overlap Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Overlap -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Overlap -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Overlap -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Overlap -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Overlap -> m Overlap Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Overlap -> m Overlap Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Overlap -> m Overlap Source #

Generic Overlap Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Overlap |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Overlap = D1 ('MetaData "Overlap" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "Overlappable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Overlapping" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Overlaps" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Incoherent" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: Overlap -> Rep Overlap x Source #

to :: Rep Overlap x -> Overlap Source #

Show Overlap Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Overlap -> ShowS Source # show :: Overlap -> String Source # showList :: [Overlap] -> ShowS Source #
Eq Overlap Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Overlap -> Overlap -> Bool Source # (/=) :: Overlap -> Overlap -> Bool Source #
Ord Overlap Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Overlap -> Overlap -> Ordering Source # (<) :: Overlap -> Overlap -> Bool Source # (<=) :: Overlap -> Overlap -> Bool Source # (>) :: Overlap -> Overlap -> Bool Source # (>=) :: Overlap -> Overlap -> Bool Source # max :: Overlap -> Overlap -> Overlap Source # min :: Overlap -> Overlap -> Overlap Source #
type Rep Overlap Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Overlap = D1 ('MetaData "Overlap" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "Overlappable" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Overlapping" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Overlaps" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Incoherent" 'PrefixI 'False) (U1 :: Type -> Type)))

data DerivClause Source #

A single `deriving` clause at the end of a datatype declaration.

Constructors

DerivClause (Maybe DerivStrategy) Cxt

    { deriving stock (Eq, Ord) }

#### Instances

Instances details

Binary DerivClause Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: DerivClause -> Put Source # get :: Get DerivClause Source # putList :: [DerivClause] -> Put Source #
Data DerivClause Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DerivClause -> c DerivClause Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DerivClause Source #

toConstr :: DerivClause -> Constr Source #

dataTypeOf :: DerivClause -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DerivClause) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DerivClause) Source #

gmapT :: (forall b. Data b => b -> b) -> DerivClause -> DerivClause Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DerivClause -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DerivClause -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> DerivClause -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DerivClause -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DerivClause -> m DerivClause Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DerivClause -> m DerivClause Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DerivClause -> m DerivClause Source #

Generic DerivClause Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep DerivClause |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep DerivClause = D1 ('MetaData "DerivClause" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "DerivClause" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DerivStrategy)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt)))

Methods

from :: DerivClause -> Rep DerivClause x Source #

to :: Rep DerivClause x -> DerivClause Source #

Show DerivClause Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> DerivClause -> ShowS Source # show :: DerivClause -> String Source # showList :: [DerivClause] -> ShowS Source #
Eq DerivClause Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: DerivClause -> DerivClause -> Bool Source # (/=) :: DerivClause -> DerivClause -> Bool Source #
Ord DerivClause Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: DerivClause -> DerivClause -> Ordering Source #

(<) :: DerivClause -> DerivClause -> Bool Source #

(<=) :: DerivClause -> DerivClause -> Bool Source #

(>) :: DerivClause -> DerivClause -> Bool Source #

(>=) :: DerivClause -> DerivClause -> Bool Source #

max :: DerivClause -> DerivClause -> DerivClause Source #

min :: DerivClause -> DerivClause -> DerivClause Source #

type Rep DerivClause Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep DerivClause = D1 ('MetaData "DerivClause" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "DerivClause" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DerivStrategy)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Cxt)))

data DerivStrategy Source #

What the user explicitly requests when deriving an instance with `-XDerivingStrategies`.

Constructors

StockStrategy

    deriving {stock} C

AnyclassStrategy | `deriving {anyclass} C`, `-XDeriveAnyClass`
NewtypeStrategy | `deriving {newtype} C`, `-XGeneralizedNewtypeDeriving`
ViaStrategy Type | `deriving C {via T}`, `-XDerivingVia`

#### Instances

Instances details

Binary DerivStrategy Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: DerivStrategy -> Put Source # get :: Get DerivStrategy Source # putList :: [DerivStrategy] -> Put Source #
Data DerivStrategy Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DerivStrategy -> c DerivStrategy Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DerivStrategy Source #

toConstr :: DerivStrategy -> Constr Source #

dataTypeOf :: DerivStrategy -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DerivStrategy) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DerivStrategy) Source #

gmapT :: (forall b. Data b => b -> b) -> DerivStrategy -> DerivStrategy Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DerivStrategy -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DerivStrategy -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> DerivStrategy -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DerivStrategy -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DerivStrategy -> m DerivStrategy Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DerivStrategy -> m DerivStrategy Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DerivStrategy -> m DerivStrategy Source #

Generic DerivStrategy Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep DerivStrategy |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep DerivStrategy = D1 ('MetaData "DerivStrategy" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "StockStrategy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AnyclassStrategy" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NewtypeStrategy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ViaStrategy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))

Methods

from :: DerivStrategy -> Rep DerivStrategy x Source #

to :: Rep DerivStrategy x -> DerivStrategy Source #

Show DerivStrategy Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> DerivStrategy -> ShowS Source # show :: DerivStrategy -> String Source # showList :: [DerivStrategy] -> ShowS Source #
Eq DerivStrategy Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: DerivStrategy -> DerivStrategy -> Bool Source # (/=) :: DerivStrategy -> DerivStrategy -> Bool Source #
Ord DerivStrategy Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: DerivStrategy -> DerivStrategy -> Ordering Source #

(<) :: DerivStrategy -> DerivStrategy -> Bool Source #

(<=) :: DerivStrategy -> DerivStrategy -> Bool Source #

(>) :: DerivStrategy -> DerivStrategy -> Bool Source #

(>=) :: DerivStrategy -> DerivStrategy -> Bool Source #

max :: DerivStrategy -> DerivStrategy -> DerivStrategy Source #

min :: DerivStrategy -> DerivStrategy -> DerivStrategy Source #

type Rep DerivStrategy Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep DerivStrategy = D1 ('MetaData "DerivStrategy" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "StockStrategy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "AnyclassStrategy" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NewtypeStrategy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ViaStrategy" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))

newtype Code (m :: Type -> Type) (a :: TYPE r) Source #

Represents an expression which has type `a`, built in monadic context `m`. Built on top of `TExp`, typed expressions allow for type-safe splicing via:

- typed quotes, written as `[|| ... ||]` where `...` is an expression; if that expression has type `a`, then the quotation has type `Quote m => Code m a`
- typed splices inside of typed quotes, written as `$$(...)` where `...` is an arbitrary expression of type `Quote m => Code m a`

Traditional expression quotes and splices let us construct ill-typed expressions:

    >>> fmap ppr $ runQ (unTypeCode [| True == $( [| "foo" |] ) |])
    GHC.Types.True GHC.Classes.== "foo"
    >>> GHC.Types.True GHC.Classes.== "foo"
    <interactive> error:
        • Couldn't match expected type ‘Bool’ with actual type ‘[Char]’
        • In the second argument of ‘(==)’, namely ‘"foo"’
          In the expression: True == "foo"
          In an equation for ‘it’: it = True == "foo"

With typed expressions, the type error occurs when constructing the Template Haskell expression:

    >>> fmap ppr $ runQ (unTypeCode [|| True == $$( [|| "foo" ||] ) ||])
    <interactive> error:
        • Couldn't match type ‘[Char]’ with ‘Bool’
          Expected type: Code Q Bool
            Actual type: Code Q [Char]
        • In the Template Haskell quotation [|| "foo" ||]
          In the expression: [|| "foo" ||]
          In the Template Haskell splice $$([|| "foo" ||])

Constructors

Code |

Fields

- examineCode :: m (TExp a)

  Underlying monadic value

newtype ModName Source #

The name of a module.

Constructors

ModName String |

#### Instances

Instances details

Binary ModName Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: ModName -> Put Source # get :: Get ModName Source # putList :: [ModName] -> Put Source #
Data ModName Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ModName -> c ModName Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ModName Source #

toConstr :: ModName -> Constr Source #

dataTypeOf :: ModName -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ModName) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ModName) Source #

gmapT :: (forall b. Data b => b -> b) -> ModName -> ModName Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ModName -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ModName -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> ModName -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ModName -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ModName -> m ModName Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ModName -> m ModName Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ModName -> m ModName Source #

Generic ModName Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep ModName |
Instance details Defined in GHC.Internal.TH.Syntax type Rep ModName = D1 ('MetaData "ModName" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'True) (C1 ('MetaCons "ModName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))

Methods

from :: ModName -> Rep ModName x Source #

to :: Rep ModName x -> ModName Source #

Show ModName Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> ModName -> ShowS Source # show :: ModName -> String Source # showList :: [ModName] -> ShowS Source #
Eq ModName Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: ModName -> ModName -> Bool Source # (/=) :: ModName -> ModName -> Bool Source #
Ord ModName Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: ModName -> ModName -> Ordering Source # (<) :: ModName -> ModName -> Bool Source # (<=) :: ModName -> ModName -> Bool Source # (>) :: ModName -> ModName -> Bool Source # (>=) :: ModName -> ModName -> Bool Source # max :: ModName -> ModName -> ModName Source # min :: ModName -> ModName -> ModName Source #
type Rep ModName Source # |
Instance details Defined in GHC.Internal.TH.Syntax type Rep ModName = D1 ('MetaData "ModName" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'True) (C1 ('MetaCons "ModName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))

data Inline Source #

An inline pragma.

Constructors

NoInline

    { {-# NOINLINE ... #-} }

Inline

    { {-# INLINE ... #-} }

Inlinable

    { {-# INLINABLE ... #-} }

#### Instances

Instances details

Binary Inline Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Inline -> Put Source # get :: Get Inline Source # putList :: [Inline] -> Put Source #
Data Inline Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Inline -> c Inline Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Inline Source #

toConstr :: Inline -> Constr Source #

dataTypeOf :: Inline -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Inline) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Inline) Source #

gmapT :: (forall b. Data b => b -> b) -> Inline -> Inline Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Inline -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Inline -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Inline -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Inline -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Inline -> m Inline Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Inline -> m Inline Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Inline -> m Inline Source #

Generic Inline Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Inline |
Instance details Defined in GHC.Internal.TH.Syntax type Rep Inline = D1 ('MetaData "Inline" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NoInline" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Inline" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Inlinable" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: Inline -> Rep Inline x Source #

to :: Rep Inline x -> Inline Source #

Show Inline Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Inline -> ShowS Source # show :: Inline -> String Source # showList :: [Inline] -> ShowS Source #
Ppr Inline Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Inline -> Doc Source # ppr_list :: [Inline] -> Doc Source #
Eq Inline Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Inline -> Inline -> Bool Source # (/=) :: Inline -> Inline -> Bool Source #
Ord Inline Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Inline -> Inline -> Ordering Source # (<) :: Inline -> Inline -> Bool Source # (<=) :: Inline -> Inline -> Bool Source # (>) :: Inline -> Inline -> Bool Source # (>=) :: Inline -> Inline -> Bool Source # max :: Inline -> Inline -> Inline Source # min :: Inline -> Inline -> Inline Source #
type Rep Inline Source # |
Instance details Defined in GHC.Internal.TH.Syntax type Rep Inline = D1 ('MetaData "Inline" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NoInline" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Inline" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Inlinable" 'PrefixI 'False) (U1 :: Type -> Type)))

data RuleMatch Source #

A `CONLIKE` modifier, as in one of the various inline pragmas, or lack thereof (`FunLike`).

Constructors

ConLike

    { {-# CONLIKE [inline] ... #-} }

FunLike

    { {-# [inline] ... #-} }

#### Instances

Instances details

Binary RuleMatch Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: RuleMatch -> Put Source # get :: Get RuleMatch Source # putList :: [RuleMatch] -> Put Source #
Data RuleMatch Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RuleMatch -> c RuleMatch Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RuleMatch Source #

toConstr :: RuleMatch -> Constr Source #

dataTypeOf :: RuleMatch -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RuleMatch) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RuleMatch) Source #

gmapT :: (forall b. Data b => b -> b) -> RuleMatch -> RuleMatch Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RuleMatch -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RuleMatch -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> RuleMatch -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RuleMatch -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RuleMatch -> m RuleMatch Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RuleMatch -> m RuleMatch Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RuleMatch -> m RuleMatch Source #

Generic RuleMatch Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep RuleMatch |
Instance details Defined in GHC.Internal.TH.Syntax type Rep RuleMatch = D1 ('MetaData "RuleMatch" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "ConLike" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FunLike" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: RuleMatch -> Rep RuleMatch x Source #

to :: Rep RuleMatch x -> RuleMatch Source #

Show RuleMatch Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> RuleMatch -> ShowS Source # show :: RuleMatch -> String Source # showList :: [RuleMatch] -> ShowS Source #
Ppr RuleMatch Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: RuleMatch -> Doc Source # ppr_list :: [RuleMatch] -> Doc Source #
Eq RuleMatch Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: RuleMatch -> RuleMatch -> Bool Source # (/=) :: RuleMatch -> RuleMatch -> Bool Source #
Ord RuleMatch Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: RuleMatch -> RuleMatch -> Ordering Source #

(<) :: RuleMatch -> RuleMatch -> Bool Source #

(<=) :: RuleMatch -> RuleMatch -> Bool Source #

(>) :: RuleMatch -> RuleMatch -> Bool Source #

(>=) :: RuleMatch -> RuleMatch -> Bool Source #

max :: RuleMatch -> RuleMatch -> RuleMatch Source #

min :: RuleMatch -> RuleMatch -> RuleMatch Source #

type Rep RuleMatch Source # |
Instance details Defined in GHC.Internal.TH.Syntax type Rep RuleMatch = D1 ('MetaData "RuleMatch" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "ConLike" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FunLike" 'PrefixI 'False) (U1 :: Type -> Type))

data Phases Source #

Phase control syntax.

Constructors

AllPhases | The default when unspecified

FromPhase Int

    [n]

BeforePhase Int

    [~n]

#### Instances

Instances details

Binary Phases Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Phases -> Put Source # get :: Get Phases Source # putList :: [Phases] -> Put Source #
Data Phases Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Phases -> c Phases Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Phases Source #

toConstr :: Phases -> Constr Source #

dataTypeOf :: Phases -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Phases) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Phases) Source #

gmapT :: (forall b. Data b => b -> b) -> Phases -> Phases Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Phases -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Phases -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Phases -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Phases -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Phases -> m Phases Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Phases -> m Phases Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Phases -> m Phases Source #

Generic Phases Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Phases |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Phases = D1 ('MetaData "Phases" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "AllPhases" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FromPhase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "BeforePhase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))

Methods

from :: Phases -> Rep Phases x Source #

to :: Rep Phases x -> Phases Source #

Show Phases Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Phases -> ShowS Source # show :: Phases -> String Source # showList :: [Phases] -> ShowS Source #
Ppr Phases Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Phases -> Doc Source # ppr_list :: [Phases] -> Doc Source #
Eq Phases Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Phases -> Phases -> Bool Source # (/=) :: Phases -> Phases -> Bool Source #
Ord Phases Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Phases -> Phases -> Ordering Source # (<) :: Phases -> Phases -> Bool Source # (<=) :: Phases -> Phases -> Bool Source # (>) :: Phases -> Phases -> Bool Source # (>=) :: Phases -> Phases -> Bool Source # max :: Phases -> Phases -> Phases Source # min :: Phases -> Phases -> Phases Source #
type Rep Phases Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Phases = D1 ('MetaData "Phases" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "AllPhases" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FromPhase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "BeforePhase" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))

data NamespaceSpecifier Source #

A way to specify a namespace to look in when GHC needs to find a name's source

Constructors

NoNamespaceSpecifier | Name may be everything; If there are two names in different namespaces, then consider both
TypeNamespaceSpecifier | Name should be a type-level entity, such as a data type, type alias, type family, type class, or type variable
DataNamespaceSpecifier | Name should be a term-level entity, such as a function, data constructor, or pattern synonym

#### Instances

Instances details

Binary NamespaceSpecifier Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: NamespaceSpecifier -> Put Source # get :: Get NamespaceSpecifier Source # putList :: [NamespaceSpecifier] -> Put Source #
Data NamespaceSpecifier Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NamespaceSpecifier -> c NamespaceSpecifier Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NamespaceSpecifier Source #

toConstr :: NamespaceSpecifier -> Constr Source #

dataTypeOf :: NamespaceSpecifier -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NamespaceSpecifier) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NamespaceSpecifier) Source #

gmapT :: (forall b. Data b => b -> b) -> NamespaceSpecifier -> NamespaceSpecifier Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NamespaceSpecifier -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NamespaceSpecifier -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> NamespaceSpecifier -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NamespaceSpecifier -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NamespaceSpecifier -> m NamespaceSpecifier Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NamespaceSpecifier -> m NamespaceSpecifier Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NamespaceSpecifier -> m NamespaceSpecifier Source #

Generic NamespaceSpecifier Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep NamespaceSpecifier |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep NamespaceSpecifier = D1 ('MetaData "NamespaceSpecifier" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NoNamespaceSpecifier" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TypeNamespaceSpecifier" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DataNamespaceSpecifier" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: NamespaceSpecifier -> Rep NamespaceSpecifier x Source #

to :: Rep NamespaceSpecifier x -> NamespaceSpecifier Source #

Show NamespaceSpecifier Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> NamespaceSpecifier -> ShowS Source # show :: NamespaceSpecifier -> String Source # showList :: [NamespaceSpecifier] -> ShowS Source #
Eq NamespaceSpecifier Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Source # (/=) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Source #
Ord NamespaceSpecifier Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: NamespaceSpecifier -> NamespaceSpecifier -> Ordering Source #

(<) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Source #

(<=) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Source #

(>) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Source #

(>=) :: NamespaceSpecifier -> NamespaceSpecifier -> Bool Source #

max :: NamespaceSpecifier -> NamespaceSpecifier -> NamespaceSpecifier Source #

min :: NamespaceSpecifier -> NamespaceSpecifier -> NamespaceSpecifier Source #

type Rep NamespaceSpecifier Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep NamespaceSpecifier = D1 ('MetaData "NamespaceSpecifier" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NoNamespaceSpecifier" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TypeNamespaceSpecifier" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DataNamespaceSpecifier" 'PrefixI 'False) (U1 :: Type -> Type)))

data DocLoc Source #

A location at which to attach Haddock documentation. Note that adding documentation to a `Name` defined oustide of the current module will cause an error.

Constructors

ModuleDoc | At the current module's header.
DeclDoc Name | At a declaration, not necessarily top level.
ArgDoc Name Int | At a specific argument of a function, indexed by its position.
InstDoc Type | At a class or family instance.

#### Instances

Instances details

Binary DocLoc Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: DocLoc -> Put Source # get :: Get DocLoc Source # putList :: [DocLoc] -> Put Source #
Data DocLoc Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DocLoc -> c DocLoc Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DocLoc Source #

toConstr :: DocLoc -> Constr Source #

dataTypeOf :: DocLoc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DocLoc) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DocLoc) Source #

gmapT :: (forall b. Data b => b -> b) -> DocLoc -> DocLoc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DocLoc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DocLoc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> DocLoc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DocLoc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DocLoc -> m DocLoc Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DocLoc -> m DocLoc Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DocLoc -> m DocLoc Source #

Generic DocLoc Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep DocLoc |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep DocLoc = D1 ('MetaData "DocLoc" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "ModuleDoc" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeclDoc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "ArgDoc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "InstDoc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))

Methods

from :: DocLoc -> Rep DocLoc x Source #

to :: Rep DocLoc x -> DocLoc Source #

Show DocLoc Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> DocLoc -> ShowS Source # show :: DocLoc -> String Source # showList :: [DocLoc] -> ShowS Source #
Eq DocLoc Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: DocLoc -> DocLoc -> Bool Source # (/=) :: DocLoc -> DocLoc -> Bool Source #
Ord DocLoc Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: DocLoc -> DocLoc -> Ordering Source # (<) :: DocLoc -> DocLoc -> Bool Source # (<=) :: DocLoc -> DocLoc -> Bool Source # (>) :: DocLoc -> DocLoc -> Bool Source # (>=) :: DocLoc -> DocLoc -> Bool Source # max :: DocLoc -> DocLoc -> DocLoc Source # min :: DocLoc -> DocLoc -> DocLoc Source #
type Rep DocLoc Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep DocLoc = D1 ('MetaData "DocLoc" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "ModuleDoc" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeclDoc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "ArgDoc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "InstDoc" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))

data AnnLookup Source #

Annotation target for reifyAnnotations

Constructors

AnnLookupModule Module |
AnnLookupName Name |

#### Instances

Instances details

Binary AnnLookup Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: AnnLookup -> Put Source # get :: Get AnnLookup Source # putList :: [AnnLookup] -> Put Source #
Data AnnLookup Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnLookup -> c AnnLookup Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnLookup Source #

toConstr :: AnnLookup -> Constr Source #

dataTypeOf :: AnnLookup -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnLookup) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnLookup) Source #

gmapT :: (forall b. Data b => b -> b) -> AnnLookup -> AnnLookup Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnLookup -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnLookup -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> AnnLookup -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnLookup -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnLookup -> m AnnLookup Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnLookup -> m AnnLookup Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnLookup -> m AnnLookup Source #

Generic AnnLookup Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep AnnLookup |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep AnnLookup = D1 ('MetaData "AnnLookup" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "AnnLookupModule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Module)) :+: C1 ('MetaCons "AnnLookupName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))

Methods

from :: AnnLookup -> Rep AnnLookup x Source #

to :: Rep AnnLookup x -> AnnLookup Source #

Show AnnLookup Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> AnnLookup -> ShowS Source # show :: AnnLookup -> String Source # showList :: [AnnLookup] -> ShowS Source #
Eq AnnLookup Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: AnnLookup -> AnnLookup -> Bool Source # (/=) :: AnnLookup -> AnnLookup -> Bool Source #
Ord AnnLookup Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: AnnLookup -> AnnLookup -> Ordering Source #

(<) :: AnnLookup -> AnnLookup -> Bool Source #

(<=) :: AnnLookup -> AnnLookup -> Bool Source #

(>) :: AnnLookup -> AnnLookup -> Bool Source #

(>=) :: AnnLookup -> AnnLookup -> Bool Source #

max :: AnnLookup -> AnnLookup -> AnnLookup Source #

min :: AnnLookup -> AnnLookup -> AnnLookup Source #

type Rep AnnLookup Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep AnnLookup = D1 ('MetaData "AnnLookup" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "AnnLookupModule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Module)) :+: C1 ('MetaCons "AnnLookupName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))

data TyLit Source #

Type-level literals.

Constructors

NumTyLit Integer

    2

StrTyLit String

    "Hello"

CharTyLit Char | `'C'`, @since 4.16.0.0

#### Instances

Instances details

Binary TyLit Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: TyLit -> Put Source # get :: Get TyLit Source # putList :: [TyLit] -> Put Source #
Data TyLit Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyLit -> c TyLit Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TyLit Source #

toConstr :: TyLit -> Constr Source #

dataTypeOf :: TyLit -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TyLit) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TyLit) Source #

gmapT :: (forall b. Data b => b -> b) -> TyLit -> TyLit Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyLit -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyLit -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> TyLit -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TyLit -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyLit -> m TyLit Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyLit -> m TyLit Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyLit -> m TyLit Source #

Generic TyLit Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep TyLit |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep TyLit = D1 ('MetaData "TyLit" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NumTyLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons "StrTyLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons "CharTyLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char))))

Methods

from :: TyLit -> Rep TyLit x Source #

to :: Rep TyLit x -> TyLit Source #

Show TyLit Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> TyLit -> ShowS Source # show :: TyLit -> String Source # showList :: [TyLit] -> ShowS Source #
Ppr TyLit Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: TyLit -> Doc Source # ppr_list :: [TyLit] -> Doc Source #
Eq TyLit Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: TyLit -> TyLit -> Bool Source # (/=) :: TyLit -> TyLit -> Bool Source #
Ord TyLit Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: TyLit -> TyLit -> Ordering Source # (<) :: TyLit -> TyLit -> Bool Source # (<=) :: TyLit -> TyLit -> Bool Source # (>) :: TyLit -> TyLit -> Bool Source # (>=) :: TyLit -> TyLit -> Bool Source # max :: TyLit -> TyLit -> TyLit Source # min :: TyLit -> TyLit -> TyLit Source #
type Rep TyLit Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep TyLit = D1 ('MetaData "TyLit" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NumTyLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons "StrTyLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons "CharTyLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char))))

data FamilyResultSig Source #

Type family result signature

Constructors

NoSig | no signature

KindSig Kind

    k

TyVarSig (TyVarBndr ())

    = r, = (r :: k)

#### Instances

Instances details

Binary FamilyResultSig Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: FamilyResultSig -> Put Source # get :: Get FamilyResultSig Source # putList :: [FamilyResultSig] -> Put Source #
Data FamilyResultSig Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FamilyResultSig -> c FamilyResultSig Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FamilyResultSig Source #

toConstr :: FamilyResultSig -> Constr Source #

dataTypeOf :: FamilyResultSig -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FamilyResultSig) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FamilyResultSig) Source #

gmapT :: (forall b. Data b => b -> b) -> FamilyResultSig -> FamilyResultSig Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FamilyResultSig -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FamilyResultSig -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> FamilyResultSig -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> FamilyResultSig -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> FamilyResultSig -> m FamilyResultSig Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FamilyResultSig -> m FamilyResultSig Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FamilyResultSig -> m FamilyResultSig Source #

Generic FamilyResultSig Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep FamilyResultSig |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep FamilyResultSig = D1 ('MetaData "FamilyResultSig" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NoSig" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "KindSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "TyVarSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TyVarBndr ())))))

Methods

from :: FamilyResultSig -> Rep FamilyResultSig x Source #

to :: Rep FamilyResultSig x -> FamilyResultSig Source #

Show FamilyResultSig Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> FamilyResultSig -> ShowS Source # show :: FamilyResultSig -> String Source # showList :: [FamilyResultSig] -> ShowS Source #
Ppr FamilyResultSig Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: FamilyResultSig -> Doc Source # ppr_list :: [FamilyResultSig] -> Doc Source #
Eq FamilyResultSig Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: FamilyResultSig -> FamilyResultSig -> Bool Source # (/=) :: FamilyResultSig -> FamilyResultSig -> Bool Source #
Ord FamilyResultSig Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: FamilyResultSig -> FamilyResultSig -> Ordering Source #

(<) :: FamilyResultSig -> FamilyResultSig -> Bool Source #

(<=) :: FamilyResultSig -> FamilyResultSig -> Bool Source #

(>) :: FamilyResultSig -> FamilyResultSig -> Bool Source #

(>=) :: FamilyResultSig -> FamilyResultSig -> Bool Source #

max :: FamilyResultSig -> FamilyResultSig -> FamilyResultSig Source #

min :: FamilyResultSig -> FamilyResultSig -> FamilyResultSig Source #

type Rep FamilyResultSig Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep FamilyResultSig = D1 ('MetaData "FamilyResultSig" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NoSig" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "KindSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind)) :+: C1 ('MetaCons "TyVarSig" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TyVarBndr ())))))

data BndrVis Source #

Visibility of a type variable. See Inferred vs. specified type variables.

Constructors

BndrReq

    a

BndrInvis

    @a

#### Instances

Instances details

Binary BndrVis Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: BndrVis -> Put Source # get :: Get BndrVis Source # putList :: [BndrVis] -> Put Source #
Data BndrVis Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BndrVis -> c BndrVis Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BndrVis Source #

toConstr :: BndrVis -> Constr Source #

dataTypeOf :: BndrVis -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c BndrVis) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BndrVis) Source #

gmapT :: (forall b. Data b => b -> b) -> BndrVis -> BndrVis Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BndrVis -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BndrVis -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> BndrVis -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> BndrVis -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> BndrVis -> m BndrVis Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BndrVis -> m BndrVis Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BndrVis -> m BndrVis Source #

Generic BndrVis Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep BndrVis |
Instance details Defined in GHC.Internal.TH.Syntax type Rep BndrVis = D1 ('MetaData "BndrVis" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "BndrReq" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BndrInvis" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: BndrVis -> Rep BndrVis x Source #

to :: Rep BndrVis x -> BndrVis Source #

Show BndrVis Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> BndrVis -> ShowS Source # show :: BndrVis -> String Source # showList :: [BndrVis] -> ShowS Source #
PprFlag BndrVis Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods pprTyVarBndr :: TyVarBndr BndrVis -> Doc Source #
Eq BndrVis Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: BndrVis -> BndrVis -> Bool Source # (/=) :: BndrVis -> BndrVis -> Bool Source #
Ord BndrVis Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: BndrVis -> BndrVis -> Ordering Source # (<) :: BndrVis -> BndrVis -> Bool Source # (<=) :: BndrVis -> BndrVis -> Bool Source # (>) :: BndrVis -> BndrVis -> Bool Source # (>=) :: BndrVis -> BndrVis -> Bool Source # max :: BndrVis -> BndrVis -> BndrVis Source # min :: BndrVis -> BndrVis -> BndrVis Source #
type Rep BndrVis Source # |
Instance details Defined in GHC.Internal.TH.Syntax type Rep BndrVis = D1 ('MetaData "BndrVis" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "BndrReq" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "BndrInvis" 'PrefixI 'False) (U1 :: Type -> Type))

data TyVarBndr flag Source #

The `flag` type parameter is instantiated to one of the following types:

- `Specificity` (examples: `ForallC`, `ForallT`)
- `BndrVis` (examples: `DataD`, `ClassD`, etc.)
- `()`, a catch-all type for other forms of binders, including `ForallVisT`, `DataInstD`, `RuleP`, and `TyVarSig`

Constructors

PlainTV Name flag

    a

KindedTV Name flag Kind

    (a :: k)

#### Instances

Instances details

Functor TyVarBndr Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods fmap :: (a -> b) -> TyVarBndr a -> TyVarBndr b Source # (<$) :: a -> TyVarBndr b -> TyVarBndr a Source #
Foldable TyVarBndr Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

fold :: Monoid m => TyVarBndr m -> m Source #

foldMap :: Monoid m => (a -> m) -> TyVarBndr a -> m Source #

foldMap' :: Monoid m => (a -> m) -> TyVarBndr a -> m Source #

foldr :: (a -> b -> b) -> b -> TyVarBndr a -> b Source #

foldr' :: (a -> b -> b) -> b -> TyVarBndr a -> b Source #

foldl :: (b -> a -> b) -> b -> TyVarBndr a -> b Source #

foldl' :: (b -> a -> b) -> b -> TyVarBndr a -> b Source #

foldr1 :: (a -> a -> a) -> TyVarBndr a -> a Source #

foldl1 :: (a -> a -> a) -> TyVarBndr a -> a Source #

toList :: TyVarBndr a -> [a] Source #

null :: TyVarBndr a -> Bool Source #

length :: TyVarBndr a -> Int Source #

elem :: Eq a => a -> TyVarBndr a -> Bool Source #

maximum :: Ord a => TyVarBndr a -> a Source #

minimum :: Ord a => TyVarBndr a -> a Source #

sum :: Num a => TyVarBndr a -> a Source #

product :: Num a => TyVarBndr a -> a Source #

Traversable TyVarBndr Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods traverse :: Applicative f => (a -> f b) -> TyVarBndr a -> f (TyVarBndr b) Source # sequenceA :: Applicative f => TyVarBndr (f a) -> f (TyVarBndr a) Source # mapM :: Monad m => (a -> m b) -> TyVarBndr a -> m (TyVarBndr b) Source # sequence :: Monad m => TyVarBndr (m a) -> m (TyVarBndr a) Source #
Binary flag => Binary (TyVarBndr flag) Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: TyVarBndr flag -> Put Source # get :: Get (TyVarBndr flag) Source # putList :: [TyVarBndr flag] -> Put Source #
Data flag => Data (TyVarBndr flag) Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TyVarBndr flag -> c (TyVarBndr flag) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (TyVarBndr flag) Source #

toConstr :: TyVarBndr flag -> Constr Source #

dataTypeOf :: TyVarBndr flag -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (TyVarBndr flag)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (TyVarBndr flag)) Source #

gmapT :: (forall b. Data b => b -> b) -> TyVarBndr flag -> TyVarBndr flag Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TyVarBndr flag -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TyVarBndr flag -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> TyVarBndr flag -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TyVarBndr flag -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TyVarBndr flag -> m (TyVarBndr flag) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TyVarBndr flag -> m (TyVarBndr flag) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TyVarBndr flag -> m (TyVarBndr flag) Source #

Generic (TyVarBndr flag) Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep (TyVarBndr flag) |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep (TyVarBndr flag) = D1 ('MetaData "TyVarBndr" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "PlainTV" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 flag)) :+: C1 ('MetaCons "KindedTV" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 flag) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind))))

Methods

from :: TyVarBndr flag -> Rep (TyVarBndr flag) x Source #

to :: Rep (TyVarBndr flag) x -> TyVarBndr flag Source #

Show flag => Show (TyVarBndr flag) Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> TyVarBndr flag -> ShowS Source # show :: TyVarBndr flag -> String Source # showList :: [TyVarBndr flag] -> ShowS Source #
PprFlag flag => Ppr (TyVarBndr flag) Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: TyVarBndr flag -> Doc Source # ppr_list :: [TyVarBndr flag] -> Doc Source #
Eq flag => Eq (TyVarBndr flag) Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: TyVarBndr flag -> TyVarBndr flag -> Bool Source # (/=) :: TyVarBndr flag -> TyVarBndr flag -> Bool Source #
Ord flag => Ord (TyVarBndr flag) Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: TyVarBndr flag -> TyVarBndr flag -> Ordering Source #

(<) :: TyVarBndr flag -> TyVarBndr flag -> Bool Source #

(<=) :: TyVarBndr flag -> TyVarBndr flag -> Bool Source #

(>) :: TyVarBndr flag -> TyVarBndr flag -> Bool Source #

(>=) :: TyVarBndr flag -> TyVarBndr flag -> Bool Source #

max :: TyVarBndr flag -> TyVarBndr flag -> TyVarBndr flag Source #

min :: TyVarBndr flag -> TyVarBndr flag -> TyVarBndr flag Source #

type Rep (TyVarBndr flag) Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep (TyVarBndr flag) = D1 ('MetaData "TyVarBndr" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "PlainTV" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 flag)) :+: C1 ('MetaCons "KindedTV" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 flag) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Kind))))

data Specificity Source #

The specificity of a type variable in a `forall ...`.

Constructors

SpecifiedSpec

    a

InferredSpec

    {a}

#### Instances

Instances details

Binary Specificity Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Specificity -> Put Source # get :: Get Specificity Source # putList :: [Specificity] -> Put Source #
Data Specificity Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Specificity -> c Specificity Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Specificity Source #

toConstr :: Specificity -> Constr Source #

dataTypeOf :: Specificity -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Specificity) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Specificity) Source #

gmapT :: (forall b. Data b => b -> b) -> Specificity -> Specificity Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Specificity -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Specificity -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Specificity -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Specificity -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Specificity -> m Specificity Source #

Generic Specificity Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Specificity |
Instance details Defined in GHC.Internal.TH.Syntax type Rep Specificity = D1 ('MetaData "Specificity" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "SpecifiedSpec" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InferredSpec" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Specificity -> Rep Specificity x Source #

to :: Rep Specificity x -> Specificity Source #

Show Specificity Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Specificity -> ShowS Source # show :: Specificity -> String Source # showList :: [Specificity] -> ShowS Source #
PprFlag Specificity Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods pprTyVarBndr :: TyVarBndr Specificity -> Doc Source #
Eq Specificity Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Specificity -> Specificity -> Bool Source # (/=) :: Specificity -> Specificity -> Bool Source #
Ord Specificity Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: Specificity -> Specificity -> Ordering Source #

(<) :: Specificity -> Specificity -> Bool Source #

(<=) :: Specificity -> Specificity -> Bool Source #

(>) :: Specificity -> Specificity -> Bool Source #

(>=) :: Specificity -> Specificity -> Bool Source #

max :: Specificity -> Specificity -> Specificity Source #

min :: Specificity -> Specificity -> Specificity Source #

type Rep Specificity Source # |
Instance details Defined in GHC.Internal.TH.Syntax type Rep Specificity = D1 ('MetaData "Specificity" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "SpecifiedSpec" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InferredSpec" 'PrefixI 'False) (U1 :: Type -> Type))

data PatSynArgs Source #

A pattern synonym's argument type.

Constructors

PrefixPatSyn [Name]

    pattern P {x y z} = p

InfixPatSyn Name Name

    pattern {x P y} = p

RecordPatSyn [Name]

    pattern P { {x,y,z} } = p

#### Instances

Instances details

Binary PatSynArgs Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: PatSynArgs -> Put Source # get :: Get PatSynArgs Source # putList :: [PatSynArgs] -> Put Source #
Data PatSynArgs Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PatSynArgs -> c PatSynArgs Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PatSynArgs Source #

toConstr :: PatSynArgs -> Constr Source #

dataTypeOf :: PatSynArgs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PatSynArgs) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PatSynArgs) Source #

gmapT :: (forall b. Data b => b -> b) -> PatSynArgs -> PatSynArgs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PatSynArgs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PatSynArgs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> PatSynArgs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PatSynArgs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PatSynArgs -> m PatSynArgs Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PatSynArgs -> m PatSynArgs Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PatSynArgs -> m PatSynArgs Source #

Generic PatSynArgs Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep PatSynArgs |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep PatSynArgs = D1 ('MetaData "PatSynArgs" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "PrefixPatSyn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])) :+: (C1 ('MetaCons "InfixPatSyn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "RecordPatSyn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]))))

Methods

from :: PatSynArgs -> Rep PatSynArgs x Source #

to :: Rep PatSynArgs x -> PatSynArgs Source #

Show PatSynArgs Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> PatSynArgs -> ShowS Source # show :: PatSynArgs -> String Source # showList :: [PatSynArgs] -> ShowS Source #
Ppr PatSynArgs Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: PatSynArgs -> Doc Source # ppr_list :: [PatSynArgs] -> Doc Source #
Eq PatSynArgs Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: PatSynArgs -> PatSynArgs -> Bool Source # (/=) :: PatSynArgs -> PatSynArgs -> Bool Source #
Ord PatSynArgs Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: PatSynArgs -> PatSynArgs -> Ordering Source #

(<) :: PatSynArgs -> PatSynArgs -> Bool Source #

(<=) :: PatSynArgs -> PatSynArgs -> Bool Source #

(>) :: PatSynArgs -> PatSynArgs -> Bool Source #

(>=) :: PatSynArgs -> PatSynArgs -> Bool Source #

max :: PatSynArgs -> PatSynArgs -> PatSynArgs Source #

min :: PatSynArgs -> PatSynArgs -> PatSynArgs Source #

type Rep PatSynArgs Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep PatSynArgs = D1 ('MetaData "PatSynArgs" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "PrefixPatSyn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name])) :+: (C1 ('MetaCons "InfixPatSyn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "RecordPatSyn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]))))

data PatSynDir Source #

A pattern synonym's directionality.

Constructors

Unidir

    pattern P x {<-} p

ImplBidir

    pattern P x {=} p

ExplBidir [Clause]

    pattern P x {<-} p where P x = e

#### Instances

Instances details

Binary PatSynDir Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: PatSynDir -> Put Source # get :: Get PatSynDir Source # putList :: [PatSynDir] -> Put Source #
Data PatSynDir Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PatSynDir -> c PatSynDir Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PatSynDir Source #

toConstr :: PatSynDir -> Constr Source #

dataTypeOf :: PatSynDir -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PatSynDir) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PatSynDir) Source #

gmapT :: (forall b. Data b => b -> b) -> PatSynDir -> PatSynDir Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PatSynDir -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PatSynDir -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> PatSynDir -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PatSynDir -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PatSynDir -> m PatSynDir Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PatSynDir -> m PatSynDir Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PatSynDir -> m PatSynDir Source #

Generic PatSynDir Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep PatSynDir |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep PatSynDir = D1 ('MetaData "PatSynDir" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Unidir" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ImplBidir" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExplBidir" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause]))))

Methods

from :: PatSynDir -> Rep PatSynDir x Source #

to :: Rep PatSynDir x -> PatSynDir Source #

Show PatSynDir Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> PatSynDir -> ShowS Source # show :: PatSynDir -> String Source # showList :: [PatSynDir] -> ShowS Source #
Ppr PatSynDir Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: PatSynDir -> Doc Source # ppr_list :: [PatSynDir] -> Doc Source #
Eq PatSynDir Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: PatSynDir -> PatSynDir -> Bool Source # (/=) :: PatSynDir -> PatSynDir -> Bool Source #
Ord PatSynDir Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: PatSynDir -> PatSynDir -> Ordering Source #

(<) :: PatSynDir -> PatSynDir -> Bool Source #

(<=) :: PatSynDir -> PatSynDir -> Bool Source #

(>) :: PatSynDir -> PatSynDir -> Bool Source #

(>=) :: PatSynDir -> PatSynDir -> Bool Source #

max :: PatSynDir -> PatSynDir -> PatSynDir Source #

min :: PatSynDir -> PatSynDir -> PatSynDir Source #

type Rep PatSynDir Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep PatSynDir = D1 ('MetaData "PatSynDir" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Unidir" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ImplBidir" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExplBidir" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Clause]))))

type VarStrictType = VarBangType Source #

As of `template-haskell-2.11.0.0`, `VarStrictType` has been replaced by `VarBangType`.

type StrictType = BangType Source #

As of `template-haskell-2.11.0.0`, `StrictType` has been replaced by `BangType`.

data Bang Source #

Strictness information in a data constructor's argument.

Constructors

Bang SourceUnpackedness SourceStrictness

    C { {-# UNPACK #-} !}a

#### Instances

Instances details

Binary Bang Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Bang -> Put Source # get :: Get Bang Source # putList :: [Bang] -> Put Source #
Data Bang Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Bang -> c Bang Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Bang Source #

toConstr :: Bang -> Constr Source #

dataTypeOf :: Bang -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Bang) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Bang) Source #

gmapT :: (forall b. Data b => b -> b) -> Bang -> Bang Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Bang -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Bang -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Bang -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Bang -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Bang -> m Bang Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Bang -> m Bang Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Bang -> m Bang Source #

Generic Bang Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Bang |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Bang = D1 ('MetaData "Bang" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Bang" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceUnpackedness) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceStrictness)))

Methods

from :: Bang -> Rep Bang x Source #

to :: Rep Bang x -> Bang Source #

Show Bang Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Bang -> ShowS Source # show :: Bang -> String Source # showList :: [Bang] -> ShowS Source #
Ppr Bang Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Bang -> Doc Source # ppr_list :: [Bang] -> Doc Source #
Eq Bang Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Bang -> Bang -> Bool Source # (/=) :: Bang -> Bang -> Bool Source #
Ord Bang Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Bang -> Bang -> Ordering Source # (<) :: Bang -> Bang -> Bool Source # (<=) :: Bang -> Bang -> Bool Source # (>) :: Bang -> Bang -> Bool Source # (>=) :: Bang -> Bang -> Bool Source # max :: Bang -> Bang -> Bang Source # min :: Bang -> Bang -> Bang Source #
type Rep Bang Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Bang = D1 ('MetaData "Bang" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Bang" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceUnpackedness) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceStrictness)))

type Cxt Source #

Arguments

= [Pred]

    (Eq a, Ord b)

A context, as found on the left side of a `=>` in a type.

data AnnTarget Source #

The target of an `ANN` pragma

Constructors

ModuleAnnotation

    {-# ANN {module} ... #-}

TypeAnnotation Name

    {-# ANN type {name} ... #-}

ValueAnnotation Name

    {-# ANN {name} ... #-}

#### Instances

Instances details

Binary AnnTarget Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: AnnTarget -> Put Source # get :: Get AnnTarget Source # putList :: [AnnTarget] -> Put Source #
Data AnnTarget Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnTarget -> c AnnTarget Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnTarget Source #

toConstr :: AnnTarget -> Constr Source #

dataTypeOf :: AnnTarget -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnTarget) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnTarget) Source #

gmapT :: (forall b. Data b => b -> b) -> AnnTarget -> AnnTarget Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnTarget -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnTarget -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> AnnTarget -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnTarget -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnTarget -> m AnnTarget Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnTarget -> m AnnTarget Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnTarget -> m AnnTarget Source #

Generic AnnTarget Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep AnnTarget |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep AnnTarget = D1 ('MetaData "AnnTarget" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "ModuleAnnotation" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TypeAnnotation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "ValueAnnotation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))))

Methods

from :: AnnTarget -> Rep AnnTarget x Source #

to :: Rep AnnTarget x -> AnnTarget Source #

Show AnnTarget Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> AnnTarget -> ShowS Source # show :: AnnTarget -> String Source # showList :: [AnnTarget] -> ShowS Source #
Eq AnnTarget Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: AnnTarget -> AnnTarget -> Bool Source # (/=) :: AnnTarget -> AnnTarget -> Bool Source #
Ord AnnTarget Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: AnnTarget -> AnnTarget -> Ordering Source #

(<) :: AnnTarget -> AnnTarget -> Bool Source #

(<=) :: AnnTarget -> AnnTarget -> Bool Source #

(>) :: AnnTarget -> AnnTarget -> Bool Source #

(>=) :: AnnTarget -> AnnTarget -> Bool Source #

max :: AnnTarget -> AnnTarget -> AnnTarget Source #

min :: AnnTarget -> AnnTarget -> AnnTarget Source #

type Rep AnnTarget Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep AnnTarget = D1 ('MetaData "AnnTarget" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "ModuleAnnotation" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "TypeAnnotation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)) :+: C1 ('MetaCons "ValueAnnotation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))))

data Pragma Source #

Constructors

InlineP Name Inline RuleMatch Phases | `{ {-# [inline] [rule match] [phases] [phases] name #-} }`. See `Inline` and `RuleMatch`.

OpaqueP Name

    { {-# OPAQUE T #-} }

SpecialiseP Name Type (Maybe Inline) Phases

    { {-# SPECIALISE [INLINE] [phases] T #-} }

SpecialiseInstP Type

    { {-# SPECIALISE instance I #-} }

RuleP String (Maybe [TyVarBndr ()]) [RuleBndr] Exp Exp Phases

    { {-# RULES "name" [phases] [forall t_1 ... t_i]. [forall b_1 ... b_j] rules... e_1 = e_2 #-} }

AnnP AnnTarget Exp

    { {-# ANN target exp #-} }

LineP Int String

    { {-# LINE n "file name" #-} }

CompleteP [Name] (Maybe Name)

    { {-# COMPLETE C_1, ..., C_i [ :: T ] #-} }

SCCP Name (Maybe String)

    { {-# SCC fun "optional_name" #-} }

#### Instances

Instances details

Binary Pragma Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Pragma -> Put Source # get :: Get Pragma Source # putList :: [Pragma] -> Put Source #
Data Pragma Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pragma -> c Pragma Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pragma Source #

toConstr :: Pragma -> Constr Source #

dataTypeOf :: Pragma -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pragma) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pragma) Source #

gmapT :: (forall b. Data b => b -> b) -> Pragma -> Pragma Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pragma -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pragma -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Pragma -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Pragma -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pragma -> m Pragma Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pragma -> m Pragma Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pragma -> m Pragma Source #

Generic Pragma Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Pragma |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Pragma = D1 ('MetaData "Pragma" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (((C1 ('MetaCons "InlineP" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Inline)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RuleMatch) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases))) :+: C1 ('MetaCons "OpaqueP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "SpecialiseP" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Inline)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases))) :+: C1 ('MetaCons "SpecialiseInstP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons "RuleP" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RuleBndr]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases)))) :+: C1 ('MetaCons "AnnP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AnnTarget) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons "LineP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: (C1 ('MetaCons "CompleteP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Name))) :+: C1 ('MetaCons "SCCP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))))))

Methods

from :: Pragma -> Rep Pragma x Source #

to :: Rep Pragma x -> Pragma Source #

Show Pragma Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Pragma -> ShowS Source # show :: Pragma -> String Source # showList :: [Pragma] -> ShowS Source #
Ppr Pragma Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Pragma -> Doc Source # ppr_list :: [Pragma] -> Doc Source #
Eq Pragma Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Pragma -> Pragma -> Bool Source # (/=) :: Pragma -> Pragma -> Bool Source #
Ord Pragma Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Pragma -> Pragma -> Ordering Source # (<) :: Pragma -> Pragma -> Bool Source # (<=) :: Pragma -> Pragma -> Bool Source # (>) :: Pragma -> Pragma -> Bool Source # (>=) :: Pragma -> Pragma -> Bool Source # max :: Pragma -> Pragma -> Pragma Source # min :: Pragma -> Pragma -> Pragma Source #
type Rep Pragma Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Pragma = D1 ('MetaData "Pragma" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (((C1 ('MetaCons "InlineP" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Inline)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RuleMatch) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases))) :+: C1 ('MetaCons "OpaqueP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name))) :+: (C1 ('MetaCons "SpecialiseP" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Inline)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases))) :+: C1 ('MetaCons "SpecialiseInstP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)))) :+: ((C1 ('MetaCons "RuleP" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [TyVarBndr ()])) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RuleBndr]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Phases)))) :+: C1 ('MetaCons "AnnP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AnnTarget) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons "LineP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: (C1 ('MetaCons "CompleteP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Name]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Name))) :+: C1 ('MetaCons "SCCP" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))))))

data Safety Source #

A safety level, as in a `Foreign` declaration.

Constructors

Unsafe |
Safe |
Interruptible |

#### Instances

Instances details

Binary Safety Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Safety -> Put Source # get :: Get Safety Source # putList :: [Safety] -> Put Source #
Data Safety Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Safety -> c Safety Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Safety Source #

toConstr :: Safety -> Constr Source #

dataTypeOf :: Safety -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Safety) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Safety) Source #

gmapT :: (forall b. Data b => b -> b) -> Safety -> Safety Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Safety -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Safety -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Safety -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Safety -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Safety -> m Safety Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Safety -> m Safety Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Safety -> m Safety Source #

Generic Safety Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Safety |
Instance details Defined in GHC.Internal.TH.Syntax type Rep Safety = D1 ('MetaData "Safety" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Unsafe" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Safe" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Interruptible" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: Safety -> Rep Safety x Source #

to :: Rep Safety x -> Safety Source #

Show Safety Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Safety -> ShowS Source # show :: Safety -> String Source # showList :: [Safety] -> ShowS Source #
Eq Safety Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Safety -> Safety -> Bool Source # (/=) :: Safety -> Safety -> Bool Source #
Ord Safety Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Safety -> Safety -> Ordering Source # (<) :: Safety -> Safety -> Bool Source # (<=) :: Safety -> Safety -> Bool Source # (>) :: Safety -> Safety -> Bool Source # (>=) :: Safety -> Safety -> Bool Source # max :: Safety -> Safety -> Safety Source # min :: Safety -> Safety -> Safety Source #
type Rep Safety Source # |
Instance details Defined in GHC.Internal.TH.Syntax type Rep Safety = D1 ('MetaData "Safety" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Unsafe" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Safe" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Interruptible" 'PrefixI 'False) (U1 :: Type -> Type)))

data Callconv Source #

A calling convention identifier, as in a `Foreign` declaration.

Constructors

CCall |
StdCall |
CApi |
Prim |
JavaScript |

#### Instances

Instances details

Binary Callconv Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Callconv -> Put Source # get :: Get Callconv Source # putList :: [Callconv] -> Put Source #
Data Callconv Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Callconv -> c Callconv Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Callconv Source #

toConstr :: Callconv -> Constr Source #

dataTypeOf :: Callconv -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Callconv) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Callconv) Source #

gmapT :: (forall b. Data b => b -> b) -> Callconv -> Callconv Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Callconv -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Callconv -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Callconv -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Callconv -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Callconv -> m Callconv Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Callconv -> m Callconv Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Callconv -> m Callconv Source #

Generic Callconv Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Callconv |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Callconv = D1 ('MetaData "Callconv" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "CCall" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StdCall" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CApi" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Prim" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JavaScript" 'PrefixI 'False) (U1 :: Type -> Type))))

Methods

from :: Callconv -> Rep Callconv x Source #

to :: Rep Callconv x -> Callconv Source #

Show Callconv Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Callconv -> ShowS Source # show :: Callconv -> String Source # showList :: [Callconv] -> ShowS Source #
Eq Callconv Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Callconv -> Callconv -> Bool Source # (/=) :: Callconv -> Callconv -> Bool Source #
Ord Callconv Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Callconv -> Callconv -> Ordering Source # (<) :: Callconv -> Callconv -> Bool Source # (<=) :: Callconv -> Callconv -> Bool Source # (>) :: Callconv -> Callconv -> Bool Source # (>=) :: Callconv -> Callconv -> Bool Source # max :: Callconv -> Callconv -> Callconv Source # min :: Callconv -> Callconv -> Callconv Source #
type Rep Callconv Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Callconv = D1 ('MetaData "Callconv" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "CCall" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "StdCall" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CApi" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Prim" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "JavaScript" 'PrefixI 'False) (U1 :: Type -> Type))))

data TypeFamilyHead Source #

Common elements of `OpenTypeFamilyD` and `ClosedTypeFamilyD`. By analogy with "head" for type classes and type class instances as defined in Type classes: an exploration of the design space, the `TypeFamilyHead` is defined to be the elements of the declaration between `type family` and `where`.

Constructors

TypeFamilyHead Name [TyVarBndr BndrVis] FamilyResultSig (Maybe InjectivityAnn) |

#### Instances

Instances details

Binary TypeFamilyHead Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: TypeFamilyHead -> Put Source # get :: Get TypeFamilyHead Source # putList :: [TypeFamilyHead] -> Put Source #
Data TypeFamilyHead Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeFamilyHead -> c TypeFamilyHead Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TypeFamilyHead Source #

toConstr :: TypeFamilyHead -> Constr Source #

dataTypeOf :: TypeFamilyHead -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TypeFamilyHead) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TypeFamilyHead) Source #

gmapT :: (forall b. Data b => b -> b) -> TypeFamilyHead -> TypeFamilyHead Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeFamilyHead -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeFamilyHead -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> TypeFamilyHead -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeFamilyHead -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeFamilyHead -> m TypeFamilyHead Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeFamilyHead -> m TypeFamilyHead Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeFamilyHead -> m TypeFamilyHead Source #

Generic TypeFamilyHead Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep TypeFamilyHead |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep TypeFamilyHead = D1 ('MetaData "TypeFamilyHead" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "TypeFamilyHead" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FamilyResultSig) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe InjectivityAnn)))))

Methods

from :: TypeFamilyHead -> Rep TypeFamilyHead x Source #

to :: Rep TypeFamilyHead x -> TypeFamilyHead Source #

Show TypeFamilyHead Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> TypeFamilyHead -> ShowS Source # show :: TypeFamilyHead -> String Source # showList :: [TypeFamilyHead] -> ShowS Source #
Eq TypeFamilyHead Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: TypeFamilyHead -> TypeFamilyHead -> Bool Source # (/=) :: TypeFamilyHead -> TypeFamilyHead -> Bool Source #
Ord TypeFamilyHead Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: TypeFamilyHead -> TypeFamilyHead -> Ordering Source #

(<) :: TypeFamilyHead -> TypeFamilyHead -> Bool Source #

(<=) :: TypeFamilyHead -> TypeFamilyHead -> Bool Source #

(>) :: TypeFamilyHead -> TypeFamilyHead -> Bool Source #

(>=) :: TypeFamilyHead -> TypeFamilyHead -> Bool Source #

max :: TypeFamilyHead -> TypeFamilyHead -> TypeFamilyHead Source #

min :: TypeFamilyHead -> TypeFamilyHead -> TypeFamilyHead Source #

type Rep TypeFamilyHead Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep TypeFamilyHead = D1 ('MetaData "TypeFamilyHead" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "TypeFamilyHead" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TyVarBndr BndrVis])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FamilyResultSig) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe InjectivityAnn)))))

type PatSynType = Type Source #

A pattern synonym's type. Note that a pattern synonym's fully specified type has a peculiar shape coming with two forall quantifiers and two constraint contexts. For example, consider the pattern synonym

    pattern P x1 x2 ... xn = <some-pattern>

P's complete type is of the following form

    pattern P :: forall universals.   required constraints
              => forall existentials. provided constraints
              => t1 -> t2 -> ... -> tn -> t

consisting of four parts:

1. the (possibly empty lists of) universally quantified type variables and required constraints on them.
2. the (possibly empty lists of) existentially quantified type variables and the provided constraints on them.
3. the types `t1`, `t2`, .., `tn` of `x1`, `x2`, .., `xn`, respectively
4. the type `t` of `<some-pattern>`, mentioning only universals.

Pattern synonym types interact with TH when (a) reifying a pattern synonym, (b) pretty printing, or (c) specifying a pattern synonym's type signature explicitly:

- Reification always returns a pattern synonym's fully specified type in abstract syntax.
- Pretty printing via `pprPatSynType` abbreviates a pattern synonym's type unambiguously in concrete syntax: The rule of thumb is to print initial empty universals and the required context as `() =>`, if existentials and a provided context follow. If only universals and their required context, but no existentials are specified, only the universals and their required context are printed. If both or none are specified, so both (or none) are printed.
- When specifying a pattern synonym's type explicitly with `PatSynSigD` either one of the universals, the existentials, or their contexts may be left empty.

See the GHC user's guide for more information on pattern synonyms and their types: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#pattern-synonyms.

data Range Source #

A list/enum range expression.

Constructors

FromR Exp

    [n ..]

FromThenR Exp Exp

    [n, m ..]

FromToR Exp Exp

    [n .. m]

FromThenToR Exp Exp Exp

    [n, m .. k]

#### Instances

Instances details

Binary Range Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Range -> Put Source # get :: Get Range Source # putList :: [Range] -> Put Source #
Data Range Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Range -> c Range Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Range Source #

toConstr :: Range -> Constr Source #

dataTypeOf :: Range -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Range) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Range) Source #

gmapT :: (forall b. Data b => b -> b) -> Range -> Range Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Range -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Range -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Range -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Range -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Range -> m Range Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Range -> m Range Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Range -> m Range Source #

Generic Range Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Range |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Range = D1 ('MetaData "Range" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "FromR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "FromThenR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons "FromToR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "FromThenToR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))

Methods

from :: Range -> Rep Range x Source #

to :: Rep Range x -> Range Source #

Show Range Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Range -> ShowS Source # show :: Range -> String Source # showList :: [Range] -> ShowS Source #
Ppr Range Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Range -> Doc Source # ppr_list :: [Range] -> Doc Source #
Eq Range Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Range -> Range -> Bool Source # (/=) :: Range -> Range -> Bool Source #
Ord Range Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Range -> Range -> Ordering Source # (<) :: Range -> Range -> Bool Source # (<=) :: Range -> Range -> Bool Source # (>) :: Range -> Range -> Bool Source # (>=) :: Range -> Range -> Bool Source # max :: Range -> Range -> Range Source # min :: Range -> Range -> Range Source #
type Rep Range Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Range = D1 ('MetaData "Range" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "FromR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "FromThenR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp))) :+: (C1 ('MetaCons "FromToR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "FromThenToR" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))))

data Guard Source #

A single guard.

Constructors

NormalG Exp

    f x { | odd x } = x

PatG [Stmt]

    f x { | Just y <- x, Just z <- y } = z

#### Instances

Instances details

Binary Guard Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Guard -> Put Source # get :: Get Guard Source # putList :: [Guard] -> Put Source #
Data Guard Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Guard -> c Guard Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Guard Source #

toConstr :: Guard -> Constr Source #

dataTypeOf :: Guard -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Guard) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Guard) Source #

gmapT :: (forall b. Data b => b -> b) -> Guard -> Guard Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Guard -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Guard -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Guard -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Guard -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Guard -> m Guard Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Guard -> m Guard Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Guard -> m Guard Source #

Generic Guard Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Guard |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Guard = D1 ('MetaData "Guard" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NormalG" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "PatG" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt])))

Methods

from :: Guard -> Rep Guard x Source #

to :: Rep Guard x -> Guard Source #

Show Guard Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Guard -> ShowS Source # show :: Guard -> String Source # showList :: [Guard] -> ShowS Source #
Eq Guard Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Guard -> Guard -> Bool Source # (/=) :: Guard -> Guard -> Bool Source #
Ord Guard Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Guard -> Guard -> Ordering Source # (<) :: Guard -> Guard -> Bool Source # (<=) :: Guard -> Guard -> Bool Source # (>) :: Guard -> Guard -> Bool Source # (>=) :: Guard -> Guard -> Bool Source # max :: Guard -> Guard -> Guard Source # min :: Guard -> Guard -> Guard Source #
type Rep Guard Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Guard = D1 ('MetaData "Guard" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "NormalG" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)) :+: C1 ('MetaCons "PatG" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Stmt])))

data Body Source #

A potentially guarded expression, as in function definitions or case alternatives.

Constructors

GuardedB [(Guard, Exp)]

    f p { | e1 = e2
          | e3 = e4 }
     where ds

NormalB Exp

    f p { = e } where ds

#### Instances

Instances details

Binary Body Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Body -> Put Source # get :: Get Body Source # putList :: [Body] -> Put Source #
Data Body Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Body -> c Body Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Body Source #

toConstr :: Body -> Constr Source #

dataTypeOf :: Body -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Body) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Body) Source #

gmapT :: (forall b. Data b => b -> b) -> Body -> Body Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Body -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Body -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Body -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Body -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Body -> m Body Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Body -> m Body Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Body -> m Body Source #

Generic Body Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Body |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Body = D1 ('MetaData "Body" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "GuardedB" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Guard, Exp)])) :+: C1 ('MetaCons "NormalB" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))

Methods

from :: Body -> Rep Body x Source #

to :: Rep Body x -> Body Source #

Show Body Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Body -> ShowS Source # show :: Body -> String Source # showList :: [Body] -> ShowS Source #
Eq Body Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Body -> Body -> Bool Source # (/=) :: Body -> Body -> Bool Source #
Ord Body Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Body -> Body -> Ordering Source # (<) :: Body -> Body -> Bool Source # (<=) :: Body -> Body -> Bool Source # (>) :: Body -> Body -> Bool Source # (>=) :: Body -> Body -> Bool Source # max :: Body -> Body -> Body Source # min :: Body -> Body -> Body Source #
type Rep Body Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Body = D1 ('MetaData "Body" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "GuardedB" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Guard, Exp)])) :+: C1 ('MetaCons "NormalB" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Exp)))

data Bytes Source #

Raw bytes embedded into the binary.

Avoid using Bytes constructor directly as it is likely to change in the future. Use helpers such as `mkBytes` in Language.Haskell.TH.Lib instead.

Constructors

Bytes |

Fields

- bytesPtr :: ForeignPtr Word8

  Pointer to the data

- bytesOffset :: Word

  Offset from the pointer

- bytesSize :: Word

  Number of bytes

#### Instances

Instances details

Binary Bytes Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Bytes -> Put Source # get :: Get Bytes Source # putList :: [Bytes] -> Put Source #
Data Bytes Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Bytes -> c Bytes Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Bytes Source #

toConstr :: Bytes -> Constr Source #

dataTypeOf :: Bytes -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Bytes) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Bytes) Source #

gmapT :: (forall b. Data b => b -> b) -> Bytes -> Bytes Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Bytes -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Bytes -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Bytes -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Bytes -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Bytes -> m Bytes Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Bytes -> m Bytes Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Bytes -> m Bytes Source #

Generic Bytes Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Bytes |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Bytes = D1 ('MetaData "Bytes" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Bytes" 'PrefixI 'True) (S1 ('MetaSel ('Just "bytesPtr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ForeignPtr Word8)) :*: (S1 ('MetaSel ('Just "bytesOffset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just "bytesSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word))))

Methods

from :: Bytes -> Rep Bytes x Source #

to :: Rep Bytes x -> Bytes Source #

Show Bytes Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Bytes -> ShowS Source # show :: Bytes -> String Source # showList :: [Bytes] -> ShowS Source #
Eq Bytes Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Bytes -> Bytes -> Bool Source # (/=) :: Bytes -> Bytes -> Bool Source #
Ord Bytes Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Bytes -> Bytes -> Ordering Source # (<) :: Bytes -> Bytes -> Bool Source # (<=) :: Bytes -> Bytes -> Bool Source # (>) :: Bytes -> Bytes -> Bool Source # (>=) :: Bytes -> Bytes -> Bool Source # max :: Bytes -> Bytes -> Bytes Source # min :: Bytes -> Bytes -> Bytes Source #
type Rep Bytes Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Bytes = D1 ('MetaData "Bytes" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Bytes" 'PrefixI 'True) (S1 ('MetaSel ('Just "bytesPtr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ForeignPtr Word8)) :*: (S1 ('MetaSel ('Just "bytesOffset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word) :*: S1 ('MetaSel ('Just "bytesSize") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word))))

data Lit Source #

A Haskell literal. Note that the numeric types are all in terms of either `Integer` or `Rational`, regardless of the type they represent. The extra precision reflects the textual representation in source code.

Constructors

CharL Char

    'c'

StringL String

    "string"

IntegerL Integer | `123`. Used for overloaded and non-overloaded literals. We don't have a good way to represent non-overloaded literals at the moment. Maybe that doesn't matter?
RationalL Rational | `1.23`. See above comment on `IntegerL`.

IntPrimL Integer

    123#

WordPrimL Integer

    123##

FloatPrimL Rational

    1.23#

DoublePrimL Rational

    1.23##

StringPrimL [Word8] | `"string"#`. A primitive C-style string, type `Addr#`
BytesPrimL Bytes | Some raw bytes, type `Addr#`:

CharPrimL Char

    'c'#

#### Instances

Instances details

Binary Lit Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Lit -> Put Source # get :: Get Lit Source # putList :: [Lit] -> Put Source #
Data Lit Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Lit -> c Lit Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Lit Source #

toConstr :: Lit -> Constr Source #

dataTypeOf :: Lit -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Lit) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Lit) Source #

gmapT :: (forall b. Data b => b -> b) -> Lit -> Lit Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Lit -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Lit -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Lit -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Lit -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Lit -> m Lit Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Lit -> m Lit Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Lit -> m Lit Source #

Generic Lit Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Lit |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Lit = D1 ('MetaData "Lit" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (((C1 ('MetaCons "CharL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char)) :+: C1 ('MetaCons "StringL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :+: (C1 ('MetaCons "IntegerL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons "RationalL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)) :+: C1 ('MetaCons "IntPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))))) :+: ((C1 ('MetaCons "WordPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons "FloatPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)) :+: C1 ('MetaCons "DoublePrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))) :+: (C1 ('MetaCons "StringPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word8])) :+: (C1 ('MetaCons "BytesPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bytes)) :+: C1 ('MetaCons "CharPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char))))))

Methods

from :: Lit -> Rep Lit x Source #

to :: Rep Lit x -> Lit Source #

Show Lit Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Lit -> ShowS Source # show :: Lit -> String Source # showList :: [Lit] -> ShowS Source #
Ppr Lit Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Lit -> Doc Source # ppr_list :: [Lit] -> Doc Source #
Eq Lit Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Lit -> Lit -> Bool Source # (/=) :: Lit -> Lit -> Bool Source #
Ord Lit Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Lit -> Lit -> Ordering Source # (<) :: Lit -> Lit -> Bool Source # (<=) :: Lit -> Lit -> Bool Source # (>) :: Lit -> Lit -> Bool Source # (>=) :: Lit -> Lit -> Bool Source # max :: Lit -> Lit -> Lit Source # min :: Lit -> Lit -> Lit Source #
type Rep Lit Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Lit = D1 ('MetaData "Lit" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (((C1 ('MetaCons "CharL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char)) :+: C1 ('MetaCons "StringL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String))) :+: (C1 ('MetaCons "IntegerL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons "RationalL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)) :+: C1 ('MetaCons "IntPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))))) :+: ((C1 ('MetaCons "WordPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: (C1 ('MetaCons "FloatPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)) :+: C1 ('MetaCons "DoublePrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)))) :+: (C1 ('MetaCons "StringPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word8])) :+: (C1 ('MetaCons "BytesPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bytes)) :+: C1 ('MetaCons "CharPrimL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char))))))

data FixityDirection Source #

The associativity of an operator, as in an `infix` declaration.

Constructors

InfixL |
InfixR |
InfixN |

#### Instances

Instances details

Binary FixityDirection Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: FixityDirection -> Put Source # get :: Get FixityDirection Source # putList :: [FixityDirection] -> Put Source #
Data FixityDirection Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FixityDirection -> c FixityDirection Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FixityDirection Source #

toConstr :: FixityDirection -> Constr Source #

dataTypeOf :: FixityDirection -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FixityDirection) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FixityDirection) Source #

gmapT :: (forall b. Data b => b -> b) -> FixityDirection -> FixityDirection Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FixityDirection -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FixityDirection -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> FixityDirection -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> FixityDirection -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> FixityDirection -> m FixityDirection Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FixityDirection -> m FixityDirection Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FixityDirection -> m FixityDirection Source #

Generic FixityDirection Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep FixityDirection |
Instance details Defined in GHC.Internal.TH.Syntax type Rep FixityDirection = D1 ('MetaData "FixityDirection" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "InfixL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "InfixR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InfixN" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: FixityDirection -> Rep FixityDirection x Source #

to :: Rep FixityDirection x -> FixityDirection Source #

Show FixityDirection Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> FixityDirection -> ShowS Source # show :: FixityDirection -> String Source # showList :: [FixityDirection] -> ShowS Source #
Eq FixityDirection Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: FixityDirection -> FixityDirection -> Bool Source # (/=) :: FixityDirection -> FixityDirection -> Bool Source #
Ord FixityDirection Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: FixityDirection -> FixityDirection -> Ordering Source #

(<) :: FixityDirection -> FixityDirection -> Bool Source #

(<=) :: FixityDirection -> FixityDirection -> Bool Source #

(>) :: FixityDirection -> FixityDirection -> Bool Source #

(>=) :: FixityDirection -> FixityDirection -> Bool Source #

max :: FixityDirection -> FixityDirection -> FixityDirection Source #

min :: FixityDirection -> FixityDirection -> FixityDirection Source #

type Rep FixityDirection Source # |
Instance details Defined in GHC.Internal.TH.Syntax type Rep FixityDirection = D1 ('MetaData "FixityDirection" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "InfixL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "InfixR" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InfixN" 'PrefixI 'False) (U1 :: Type -> Type)))

type InstanceDec = Dec Source #

`InstanceDec` describes a single instance of a class or type function. It is just a `Dec`, but guaranteed to be one of the following:

- `InstanceD` (with empty `[`Dec`]`)
- `DataInstD` or `NewtypeInstD` (with empty derived `[`Name`]`)
- `TySynInstD`

type Arity = Int Source #

In `PrimTyConI`, arity of the type constructor

type SumArity = Int Source #

In `UnboxedSumE`, `UnboxedSumT`, and `UnboxedSumP`, the total number of `SumAlt`s. For example, `(#|#)` has a `SumArity` of 2.

type SumAlt = Int Source #

In `UnboxedSumE` and `UnboxedSumP`, the number associated with a particular data constructor. `SumAlt`s are one-indexed and should never exceed the value of its corresponding `SumArity`. For example:

- `(#_|#)` has `SumAlt` 1 (out of a total `SumArity` of 2)
- `(#|_#)` has `SumAlt` 2 (out of a total `SumArity` of 2)

type ParentName = Name Source #

In `ClassOpI` and `DataConI`, name of the parent class or type

data ModuleInfo Source #

Obtained from `reifyModule` in the `Q` Monad.

Constructors

ModuleInfo [Module] | Contains the import list of the module.

#### Instances

Instances details

Binary ModuleInfo Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: ModuleInfo -> Put Source # get :: Get ModuleInfo Source # putList :: [ModuleInfo] -> Put Source #
Data ModuleInfo Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ModuleInfo -> c ModuleInfo Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ModuleInfo Source #

toConstr :: ModuleInfo -> Constr Source #

dataTypeOf :: ModuleInfo -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ModuleInfo) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ModuleInfo) Source #

gmapT :: (forall b. Data b => b -> b) -> ModuleInfo -> ModuleInfo Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ModuleInfo -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ModuleInfo -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> ModuleInfo -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ModuleInfo -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ModuleInfo -> m ModuleInfo Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleInfo -> m ModuleInfo Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ModuleInfo -> m ModuleInfo Source #

Generic ModuleInfo Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep ModuleInfo |
Instance details Defined in GHC.Internal.TH.Syntax type Rep ModuleInfo = D1 ('MetaData "ModuleInfo" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "ModuleInfo" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Module])))

Methods

from :: ModuleInfo -> Rep ModuleInfo x Source #

to :: Rep ModuleInfo x -> ModuleInfo Source #

Show ModuleInfo Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> ModuleInfo -> ShowS Source # show :: ModuleInfo -> String Source # showList :: [ModuleInfo] -> ShowS Source #
Ppr ModuleInfo Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: ModuleInfo -> Doc Source # ppr_list :: [ModuleInfo] -> Doc Source #
Eq ModuleInfo Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: ModuleInfo -> ModuleInfo -> Bool Source # (/=) :: ModuleInfo -> ModuleInfo -> Bool Source #
Ord ModuleInfo Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: ModuleInfo -> ModuleInfo -> Ordering Source #

(<) :: ModuleInfo -> ModuleInfo -> Bool Source #

(<=) :: ModuleInfo -> ModuleInfo -> Bool Source #

(>) :: ModuleInfo -> ModuleInfo -> Bool Source #

(>=) :: ModuleInfo -> ModuleInfo -> Bool Source #

max :: ModuleInfo -> ModuleInfo -> ModuleInfo Source #

min :: ModuleInfo -> ModuleInfo -> ModuleInfo Source #

type Rep ModuleInfo Source # |
Instance details Defined in GHC.Internal.TH.Syntax type Rep ModuleInfo = D1 ('MetaData "ModuleInfo" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "ModuleInfo" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Module])))

data Info Source #

Obtained from `reify` in the `Q` Monad.

Constructors

ClassI Dec [InstanceDec] | A class, with a list of its visible instances
ClassOpI Name Type ParentName | A class method
TyConI Dec | A "plain" type constructor. "Fancier" type constructors are returned using `PrimTyConI` or `FamilyI` as appropriate. At present, this reified declaration will never have derived instances attached to it (if you wish to check for an instance, see `reifyInstances`).
FamilyI Dec [InstanceDec] | A type or data family, with a list of its visible instances. A closed type family is returned with 0 instances.
PrimTyConI Name Arity Unlifted | A "primitive" type constructor, which can't be expressed with a `Dec`. Examples: `(->)`, `Int#`.
DataConI Name Type ParentName | A data constructor
PatSynI Name PatSynType | A pattern synonym

VarI Name Type (Maybe Dec)

A "value" variable (as opposed to a type variable, see `TyVarI`).

The `Maybe Dec` field contains `Just` the declaration which defined the variable - including the RHS of the declaration - or else `Nothing`, in the case where the RHS is unavailable to the compiler.

At present, this value is always `Nothing`: returning the RHS has not yet been implemented and is tracked by GHC #14474.

TyVarI Name Type | A type variable. The `Type` field contains the type which underlies the variable. At present, this is always ``VarT` theName`, but future changes may permit refinement of this.

#### Instances

Instances details

Binary Info Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Info -> Put Source # get :: Get Info Source # putList :: [Info] -> Put Source #
Data Info Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Info -> c Info Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Info Source #

toConstr :: Info -> Constr Source #

dataTypeOf :: Info -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Info) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Info) Source #

gmapT :: (forall b. Data b => b -> b) -> Info -> Info Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Info -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Info -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Info -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Info -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Info -> m Info Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Info -> m Info Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Info -> m Info Source #

Generic Info Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Info |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Info = D1 ('MetaData "Info" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (((C1 ('MetaCons "ClassI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [InstanceDec])) :+: C1 ('MetaCons "ClassOpI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParentName)))) :+: (C1 ('MetaCons "TyConI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec)) :+: C1 ('MetaCons "FamilyI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [InstanceDec])))) :+: ((C1 ('MetaCons "PrimTyConI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Arity) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Unlifted))) :+: C1 ('MetaCons "DataConI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParentName)))) :+: (C1 ('MetaCons "PatSynI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynType)) :+: (C1 ('MetaCons "VarI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Dec)))) :+: C1 ('MetaCons "TyVarI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))))

Methods

from :: Info -> Rep Info x Source #

to :: Rep Info x -> Info Source #

Show Info Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Info -> ShowS Source # show :: Info -> String Source # showList :: [Info] -> ShowS Source #
Ppr Info Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Info -> Doc Source # ppr_list :: [Info] -> Doc Source #
Eq Info Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Info -> Info -> Bool Source # (/=) :: Info -> Info -> Bool Source #
Ord Info Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Info -> Info -> Ordering Source # (<) :: Info -> Info -> Bool Source # (<=) :: Info -> Info -> Bool Source # (>) :: Info -> Info -> Bool Source # (>=) :: Info -> Info -> Bool Source # max :: Info -> Info -> Info Source # min :: Info -> Info -> Info Source #
type Rep Info Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Info = D1 ('MetaData "Info" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (((C1 ('MetaCons "ClassI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [InstanceDec])) :+: C1 ('MetaCons "ClassOpI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParentName)))) :+: (C1 ('MetaCons "TyConI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec)) :+: C1 ('MetaCons "FamilyI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dec) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [InstanceDec])))) :+: ((C1 ('MetaCons "PrimTyConI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Arity) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Unlifted))) :+: C1 ('MetaCons "DataConI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ParentName)))) :+: (C1 ('MetaCons "PatSynI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PatSynType)) :+: (C1 ('MetaCons "VarI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Dec)))) :+: C1 ('MetaCons "TyVarI" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))))

type CharPos Source #

Arguments

= (Int, Int) | Line and character position

data Loc Source #

A location within a source file.

Constructors

Loc |

Fields

- loc_filename :: String
- loc_package :: String
- loc_module :: String
- loc_start :: CharPos
- loc_end :: CharPos

#### Instances

Instances details

Binary Loc Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: Loc -> Put Source # get :: Get Loc Source # putList :: [Loc] -> Put Source #
Data Loc Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Loc -> c Loc Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Loc Source #

toConstr :: Loc -> Constr Source #

dataTypeOf :: Loc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Loc) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Loc) Source #

gmapT :: (forall b. Data b => b -> b) -> Loc -> Loc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Loc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Loc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Loc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Loc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Loc -> m Loc Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Loc -> m Loc Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Loc -> m Loc Source #

Generic Loc Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep Loc |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Loc = D1 ('MetaData "Loc" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Loc" 'PrefixI 'True) ((S1 ('MetaSel ('Just "loc_filename") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "loc_package") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "loc_module") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "loc_start") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CharPos) :*: S1 ('MetaSel ('Just "loc_end") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CharPos)))))

Methods

from :: Loc -> Rep Loc x Source #

to :: Rep Loc x -> Loc Source #

Show Loc Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> Loc -> ShowS Source # show :: Loc -> String Source # showList :: [Loc] -> ShowS Source #
Ppr Loc Source # |
Instance details Defined in GHC.Internal.TH.Ppr Methods ppr :: Loc -> Doc Source # ppr_list :: [Loc] -> Doc Source #
Eq Loc Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: Loc -> Loc -> Bool Source # (/=) :: Loc -> Loc -> Bool Source #
Ord Loc Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: Loc -> Loc -> Ordering Source # (<) :: Loc -> Loc -> Bool Source # (<=) :: Loc -> Loc -> Bool Source # (>) :: Loc -> Loc -> Bool Source # (>=) :: Loc -> Loc -> Bool Source # max :: Loc -> Loc -> Loc Source # min :: Loc -> Loc -> Loc Source #
type Rep Loc Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep Loc = D1 ('MetaData "Loc" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) (C1 ('MetaCons "Loc" 'PrefixI 'True) ((S1 ('MetaSel ('Just "loc_filename") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "loc_package") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :*: (S1 ('MetaSel ('Just "loc_module") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "loc_start") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CharPos) :*: S1 ('MetaSel ('Just "loc_end") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CharPos)))))

type Uniq = Integer Source #

`Uniq` is used by GHC to distinguish names from each other.

data NameSpace Source #

Constructors

VarName | Variables
DataName | Data constructors
TcClsName | Type constructors and classes; Haskell has them in the same name space for now.
FldName |

Fields

- fldParent :: !String

  The textual name of the parent of the field.

  - For a field of a datatype, this is the name of the first constructor of the datatype (regardless of whether this constructor has this field).
  - For a field of a pattern synonym, this is the name of the pattern synonym.

#### Instances

Instances details

Binary NameSpace Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: NameSpace -> Put Source # get :: Get NameSpace Source # putList :: [NameSpace] -> Put Source #
Data NameSpace Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NameSpace -> c NameSpace Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NameSpace Source #

toConstr :: NameSpace -> Constr Source #

dataTypeOf :: NameSpace -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NameSpace) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NameSpace) Source #

gmapT :: (forall b. Data b => b -> b) -> NameSpace -> NameSpace Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NameSpace -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NameSpace -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> NameSpace -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NameSpace -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NameSpace -> m NameSpace Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NameSpace -> m NameSpace Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NameSpace -> m NameSpace Source #

Generic NameSpace Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep NameSpace |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep NameSpace = D1 ('MetaData "NameSpace" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "VarName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DataName" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TcClsName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FldName" 'PrefixI 'True) (S1 ('MetaSel ('Just "fldParent") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String))))

Methods

from :: NameSpace -> Rep NameSpace x Source #

to :: Rep NameSpace x -> NameSpace Source #

Show NameSpace Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> NameSpace -> ShowS Source # show :: NameSpace -> String Source # showList :: [NameSpace] -> ShowS Source #
Eq NameSpace Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: NameSpace -> NameSpace -> Bool Source # (/=) :: NameSpace -> NameSpace -> Bool Source #
Ord NameSpace Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: NameSpace -> NameSpace -> Ordering Source #

(<) :: NameSpace -> NameSpace -> Bool Source #

(<=) :: NameSpace -> NameSpace -> Bool Source #

(>) :: NameSpace -> NameSpace -> Bool Source #

(>=) :: NameSpace -> NameSpace -> Bool Source #

max :: NameSpace -> NameSpace -> NameSpace Source #

min :: NameSpace -> NameSpace -> NameSpace Source #

type Rep NameSpace Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep NameSpace = D1 ('MetaData "NameSpace" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "VarName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DataName" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TcClsName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FldName" 'PrefixI 'True) (S1 ('MetaSel ('Just "fldParent") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String))))

data NameFlavour Source #

Constructors

NameS | An unqualified name; dynamically bound
NameQ ModName | A qualified name; dynamically bound
NameU !Uniq | A unique local name
NameL !Uniq | Local name bound outside of the TH AST
NameG NameSpace PkgName ModName | Global name bound outside of the TH AST: An original name (occurrences only, not binders) Need the namespace too to be sure which thing we are naming

#### Instances

Instances details

Binary NameFlavour Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: NameFlavour -> Put Source # get :: Get NameFlavour Source # putList :: [NameFlavour] -> Put Source #
Data NameFlavour Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NameFlavour -> c NameFlavour Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NameFlavour Source #

toConstr :: NameFlavour -> Constr Source #

dataTypeOf :: NameFlavour -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NameFlavour) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NameFlavour) Source #

gmapT :: (forall b. Data b => b -> b) -> NameFlavour -> NameFlavour Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NameFlavour -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NameFlavour -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> NameFlavour -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NameFlavour -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NameFlavour -> m NameFlavour Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NameFlavour -> m NameFlavour Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NameFlavour -> m NameFlavour Source #

Generic NameFlavour Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep NameFlavour |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep NameFlavour = D1 ('MetaData "NameFlavour" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "NameS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NameQ" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName))) :+: (C1 ('MetaCons "NameU" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Uniq)) :+: (C1 ('MetaCons "NameL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Uniq)) :+: C1 ('MetaCons "NameG" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NameSpace) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PkgName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName))))))

Methods

from :: NameFlavour -> Rep NameFlavour x Source #

to :: Rep NameFlavour x -> NameFlavour Source #

Show NameFlavour Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> NameFlavour -> ShowS Source # show :: NameFlavour -> String Source # showList :: [NameFlavour] -> ShowS Source #
Eq NameFlavour Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: NameFlavour -> NameFlavour -> Bool Source # (/=) :: NameFlavour -> NameFlavour -> Bool Source #
Ord NameFlavour Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

compare :: NameFlavour -> NameFlavour -> Ordering Source #

(<) :: NameFlavour -> NameFlavour -> Bool Source #

(<=) :: NameFlavour -> NameFlavour -> Bool Source #

(>) :: NameFlavour -> NameFlavour -> Bool Source #

(>=) :: NameFlavour -> NameFlavour -> Bool Source #

max :: NameFlavour -> NameFlavour -> NameFlavour Source #

min :: NameFlavour -> NameFlavour -> NameFlavour Source #

type Rep NameFlavour Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

type Rep NameFlavour = D1 ('MetaData "NameFlavour" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "NameS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NameQ" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName))) :+: (C1 ('MetaCons "NameU" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Uniq)) :+: (C1 ('MetaCons "NameL" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Uniq)) :+: C1 ('MetaCons "NameG" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NameSpace) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PkgName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModName))))))

newtype OccName Source #

An "Occurence Name".

Constructors

OccName String |

#### Instances

Instances details

Binary OccName Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: OccName -> Put Source # get :: Get OccName Source # putList :: [OccName] -> Put Source #
Data OccName Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OccName -> c OccName Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OccName Source #

toConstr :: OccName -> Constr Source #

dataTypeOf :: OccName -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OccName) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OccName) Source #

gmapT :: (forall b. Data b => b -> b) -> OccName -> OccName Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OccName -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OccName -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> OccName -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> OccName -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> OccName -> m OccName Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OccName -> m OccName Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OccName -> m OccName Source #

Generic OccName Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep OccName |
Instance details Defined in GHC.Internal.TH.Syntax type Rep OccName = D1 ('MetaData "OccName" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'True) (C1 ('MetaCons "OccName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))

Methods

from :: OccName -> Rep OccName x Source #

to :: Rep OccName x -> OccName Source #

Show OccName Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> OccName -> ShowS Source # show :: OccName -> String Source # showList :: [OccName] -> ShowS Source #
Eq OccName Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: OccName -> OccName -> Bool Source # (/=) :: OccName -> OccName -> Bool Source #
Ord OccName Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: OccName -> OccName -> Ordering Source # (<) :: OccName -> OccName -> Bool Source # (<=) :: OccName -> OccName -> Bool Source # (>) :: OccName -> OccName -> Bool Source # (>=) :: OccName -> OccName -> Bool Source # max :: OccName -> OccName -> OccName Source # min :: OccName -> OccName -> OccName Source #
type Rep OccName Source # |
Instance details Defined in GHC.Internal.TH.Syntax type Rep OccName = D1 ('MetaData "OccName" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'True) (C1 ('MetaCons "OccName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))

newtype PkgName Source #

The name of a package.

Constructors

PkgName String |

#### Instances

Instances details

Binary PkgName Source # |
Instance details Defined in GHCi.TH.Binary Methods put :: PkgName -> Put Source # get :: Get PkgName Source # putList :: [PkgName] -> Put Source #
Data PkgName Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PkgName -> c PkgName Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PkgName Source #

toConstr :: PkgName -> Constr Source #

dataTypeOf :: PkgName -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PkgName) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PkgName) Source #

gmapT :: (forall b. Data b => b -> b) -> PkgName -> PkgName Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PkgName -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PkgName -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> PkgName -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> PkgName -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> PkgName -> m PkgName Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PkgName -> m PkgName Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PkgName -> m PkgName Source #

Generic PkgName Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Associated Types

type Rep PkgName |
Instance details Defined in GHC.Internal.TH.Syntax type Rep PkgName = D1 ('MetaData "PkgName" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'True) (C1 ('MetaCons "PkgName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))

Methods

from :: PkgName -> Rep PkgName x Source #

to :: Rep PkgName x -> PkgName Source #

Show PkgName Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods showsPrec :: Int -> PkgName -> ShowS Source # show :: PkgName -> String Source # showList :: [PkgName] -> ShowS Source #
Eq PkgName Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods (==) :: PkgName -> PkgName -> Bool Source # (/=) :: PkgName -> PkgName -> Bool Source #
Ord PkgName Source # |
Instance details Defined in GHC.Internal.TH.Syntax Methods compare :: PkgName -> PkgName -> Ordering Source # (<) :: PkgName -> PkgName -> Bool Source # (<=) :: PkgName -> PkgName -> Bool Source # (>) :: PkgName -> PkgName -> Bool Source # (>=) :: PkgName -> PkgName -> Bool Source # max :: PkgName -> PkgName -> PkgName Source # min :: PkgName -> PkgName -> PkgName Source #
type Rep PkgName Source # |
Instance details Defined in GHC.Internal.TH.Syntax type Rep PkgName = D1 ('MetaData "PkgName" "GHC.Internal.TH.Syntax" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'True) (C1 ('MetaCons "PkgName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))

class (MonadIO m, MonadFail m) => Quasi (m :: Type -> Type) where Source #

Minimal complete definition

qNewName, qReport, qRecover, qLookupName, qReify, qReifyFixity, qReifyType, qReifyInstances, qReifyRoles, qReifyAnnotations, qReifyModule, qReifyConStrictness, qLocation, qGetPackageRoot, qAddDependentFile, qAddTempFile, qAddTopDecls, qAddForeignFilePath, qAddModFinalizer, qAddCorePlugin, qGetQ, qPutQ, qIsExtEnabled, qExtsEnabled, qPutDoc, qGetDoc

Methods

qNewName :: String -> m Name Source #

Fresh names. See `newName`.

qReport :: Bool -> String -> m () Source #

Report an error (True) or warning (False) ...but carry on; use `fail` to stop. See `report`.

qRecover Source #

Arguments

:: m a | the error handler
-> m a | action which may fail
-> m a | Recover from the monadic `fail`

See `recover`.

qLookupName :: Bool -> String -> m (Maybe Name) Source #

True = type namespace, False = value namespace. See `lookupName`.

qReify :: Name -> m Info Source #

See `reify`.

qReifyFixity :: Name -> m (Maybe Fixity) Source #

See `reifyFixity`.

qReifyType :: Name -> m Type Source #

See `reifyType`.

qReifyInstances :: Name -> [Type] -> m [Dec] Source #

Is (n tys) an instance? Returns list of matching instance Decs (with empty sub-Decs) Works for classes and type functions. See `reifyInstances`.

qReifyRoles :: Name -> m [Role] Source #

See `reifyRoles`.

qReifyAnnotations :: Data a => AnnLookup -> m [a] Source #

See `reifyAnnotations`.

qReifyModule :: Module -> m ModuleInfo Source #

See `reifyModule`.

qReifyConStrictness :: Name -> m [DecidedStrictness] Source #

See `reifyConStrictness`.

qLocation :: m Loc Source #

See `location`.

qRunIO :: IO a -> m a Source #

Input/output (dangerous). See `runIO`.

qGetPackageRoot :: m FilePath Source #

See `getPackageRoot`.

qAddDependentFile :: FilePath -> m () Source #

See `addDependentFile`.

qAddTempFile :: String -> m FilePath Source #

See `addTempFile`.

qAddTopDecls :: [Dec] -> m () Source #

See `addTopDecls`.

qAddForeignFilePath :: ForeignSrcLang -> String -> m () Source #

See `addForeignFilePath`.

qAddModFinalizer :: Q () -> m () Source #

See `addModFinalizer`.

qAddCorePlugin :: String -> m () Source #

See `addCorePlugin`.

qGetQ :: Typeable a => m (Maybe a) Source #

See `getQ`.

qPutQ :: Typeable a => a -> m () Source #

See `putQ`.

qIsExtEnabled :: Extension -> m Bool Source #

See `isExtEnabled`.

qExtsEnabled :: m [Extension] Source #

See `extsEnabled`.

qPutDoc :: DocLoc -> String -> m () Source #

See `putDoc`.

qGetDoc :: DocLoc -> m (Maybe String) Source #

See `getDoc`.

#### Instances

Instances details

Quasi Q Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

qNewName :: String -> Q Name Source #

qReport :: Bool -> String -> Q () Source #

qRecover :: Q a -> Q a -> Q a Source #

qLookupName :: Bool -> String -> Q (Maybe Name) Source #

qReify :: Name -> Q Info Source #

qReifyFixity :: Name -> Q (Maybe Fixity) Source #

qReifyType :: Name -> Q Type Source #

qReifyInstances :: Name -> [Type] -> Q [Dec] Source #

qReifyRoles :: Name -> Q [Role] Source #

qReifyAnnotations :: Data a => AnnLookup -> Q [a] Source #

qReifyModule :: Module -> Q ModuleInfo Source #

qReifyConStrictness :: Name -> Q [DecidedStrictness] Source #

qLocation :: Q Loc Source #

qRunIO :: IO a -> Q a Source #

qGetPackageRoot :: Q FilePath Source #

qAddDependentFile :: FilePath -> Q () Source #

qAddTempFile :: String -> Q FilePath Source #

qAddTopDecls :: [Dec] -> Q () Source #

qAddForeignFilePath :: ForeignSrcLang -> String -> Q () Source #

qAddModFinalizer :: Q () -> Q () Source #

qAddCorePlugin :: String -> Q () Source #

qGetQ :: Typeable a => Q (Maybe a) Source #

qPutQ :: Typeable a => a -> Q () Source #

qIsExtEnabled :: Extension -> Q Bool Source #

qExtsEnabled :: Q [Extension] Source #

qPutDoc :: DocLoc -> String -> Q () Source #

qGetDoc :: DocLoc -> Q (Maybe String) Source #

Quasi IO Source # |

Instance details

Defined in GHC.Internal.TH.Syntax

Methods

qNewName :: String -> IO Name Source #

qReport :: Bool -> String -> IO () Source #

qRecover :: IO a -> IO a -> IO a Source #

qLookupName :: Bool -> String -> IO (Maybe Name) Source #

qReify :: Name -> IO Info Source #

qReifyFixity :: Name -> IO (Maybe Fixity) Source #

qReifyType :: Name -> IO Type Source #

qReifyInstances :: Name -> [Type] -> IO [Dec] Source #

qReifyRoles :: Name -> IO [Role] Source #

qReifyAnnotations :: Data a => AnnLookup -> IO [a] Source #

qReifyModule :: Module -> IO ModuleInfo Source #

qReifyConStrictness :: Name -> IO [DecidedStrictness] Source #

qLocation :: IO Loc Source #

qRunIO :: IO a -> IO a Source #

qGetPackageRoot :: IO FilePath Source #

qAddDependentFile :: FilePath -> IO () Source #

qAddTempFile :: String -> IO FilePath Source #

qAddTopDecls :: [Dec] -> IO () Source #

qAddForeignFilePath :: ForeignSrcLang -> String -> IO () Source #

qAddModFinalizer :: Q () -> IO () Source #

qAddCorePlugin :: String -> IO () Source #

qGetQ :: Typeable a => IO (Maybe a) Source #

qPutQ :: Typeable a => a -> IO () Source #

qIsExtEnabled :: Extension -> IO Bool Source #

qExtsEnabled :: IO [Extension] Source #

qPutDoc :: DocLoc -> String -> IO () Source #

qGetDoc :: DocLoc -> IO (Maybe String) Source #

newNameIO :: String -> IO Name Source #

badIO :: String -> IO a Source #

counter :: IORef Uniq Source #

runQ :: Quasi m => Q a -> m a Source #

"Runs" the `Q` monad. Normal users of Template Haskell should not need this function, as the splice brackets `$( ... )` are the usual way of running a `Q` computation.

This function is primarily used in GHC internals, and for debugging splices by running them in `IO`.

Note that many functions in `Q`, such as `reify` and other compiler queries, are not supported when running `Q` in `IO`; these operations simply fail at runtime. Indeed, the only operations guaranteed to succeed are `newName`, `runIO`, `reportError` and `reportWarning`.

unTypeQ :: forall a m. Quote m => m (TExp a) -> m Exp Source #

Discard the type annotation and produce a plain Template Haskell expression

Representation-polymorphic since template-haskell-2.16.0.0.

unsafeTExpCoerce :: forall a m. Quote m => m Exp -> m (TExp a) Source #

Annotate the Template Haskell expression with a type

This is unsafe because GHC cannot check for you that the expression really does have the type you claim it has.

Representation-polymorphic since template-haskell-2.16.0.0.

liftCode :: forall a m. m (TExp a) -> Code m a Source #

Lift a monadic action producing code into the typed `Code` representation

hoistCode :: Monad m => (forall x. m x -> n x) -> Code m a -> Code n a Source #

Modify the ambient monad used during code generation. For example, you can use `hoistCode` to handle a state effect: `handleState :: Code (StateT Int Q) a -> Code Q a handleState = hoistCode (flip runState 0)`

bindCode :: Monad m => m a -> (a -> Code m b) -> Code m b Source #

Variant of `(>>=)` which allows effectful computations to be injected into code generation.

bindCode_ :: Monad m => m a -> Code m b -> Code m b Source #

Variant of `(>>)` which allows effectful computations to be injected into code generation.

joinCode :: Monad m => m (Code m a) -> Code m a Source #

A useful combinator for embedding monadic actions into `Code` `myCode :: ... => Code m a myCode = joinCode $ do x <- someSideEffect return (makeCodeWith x)`

report :: Bool -> String -> Q () Source #

Deprecated: Use reportError or reportWarning instead

Report an error (True) or warning (False), but carry on; use `fail` to stop.

reportWarning :: String -> Q () Source #

Report a warning to the user, and carry on.

lookupName :: Bool -> String -> Q (Maybe Name) Source #

lookupTypeName :: String -> Q (Maybe Name) Source #

Look up the given name in the (type namespace of the) current splice's scope. See Language.Haskell.TH.Syntax for more details.

lookupValueName :: String -> Q (Maybe Name) Source #

Look up the given name in the (value namespace of the) current splice's scope. See Language.Haskell.TH.Syntax for more details.

reify :: Name -> Q Info Source #

`reify` looks up information about the `Name`. It will fail with a compile error if the `Name` is not visible. A `Name` is visible if it is imported or defined in a prior top-level declaration group. See the documentation for `newDeclarationGroup` for more details.

It is sometimes useful to construct the argument name using `lookupTypeName` or `lookupValueName` to ensure that we are reifying from the right namespace. For instance, in this context:

    data D = D

which `D` does `reify (mkName "D")` return information about? (Answer: `D`-the-type, but don't rely on it.) To ensure we get information about `D`-the-value, use `lookupValueName`:

    do
      Just nm <- lookupValueName "D"
      reify nm

and to get information about `D`-the-type, use `lookupTypeName`.

reifyFixity :: Name -> Q (Maybe Fixity) Source #

`reifyFixity nm` attempts to find a fixity declaration for `nm`. For example, if the function `foo` has the fixity declaration `infixr 7 foo`, then `reifyFixity 'foo` would return ``Just` (`Fixity` 7 `InfixR`)`. If the function `bar` does not have a fixity declaration, then `reifyFixity 'bar` returns `Nothing`, so you may assume `bar` has `defaultFixity`.

reifyType :: Name -> Q Type Source #

`reifyType nm` attempts to find the type or kind of `nm`. For example, `reifyType 'not` returns `Bool -> Bool`, and `reifyType ''Bool` returns `Type`. This works even if there's no explicit signature and the type or kind is inferred.

newDeclarationGroup :: Q [Dec] Source #

Template Haskell is capable of reifying information about types and terms defined in previous declaration groups. Top-level declaration splices break up declaration groups.

For an example, consider this code block. We define a datatype `X` and then try to call `reify` on the datatype.

    module Check where

    data X = X
        deriving Eq

    $(do
        info <- reify ''X
        runIO $ print info
     )

This code fails to compile, noting that `X` is not available for reification at the site of `reify`. We can fix this by creating a new declaration group using an empty top-level splice:

    data X = X
        deriving Eq

    $(pure [])

    $(do
        info <- reify ''X
        runIO $ print info
     )

We provide `newDeclarationGroup` as a means of documenting this behavior and providing a name for the pattern.

Since top level splices infer the presence of the `$( ... )` brackets, we can also write:

    data X = X
        deriving Eq

    newDeclarationGroup

    $(do
        info <- reify ''X
        runIO $ print info
     )

reifyInstances :: Name -> [Type] -> Q [InstanceDec] Source #

`reifyInstances nm tys` returns a list of all visible instances (see below for "visible") of `nm tys`. That is, if `nm` is the name of a type class, then all instances of this class at the types `tys` are returned. Alternatively, if `nm` is the name of a data family or type family, all instances of this family at the types `tys` are returned.

Note that this is a "shallow" test; the declarations returned merely have instance heads which unify with `nm tys`, they need not actually be satisfiable.

- `reifyInstances ''Eq [ `TupleT` 2 ``AppT`` `ConT` ''A ``AppT`` `ConT` ''B ]` contains the `instance (Eq a, Eq b) => Eq (a, b)` regardless of whether `A` and `B` themselves implement `Eq`
- `reifyInstances ''Show [ `VarT` (`mkName` "a") ]` produces every available instance of `Show`

There is one edge case: `reifyInstances ''Typeable tys` currently always produces an empty list (no matter what `tys` are given).

In principle, the *visible* instances are * all instances defined in a prior top-level declaration group (see docs on `newDeclarationGroup`), or * all instances defined in any module transitively imported by the module being compiled

However, actually searching all modules transitively below the one being compiled is unreasonably expensive, so `reifyInstances` will report only the instance for modules that GHC has had some cause to visit during this compilation. This is a shortcoming: `reifyInstances` might fail to report instances for a type that is otherwise unusued, or instances defined in a different component. You can work around this shortcoming by explicitly importing the modules whose instances you want to be visible. GHC issue #20529 has some discussion around this.

reifyRoles :: Name -> Q [Role] Source #

`reifyRoles nm` returns the list of roles associated with the parameters (both visible and invisible) of the tycon `nm`. Fails if `nm` cannot be found or is not a tycon. The returned list should never contain `InferR`.

An invisible parameter to a tycon is often a kind parameter. For example, if we have

    type Proxy :: forall k. k -> Type
    data Proxy a = MkProxy

and `reifyRoles Proxy`, we will get `[`NominalR`, `PhantomR`]`. The `NominalR` is the role of the invisible `k` parameter. Kind parameters are always nominal.

reifyAnnotations :: Data a => AnnLookup -> Q [a] Source #

`reifyAnnotations target` returns the list of annotations associated with `target`. Only the annotations that are appropriately typed is returned. So if you have `Int` and `String` annotations for the same target, you have to call this function twice.

reifyModule :: Module -> Q ModuleInfo Source #

`reifyModule mod` looks up information about module `mod`. To look up the current module, call this function with the return value of `thisModule`.

reifyConStrictness :: Name -> Q [DecidedStrictness] Source #

`reifyConStrictness nm` looks up the strictness information for the fields of the constructor with the name `nm`. Note that the strictness information that `reifyConStrictness` returns may not correspond to what is written in the source code. For example, in the following data declaration:

    data Pair a = Pair a a

`reifyConStrictness` would return `[`DecidedLazy`, DecidedLazy]` under most circumstances, but it would return `[`DecidedStrict`, DecidedStrict]` if the `-XStrictData` language extension was enabled.

isInstance :: Name -> [Type] -> Q Bool Source #

Is the list of instances returned by `reifyInstances` nonempty?

If you're confused by an instance not being visible despite being defined in the same module and above the splice in question, see the docs for `newDeclarationGroup` for a possible explanation.

location :: Q Loc Source #

The location at which this computation is spliced.

getPackageRoot :: Q FilePath Source #

Get the package root for the current package which is being compiled. This can be set explicitly with the -package-root flag but is normally just the current working directory.

The motivation for this flag is to provide a principled means to remove the assumption from splices that they will be executed in the directory where the cabal file resides. Projects such as haskell-language-server can't and don't change directory when compiling files but instead set the -package-root flag appropriately.

addDependentFile :: FilePath -> Q () Source #

Record external files that runIO is using (dependent upon). The compiler can then recognize that it should re-compile the Haskell file when an external file changes.

Expects an absolute file path.

Notes:

- ghc -M does not know about these dependencies - it does not execute TH.
- The dependency is based on file content, not a modification time

addTempFile :: String -> Q FilePath Source #

Obtain a temporary file path with the given suffix. The compiler will delete this file after compilation.

addTopDecls :: [Dec] -> Q () Source #

Add additional top-level declarations. The added declarations will be type checked along with the current declaration group.

addForeignFile :: ForeignSrcLang -> String -> Q () Source #

Deprecated: Use `addForeignSource` instead

addForeignSource :: ForeignSrcLang -> String -> Q () Source #

Emit a foreign file which will be compiled and linked to the object for the current module. Currently only languages that can be compiled with the C compiler are supported, and the flags passed as part of -optc will be also applied to the C compiler invocation that will compile them.

Note that for non-C languages (for example C++) `extern C` directives must be used to get symbols that we can access from Haskell.

To get better errors, it is recommended to use #line pragmas when emitting C files, e.g.

    {-# LANGUAGE CPP #-}
    ...
    addForeignSource LangC $ unlines
      [ "#line " ++ show (870 + 1) ++ " " ++ show "libraries/ghc-internal/src/GHC/Internal/TH/Syntax.hs"
      , ...
      ]

addForeignFilePath :: ForeignSrcLang -> FilePath -> Q () Source #

Same as `addForeignSource`, but expects to receive a path pointing to the foreign file instead of a `String` of its contents. Consider using this in conjunction with `addTempFile`.

This is a good alternative to `addForeignSource` when you are trying to directly link in an object file.

addModFinalizer :: Q () -> Q () Source #

Add a finalizer that will run in the Q monad after the current module has been type checked. This only makes sense when run within a top-level splice.

The finalizer is given the local type environment at the splice point. Thus `reify` is able to find the local definitions when executed inside the finalizer.

addCorePlugin :: String -> Q () Source #

Adds a core plugin to the compilation pipeline.

`addCorePlugin m` has almost the same effect as passing `-fplugin=m` to ghc in the command line. The major difference is that the plugin module `m` must not belong to the current package. When TH executes, it is too late to tell the compiler that we needed to compile first a plugin module in the current package.

getQ :: Typeable a => Q (Maybe a) Source #

Get state from the `Q` monad. Note that the state is local to the Haskell module in which the Template Haskell expression is executed.

putQ :: Typeable a => a -> Q () Source #

Replace the state in the `Q` monad. Note that the state is local to the Haskell module in which the Template Haskell expression is executed.

isExtEnabled :: Extension -> Q Bool Source #

Determine whether the given language extension is enabled in the `Q` monad.

extsEnabled :: Q [Extension] Source #

List all enabled language extensions.

putDoc :: DocLoc -> String -> Q () Source #

Add Haddock documentation to the specified location. This will overwrite any documentation at the location if it already exists. This will reify the specified name, so it must be in scope when you call it. If you want to add documentation to something that you are currently splicing, you can use `addModFinalizer` e.g.

    do
      let nm = mkName "x"
      addModFinalizer $ putDoc (DeclDoc nm) "Hello"
      [d| $(varP nm) = 42 |]

The helper functions `withDecDoc` and `withDecsDoc` will do this for you, as will the `funD_doc` and other `_doc` combinators. You most likely want to have the `-haddock` flag turned on when using this. Adding documentation to anything outside of the current module will cause an error.

getDoc :: DocLoc -> Q (Maybe String) Source #

Retrieves the Haddock documentation at the specified location, if one exists. It can be used to read documentation on things defined outside of the current module, provided that those modules were compiled with the `-haddock` flag.

oneName :: Name Source #

Synonym for `'`One``, from `ghc-prim`.

manyName :: Name Source #

Synonym for `'`Many``, from `ghc-prim`.

modString :: ModName -> String Source #

Accessor for `ModName`

mkPkgName :: String -> PkgName Source #

Smart constructor for `PkgName`

pkgString :: PkgName -> String Source #

Accessor for `PkgName`

mkOccName :: String -> OccName Source #

Smart constructor for `OccName`

occString :: OccName -> String Source #

Accessor for `OccName`

nameBase :: Name -> String Source #

The name without its module prefix.

#### Examples

Expand

    >>> nameBase ''Data.Either.Either
    "Either"
    >>> nameBase (mkName "foo")
    "foo"
    >>> nameBase (mkName "Module.foo")
    "foo"

nameModule :: Name -> Maybe String Source #

Module prefix of a name, if it exists.

#### Examples

Expand

    >>> nameModule ''Data.Either.Either
    Just "Data.Either"
    >>> nameModule (mkName "foo")
    Nothing
    >>> nameModule (mkName "Module.foo")
    Just "Module"

namePackage :: Name -> Maybe String Source #

A name's package, if it exists.

#### Examples

Expand

    >>> namePackage ''Data.Either.Either
    Just "base"
    >>> namePackage (mkName "foo")
    Nothing
    >>> namePackage (mkName "Module.foo")
    Nothing

nameSpace :: Name -> Maybe NameSpace Source #

Returns whether a name represents an occurrence of a top-level variable (`VarName`), data constructor (`DataName`), type constructor, or type class (`TcClsName`). If we can't be sure, it returns `Nothing`.

#### Examples

Expand

    >>> nameSpace 'Prelude.id
    Just VarName
    >>> nameSpace (mkName "id")
    Nothing -- only works for top-level variable names
    >>> nameSpace 'Data.Maybe.Just
    Just DataName
    >>> nameSpace ''Data.Maybe.Maybe
    Just TcClsName
    >>> nameSpace ''Data.Ord.Ord
    Just TcClsName

mkNameU :: String -> Uniq -> Name Source #

Only used internally

mkNameG :: NameSpace -> String -> String -> String -> Name Source #

Used for 'x etc, but not available to the programmer

showName :: Name -> String Source #

showName' :: NameIs -> Name -> String Source #

tupleDataName :: Int -> Name Source #

Tuple data constructor

tupleTypeName :: Int -> Name Source #

Tuple type constructor

unboxedTupleDataName :: Int -> Name Source #

Unboxed tuple data constructor

unboxedTupleTypeName :: Int -> Name Source #

Unboxed tuple type constructor

mk_tup_name :: Int -> NameSpace -> Bool -> Name Source #

unboxedSumDataName :: SumAlt -> SumArity -> Name Source #

Unboxed sum data constructor

unboxedSumTypeName :: SumArity -> Name Source #

Unboxed sum type constructor

maxPrecedence :: Int Source #

Highest allowed operator precedence for `Fixity` constructor (answer: 9)

defaultFixity :: Fixity Source #

Default fixity: `infixl 9`

eqBytes :: Bytes -> Bytes -> Bool Source #

compareBytes :: Bytes -> Bytes -> Ordering Source #

cmpEq :: Ordering -> Bool Source #

Internal helper function.

thenCmp :: Ordering -> Ordering -> Ordering Source #

Internal helper function.

get_cons_names :: Con -> [Name] Source #

Internal helper function.

# Language extensions

module GHC.Internal.LanguageExtensions

data ForeignSrcLang Source #

Foreign formats supported by GHC via TH

Constructors

LangC | C
LangCxx | C++
LangObjc | Objective C
LangObjcxx | Objective C++
LangAsm | Assembly language (.s)
LangJs | JavaScript
RawObject | Object (.o)

#### Instances

Instances details

Binary ForeignSrcLang Source # |
Instance details Defined in GHC.ForeignSrcLang Methods put :: ForeignSrcLang -> Put Source # get :: Get ForeignSrcLang Source # putList :: [ForeignSrcLang] -> Put Source #
Generic ForeignSrcLang Source # |

Instance details

Defined in GHC.Internal.ForeignSrcLang

Associated Types

type Rep ForeignSrcLang |

Instance details

Defined in GHC.Internal.ForeignSrcLang

type Rep ForeignSrcLang = D1 ('MetaData "ForeignSrcLang" "GHC.Internal.ForeignSrcLang" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "LangC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LangCxx" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LangObjc" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "LangObjcxx" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LangAsm" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LangJs" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RawObject" 'PrefixI 'False) (U1 :: Type -> Type))))

Methods

from :: ForeignSrcLang -> Rep ForeignSrcLang x Source #

to :: Rep ForeignSrcLang x -> ForeignSrcLang Source #

Show ForeignSrcLang Source # |
Instance details Defined in GHC.Internal.ForeignSrcLang Methods showsPrec :: Int -> ForeignSrcLang -> ShowS Source # show :: ForeignSrcLang -> String Source # showList :: [ForeignSrcLang] -> ShowS Source #
Eq ForeignSrcLang Source # |
Instance details Defined in GHC.Internal.ForeignSrcLang Methods (==) :: ForeignSrcLang -> ForeignSrcLang -> Bool Source # (/=) :: ForeignSrcLang -> ForeignSrcLang -> Bool Source #
type Rep ForeignSrcLang Source # |

Instance details

Defined in GHC.Internal.ForeignSrcLang

type Rep ForeignSrcLang = D1 ('MetaData "ForeignSrcLang" "GHC.Internal.ForeignSrcLang" "ghc-lib-parser-9.12.2.20250421-CLarrBnVGcX5rqdmHKZO6f" 'False) ((C1 ('MetaCons "LangC" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LangCxx" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LangObjc" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "LangObjcxx" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LangAsm" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LangJs" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RawObject" 'PrefixI 'False) (U1 :: Type -> Type))))

# Notes

## Unresolved Infix

When implementing antiquotation for quasiquoters, one often wants to parse strings into expressions:

    parse :: String -> Maybe Exp

But how should we parse `a + b * c`? If we don't know the fixities of `+` and `*`, we don't know whether to parse it as `a + (b * c)` or `(a + b) * c`.

In cases like this, use `UInfixE`, `UInfixP`, `UInfixT`, or `PromotedUInfixT`, which stand for "unresolved infix expression pattern type / promoted constructor", respectively. When the compiler is given a splice containing a tree of `UInfixE` applications such as

    UInfixE
      (UInfixE e1 op1 e2)
      op2
      (UInfixE e3 op3 e4)

it will look up and the fixities of the relevant operators and reassociate the tree as necessary.

- trees will not be reassociated across `ParensE`, `ParensP`, or `ParensT`, which are of use for parsing expressions like

    (a + b * c) + d * e

- `InfixE`, `InfixP`, `InfixT`, and `PromotedInfixT` expressions are never reassociated.
- The `UInfixE` constructor doesn't support sections. Sections such as `(a *)` have no ambiguity, so `InfixE` suffices. For longer sections such as `(a + b * c -)`, use an `InfixE` constructor for the outer-most section, and use `UInfixE` constructors for all other operators:

    InfixE
      Just (UInfixE ...a + b * c...)
      op
      Nothing

Sections such as `(a + b +)` and `((a + b) +)` should be rendered into `Exp`s differently:

    (+ a + b)   ---> InfixE Nothing + (Just $ UInfixE a + b)
                       -- will result in a fixity error if (+) is left-infix
    (+ (a + b)) ---> InfixE Nothing + (Just $ ParensE $ UInfixE a + b)
                       -- no fixity errors

- Quoted expressions such as

    [| a * b + c |] :: Q Exp
    [p| a : b : c |] :: Q Pat
    [t| T + T |] :: Q Type

will never contain `UInfixE`, `UInfixP`, `UInfixT`, `PromotedUInfixT`, `InfixT`, 'PromotedInfixT, `ParensE`, `ParensP`, or `ParensT` constructors.