| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Elara.AST.Types
Synopsis
- data Expr loc (p :: k) = Expr !loc !(ExpressionMeta p loc) (Expr' loc p)
- data Expr' loc (p :: k)
- = EInt Integer
- | EFloat Double
- | EString Text
- | EChar Char
- | EUnit
- | EVar (VariableExtension p) (ValueOccurrence p loc)
- | ECon (ConstructorNodeExtension p) (ConstructorOccurrence p loc)
- | ELam (LambdaExtension p) (LambdaBinder p loc) (Expr loc p)
- | EApp (ApplicationExtension p) (Expr loc p) (Expr loc p)
- | ETyApp (Expr loc p) (Type loc p)
- | EIf (Expr loc p) (Expr loc p) (Expr loc p)
- | EMatch (Expr loc p) [(Pattern loc p, Expr loc p)]
- | ELetIn (LetExtension p) (ValueBinder p loc) (Expr loc p) (Expr loc p)
- | ELet (LetExtension p) (ValueBinder p loc) (Expr loc p)
- | EBlock (NonEmpty (Expr loc p))
- | EAnn (Expr loc p) (Type loc p)
- | EExtension (ExpressionExtension p loc)
- data Pattern loc (p :: k) = Pattern !loc !(PatternMeta p loc) (Pattern' loc p)
- data Pattern' loc (p :: k)
- = PVar (ValueBinder p loc)
- | PCon (ConstructorOccurrence p loc) [Pattern loc p]
- | PWildcard
- | PInt Integer
- | PFloat Double
- | PString Text
- | PChar Char
- | PUnit
- | PExtension (PatternExtension p loc)
- data Type loc (p :: k) = Type !loc !(TypeMeta p loc) (Type' loc p)
- data Type' loc (p :: k)
- = TVar (TypeVariable p loc)
- | TFun (Type loc p) (Type loc p)
- | TUnit
- | TApp (Type loc p) (Type loc p)
- | TUserDefined (TypeOccurrence p loc)
- | TRecord (NonEmpty (Locate loc LowerAlphaName, Type loc p))
- | TList (Type loc p)
- | TExtension (TypeSyntaxExtension p loc)
- data BinaryOperator loc (p :: k)
- = SymOp !loc (OperatorOccurrence p loc)
- | InfixedOp !loc (InfixedOccurrence p loc)
- data TypeDeclaration loc (p :: k)
- data Annotation loc (p :: k) = Annotation {
- annotationName :: TypeOccurrence p loc
- annotationArgs :: [AnnotationArg loc p]
- newtype AnnotationArg loc (p :: k) = AnnotationArg (Expr loc p)
- data Declaration loc (p :: k) = Declaration !loc (Declaration' loc p)
- data Declaration' loc (p :: k) = Declaration' {
- declModuleName :: Locate loc ModuleName
- declBody :: DeclarationBody loc p
- data DeclarationBody loc (p :: k) = DeclarationBody !loc (DeclarationBody' loc p)
- data TypedLambdaParam v loc (p :: k) = TypedLambdaParam v (PatternMeta p loc)
- data DeclarationBody' loc (p :: k)
- = ValueDeclaration (TopValueBinder p loc) (Expr loc p) (ValueDeclPatterns p loc) (ValueDeclTypeAnnotation p loc) (ValueDeclMetadata p loc) [Annotation loc p]
- | TypeDeclarationBody (TopTypeBinder p loc) [TypeVariable p loc] (TypeDeclaration loc p) (Maybe (Type loc p)) (TypeDeclMetadata p loc) [Annotation loc p]
- | DeclBodyExtension (DeclBodyExtension p loc)
Documentation
data Expr loc (p :: k) Source #
Expression node with location and metadata
Constructors
| Expr !loc !(ExpressionMeta p loc) (Expr' loc p) |
Instances
data Expr' loc (p :: k) Source #
Expression syntax
Constructors
| EInt Integer | |
| EFloat Double | |
| EString Text | |
| EChar Char | |
| EUnit | |
| EVar (VariableExtension p) (ValueOccurrence p loc) | |
| ECon (ConstructorNodeExtension p) (ConstructorOccurrence p loc) | |
| ELam (LambdaExtension p) (LambdaBinder p loc) (Expr loc p) | |
| EApp (ApplicationExtension p) (Expr loc p) (Expr loc p) | |
| ETyApp (Expr loc p) (Type loc p) | |
| EIf (Expr loc p) (Expr loc p) (Expr loc p) | |
| EMatch (Expr loc p) [(Pattern loc p, Expr loc p)] | |
| ELetIn (LetExtension p) (ValueBinder p loc) (Expr loc p) (Expr loc p) | |
| ELet (LetExtension p) (ValueBinder p loc) (Expr loc p) | |
| EBlock (NonEmpty (Expr loc p)) | |
| EAnn (Expr loc p) (Type loc p) | |
| EExtension (ExpressionExtension p loc) |
Instances
| Generic (Expr' loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
| |||||
| CoreConstraint Show loc p => Show (Expr' loc p) Source # | |||||
| CoreConstraint Eq loc p => Eq (Expr' loc p) Source # | |||||
| CoreConstraint Ord loc p => Ord (Expr' loc p) Source # | |||||
Defined in Elara.AST.Instances | |||||
| type Rep (Expr' loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (Expr' loc p) = D1 ('MetaData "Expr'" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) ((((C1 ('MetaCons "EInt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)) :+: C1 ('MetaCons "EFloat" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double))) :+: (C1 ('MetaCons "EString" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "EChar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char)))) :+: ((C1 ('MetaCons "EUnit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (VariableExtension p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ValueOccurrence p loc)))) :+: (C1 ('MetaCons "ECon" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ConstructorNodeExtension p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ConstructorOccurrence p loc))) :+: C1 ('MetaCons "ELam" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LambdaExtension p)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LambdaBinder p loc)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p))))))) :+: (((C1 ('MetaCons "EApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ApplicationExtension p)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)))) :+: C1 ('MetaCons "ETyApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc p)))) :+: (C1 ('MetaCons "EIf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)))) :+: C1 ('MetaCons "EMatch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Pattern loc p, Expr loc p)])))) :+: ((C1 ('MetaCons "ELetIn" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LetExtension p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ValueBinder p loc))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)))) :+: C1 ('MetaCons "ELet" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LetExtension p)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ValueBinder p loc)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p))))) :+: (C1 ('MetaCons "EBlock" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (Expr loc p)))) :+: (C1 ('MetaCons "EAnn" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc p))) :+: C1 ('MetaCons "EExtension" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ExpressionExtension p loc)))))))) | |||||
data Pattern loc (p :: k) Source #
Pattern node with location and metadata
Constructors
| Pattern !loc !(PatternMeta p loc) (Pattern' loc p) |
Instances
| PrettyPhaseLoc Frontend loc => Pretty (Pattern loc Frontend) Source # | |||||
| Generic (Pattern loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
| |||||
| CoreConstraint Show loc p => Show (Pattern loc p) Source # | |||||
| CoreConstraint Eq loc p => Eq (Pattern loc p) Source # | |||||
| CoreConstraint Ord loc p => Ord (Pattern loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: Pattern loc p -> Pattern loc p -> Ordering # (<) :: Pattern loc p -> Pattern loc p -> Bool # (<=) :: Pattern loc p -> Pattern loc p -> Bool # (>) :: Pattern loc p -> Pattern loc p -> Bool # (>=) :: Pattern loc p -> Pattern loc p -> Bool # | |||||
| (Generic c, SafeGPlate (Rep c) (Pattern loc phase), GPlate (Pattern loc phase) c) => Plated (Pattern loc phase) c Source # | |||||
Defined in Elara.AST.Instances Methods plate :: Traversal' c (Pattern loc phase) Source # | |||||
| type Rep (Pattern loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (Pattern loc p) = D1 ('MetaData "Pattern" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "Pattern" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 loc) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PatternMeta p loc)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Pattern' loc p))))) | |||||
data Pattern' loc (p :: k) Source #
Pattern syntax
Constructors
| PVar (ValueBinder p loc) | |
| PCon (ConstructorOccurrence p loc) [Pattern loc p] | |
| PWildcard | |
| PInt Integer | |
| PFloat Double | |
| PString Text | |
| PChar Char | |
| PUnit | |
| PExtension (PatternExtension p loc) |
Instances
| Generic (Pattern' loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
| |||||
| CoreConstraint Show loc p => Show (Pattern' loc p) Source # | |||||
| CoreConstraint Eq loc p => Eq (Pattern' loc p) Source # | |||||
| CoreConstraint Ord loc p => Ord (Pattern' loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: Pattern' loc p -> Pattern' loc p -> Ordering # (<) :: Pattern' loc p -> Pattern' loc p -> Bool # (<=) :: Pattern' loc p -> Pattern' loc p -> Bool # (>) :: Pattern' loc p -> Pattern' loc p -> Bool # (>=) :: Pattern' loc p -> Pattern' loc p -> Bool # | |||||
| type Rep (Pattern' loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (Pattern' loc p) = D1 ('MetaData "Pattern'" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (((C1 ('MetaCons "PVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ValueBinder p loc))) :+: C1 ('MetaCons "PCon" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ConstructorOccurrence p loc)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Pattern loc p]))) :+: (C1 ('MetaCons "PWildcard" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PInt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))) :+: ((C1 ('MetaCons "PFloat" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double)) :+: C1 ('MetaCons "PString" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) :+: (C1 ('MetaCons "PChar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Char)) :+: (C1 ('MetaCons "PUnit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PExtension" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PatternExtension p loc))))))) | |||||
data Type loc (p :: k) Source #
Type node with location and metadata
Instances
| PrettyPhaseLoc Frontend loc => Pretty (Type loc Frontend) Source # | |||||
| Generic (Type loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
| |||||
| CoreConstraint Show loc p => Show (Type loc p) Source # | |||||
| CoreConstraint Eq loc p => Eq (Type loc p) Source # | |||||
| CoreConstraint Ord loc p => Ord (Type loc p) Source # | |||||
Defined in Elara.AST.Instances | |||||
| (Generic c, SafeGPlate (Rep c) (Type loc phase), GPlate (Type loc phase) c) => Plated (Type loc phase) c Source # | |||||
Defined in Elara.AST.Instances Methods plate :: Traversal' c (Type loc phase) Source # | |||||
| PhaseCoerce (Type SourceRegion Renamed) (Type SourceRegion Shunted) Source # | |||||
Defined in Elara.Shunt Methods phaseCoerce :: Type SourceRegion Renamed -> Type SourceRegion Shunted Source # | |||||
| type Rep (Type loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (Type loc p) = D1 ('MetaData "Type" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "Type" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 loc) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (TypeMeta p loc)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type' loc p))))) | |||||
data Type' loc (p :: k) Source #
Type syntax
Constructors
| TVar (TypeVariable p loc) | |
| TFun (Type loc p) (Type loc p) | |
| TUnit | |
| TApp (Type loc p) (Type loc p) | |
| TUserDefined (TypeOccurrence p loc) | |
| TRecord (NonEmpty (Locate loc LowerAlphaName, Type loc p)) | |
| TList (Type loc p) | |
| TExtension (TypeSyntaxExtension p loc) |
Instances
| Generic (Type' loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
| |||||
| CoreConstraint Show loc p => Show (Type' loc p) Source # | |||||
| CoreConstraint Eq loc p => Eq (Type' loc p) Source # | |||||
| CoreConstraint Ord loc p => Ord (Type' loc p) Source # | |||||
Defined in Elara.AST.Instances | |||||
| PhaseCoerce (Type' SourceRegion Renamed) (Type' SourceRegion Shunted) Source # | |||||
Defined in Elara.Shunt Methods phaseCoerce :: Type' SourceRegion Renamed -> Type' SourceRegion Shunted Source # | |||||
| type Rep (Type' loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (Type' loc p) = D1 ('MetaData "Type'" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (((C1 ('MetaCons "TVar" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TypeVariable p loc))) :+: C1 ('MetaCons "TFun" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc p)))) :+: (C1 ('MetaCons "TUnit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc p))))) :+: ((C1 ('MetaCons "TUserDefined" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TypeOccurrence p loc))) :+: C1 ('MetaCons "TRecord" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (Locate loc LowerAlphaName, Type loc p))))) :+: (C1 ('MetaCons "TList" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc p))) :+: C1 ('MetaCons "TExtension" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TypeSyntaxExtension p loc)))))) | |||||
data BinaryOperator loc (p :: k) Source #
Binary operator (only exists in extension types for early phases)
Constructors
| SymOp !loc (OperatorOccurrence p loc) | |
| InfixedOp !loc (InfixedOccurrence p loc) |
Instances
| (PrettyPhase p, PrettyPhaseLoc p loc) => Pretty (BinaryOperator loc p) Source # | |||||
Defined in Elara.AST.Instances | |||||
| Generic (BinaryOperator loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
Methods from :: BinaryOperator loc p -> Rep (BinaryOperator loc p) x # to :: Rep (BinaryOperator loc p) x -> BinaryOperator loc p # | |||||
| CoreConstraint Show loc p => Show (BinaryOperator loc p) Source # | |||||
Defined in Elara.AST.Instances Methods showsPrec :: Int -> BinaryOperator loc p -> ShowS # show :: BinaryOperator loc p -> String # showList :: [BinaryOperator loc p] -> ShowS # | |||||
| CoreConstraint Eq loc p => Eq (BinaryOperator loc p) Source # | |||||
Defined in Elara.AST.Instances Methods (==) :: BinaryOperator loc p -> BinaryOperator loc p -> Bool # (/=) :: BinaryOperator loc p -> BinaryOperator loc p -> Bool # | |||||
| CoreConstraint Ord loc p => Ord (BinaryOperator loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: BinaryOperator loc p -> BinaryOperator loc p -> Ordering # (<) :: BinaryOperator loc p -> BinaryOperator loc p -> Bool # (<=) :: BinaryOperator loc p -> BinaryOperator loc p -> Bool # (>) :: BinaryOperator loc p -> BinaryOperator loc p -> Bool # (>=) :: BinaryOperator loc p -> BinaryOperator loc p -> Bool # max :: BinaryOperator loc p -> BinaryOperator loc p -> BinaryOperator loc p # min :: BinaryOperator loc p -> BinaryOperator loc p -> BinaryOperator loc p # | |||||
| type Rep (BinaryOperator loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (BinaryOperator loc p) = D1 ('MetaData "BinaryOperator" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "SymOp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 loc) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OperatorOccurrence p loc))) :+: C1 ('MetaCons "InfixedOp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 loc) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (InfixedOccurrence p loc)))) | |||||
data TypeDeclaration loc (p :: k) Source #
Type declarations (ADT or alias)
Instances
| (PrettyPhase p, PrettyExtensions p, PrettyPhaseLoc p loc) => Pretty (TypeDeclaration loc p) Source # | |||||
Defined in Elara.AST.Instances | |||||
| Generic (TypeDeclaration loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
Methods from :: TypeDeclaration loc p -> Rep (TypeDeclaration loc p) x # to :: Rep (TypeDeclaration loc p) x -> TypeDeclaration loc p # | |||||
| CoreConstraint Show loc p => Show (TypeDeclaration loc p) Source # | |||||
Defined in Elara.AST.Instances Methods showsPrec :: Int -> TypeDeclaration loc p -> ShowS # show :: TypeDeclaration loc p -> String # showList :: [TypeDeclaration loc p] -> ShowS # | |||||
| CoreConstraint Eq loc p => Eq (TypeDeclaration loc p) Source # | |||||
Defined in Elara.AST.Instances Methods (==) :: TypeDeclaration loc p -> TypeDeclaration loc p -> Bool # (/=) :: TypeDeclaration loc p -> TypeDeclaration loc p -> Bool # | |||||
| CoreConstraint Ord loc p => Ord (TypeDeclaration loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: TypeDeclaration loc p -> TypeDeclaration loc p -> Ordering # (<) :: TypeDeclaration loc p -> TypeDeclaration loc p -> Bool # (<=) :: TypeDeclaration loc p -> TypeDeclaration loc p -> Bool # (>) :: TypeDeclaration loc p -> TypeDeclaration loc p -> Bool # (>=) :: TypeDeclaration loc p -> TypeDeclaration loc p -> Bool # max :: TypeDeclaration loc p -> TypeDeclaration loc p -> TypeDeclaration loc p # min :: TypeDeclaration loc p -> TypeDeclaration loc p -> TypeDeclaration loc p # | |||||
| PhaseCoerce (TypeDeclaration SourceRegion Renamed) (TypeDeclaration SourceRegion Shunted) Source # | |||||
Defined in Elara.Shunt | |||||
| type Rep (TypeDeclaration loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (TypeDeclaration loc p) = D1 ('MetaData "TypeDeclaration" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "ADT" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (ConstructorBinder p loc, [Type loc p])))) :+: C1 ('MetaCons "Alias" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Type loc p)))) | |||||
data Annotation loc (p :: k) Source #
Annotation on a declaration
Constructors
| Annotation | |
Fields
| |
Instances
| Generic (Annotation loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
Methods from :: Annotation loc p -> Rep (Annotation loc p) x # to :: Rep (Annotation loc p) x -> Annotation loc p # | |||||
| CoreConstraint Show loc p => Show (Annotation loc p) Source # | |||||
Defined in Elara.AST.Instances Methods showsPrec :: Int -> Annotation loc p -> ShowS # show :: Annotation loc p -> String # showList :: [Annotation loc p] -> ShowS # | |||||
| CoreConstraint Eq loc p => Eq (Annotation loc p) Source # | |||||
Defined in Elara.AST.Instances Methods (==) :: Annotation loc p -> Annotation loc p -> Bool # (/=) :: Annotation loc p -> Annotation loc p -> Bool # | |||||
| CoreConstraint Ord loc p => Ord (Annotation loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: Annotation loc p -> Annotation loc p -> Ordering # (<) :: Annotation loc p -> Annotation loc p -> Bool # (<=) :: Annotation loc p -> Annotation loc p -> Bool # (>) :: Annotation loc p -> Annotation loc p -> Bool # (>=) :: Annotation loc p -> Annotation loc p -> Bool # max :: Annotation loc p -> Annotation loc p -> Annotation loc p # min :: Annotation loc p -> Annotation loc p -> Annotation loc p # | |||||
| type Rep (Annotation loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (Annotation loc p) = D1 ('MetaData "Annotation" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "Annotation" 'PrefixI 'True) (S1 ('MetaSel ('Just "annotationName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TypeOccurrence p loc)) :*: S1 ('MetaSel ('Just "annotationArgs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [AnnotationArg loc p]))) | |||||
newtype AnnotationArg loc (p :: k) Source #
Annotation argument (must be a constant expression)
Constructors
| AnnotationArg (Expr loc p) |
Instances
| Generic (AnnotationArg loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
Methods from :: AnnotationArg loc p -> Rep (AnnotationArg loc p) x # to :: Rep (AnnotationArg loc p) x -> AnnotationArg loc p # | |||||
| CoreConstraint Show loc p => Show (AnnotationArg loc p) Source # | |||||
Defined in Elara.AST.Instances Methods showsPrec :: Int -> AnnotationArg loc p -> ShowS # show :: AnnotationArg loc p -> String # showList :: [AnnotationArg loc p] -> ShowS # | |||||
| CoreConstraint Eq loc p => Eq (AnnotationArg loc p) Source # | |||||
Defined in Elara.AST.Instances Methods (==) :: AnnotationArg loc p -> AnnotationArg loc p -> Bool # (/=) :: AnnotationArg loc p -> AnnotationArg loc p -> Bool # | |||||
| CoreConstraint Ord loc p => Ord (AnnotationArg loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: AnnotationArg loc p -> AnnotationArg loc p -> Ordering # (<) :: AnnotationArg loc p -> AnnotationArg loc p -> Bool # (<=) :: AnnotationArg loc p -> AnnotationArg loc p -> Bool # (>) :: AnnotationArg loc p -> AnnotationArg loc p -> Bool # (>=) :: AnnotationArg loc p -> AnnotationArg loc p -> Bool # max :: AnnotationArg loc p -> AnnotationArg loc p -> AnnotationArg loc p # min :: AnnotationArg loc p -> AnnotationArg loc p -> AnnotationArg loc p # | |||||
| type Rep (AnnotationArg loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (AnnotationArg loc p) = D1 ('MetaData "AnnotationArg" "Elara.AST.Types" "elara-0.1.0-inplace" 'True) (C1 ('MetaCons "AnnotationArg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)))) | |||||
data Declaration loc (p :: k) Source #
Top-level declaration with location
Constructors
| Declaration !loc (Declaration' loc p) |
Instances
| (PrettyPhase p, PrettyExtensions p, PrettyPhaseLoc p loc) => Pretty (Declaration loc p) Source # | |||||
Defined in Elara.AST.Instances | |||||
| Generic (Declaration loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
Methods from :: Declaration loc p -> Rep (Declaration loc p) x # to :: Rep (Declaration loc p) x -> Declaration loc p # | |||||
| CoreConstraint Show loc p => Show (Declaration loc p) Source # | |||||
Defined in Elara.AST.Instances Methods showsPrec :: Int -> Declaration loc p -> ShowS # show :: Declaration loc p -> String # showList :: [Declaration loc p] -> ShowS # | |||||
| CoreConstraint Eq loc p => Eq (Declaration loc p) Source # | |||||
Defined in Elara.AST.Instances Methods (==) :: Declaration loc p -> Declaration loc p -> Bool # (/=) :: Declaration loc p -> Declaration loc p -> Bool # | |||||
| CoreConstraint Ord loc p => Ord (Declaration loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: Declaration loc p -> Declaration loc p -> Ordering # (<) :: Declaration loc p -> Declaration loc p -> Bool # (<=) :: Declaration loc p -> Declaration loc p -> Bool # (>) :: Declaration loc p -> Declaration loc p -> Bool # (>=) :: Declaration loc p -> Declaration loc p -> Bool # max :: Declaration loc p -> Declaration loc p -> Declaration loc p # min :: Declaration loc p -> Declaration loc p -> Declaration loc p # | |||||
| type Rep (Declaration loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (Declaration loc p) = D1 ('MetaData "Declaration" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "Declaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 loc) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Declaration' loc p)))) | |||||
data Declaration' loc (p :: k) Source #
Declaration content
Constructors
| Declaration' | |
Fields
| |
Instances
| Generic (Declaration' loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
Methods from :: Declaration' loc p -> Rep (Declaration' loc p) x # to :: Rep (Declaration' loc p) x -> Declaration' loc p # | |||||
| CoreConstraint Show loc p => Show (Declaration' loc p) Source # | |||||
Defined in Elara.AST.Instances Methods showsPrec :: Int -> Declaration' loc p -> ShowS # show :: Declaration' loc p -> String # showList :: [Declaration' loc p] -> ShowS # | |||||
| CoreConstraint Eq loc p => Eq (Declaration' loc p) Source # | |||||
Defined in Elara.AST.Instances Methods (==) :: Declaration' loc p -> Declaration' loc p -> Bool # (/=) :: Declaration' loc p -> Declaration' loc p -> Bool # | |||||
| CoreConstraint Ord loc p => Ord (Declaration' loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: Declaration' loc p -> Declaration' loc p -> Ordering # (<) :: Declaration' loc p -> Declaration' loc p -> Bool # (<=) :: Declaration' loc p -> Declaration' loc p -> Bool # (>) :: Declaration' loc p -> Declaration' loc p -> Bool # (>=) :: Declaration' loc p -> Declaration' loc p -> Bool # max :: Declaration' loc p -> Declaration' loc p -> Declaration' loc p # min :: Declaration' loc p -> Declaration' loc p -> Declaration' loc p # | |||||
| type Rep (Declaration' loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (Declaration' loc p) = D1 ('MetaData "Declaration'" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "Declaration'" 'PrefixI 'True) (S1 ('MetaSel ('Just "declModuleName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Locate loc ModuleName)) :*: S1 ('MetaSel ('Just "declBody") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (DeclarationBody loc p)))) | |||||
data DeclarationBody loc (p :: k) Source #
Declaration body with location
Constructors
| DeclarationBody !loc (DeclarationBody' loc p) |
Instances
| Generic (DeclarationBody loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
Methods from :: DeclarationBody loc p -> Rep (DeclarationBody loc p) x # to :: Rep (DeclarationBody loc p) x -> DeclarationBody loc p # | |||||
| CoreConstraint Show loc p => Show (DeclarationBody loc p) Source # | |||||
Defined in Elara.AST.Instances Methods showsPrec :: Int -> DeclarationBody loc p -> ShowS # show :: DeclarationBody loc p -> String # showList :: [DeclarationBody loc p] -> ShowS # | |||||
| CoreConstraint Eq loc p => Eq (DeclarationBody loc p) Source # | |||||
Defined in Elara.AST.Instances Methods (==) :: DeclarationBody loc p -> DeclarationBody loc p -> Bool # (/=) :: DeclarationBody loc p -> DeclarationBody loc p -> Bool # | |||||
| CoreConstraint Ord loc p => Ord (DeclarationBody loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: DeclarationBody loc p -> DeclarationBody loc p -> Ordering # (<) :: DeclarationBody loc p -> DeclarationBody loc p -> Bool # (<=) :: DeclarationBody loc p -> DeclarationBody loc p -> Bool # (>) :: DeclarationBody loc p -> DeclarationBody loc p -> Bool # (>=) :: DeclarationBody loc p -> DeclarationBody loc p -> Bool # max :: DeclarationBody loc p -> DeclarationBody loc p -> DeclarationBody loc p # min :: DeclarationBody loc p -> DeclarationBody loc p -> DeclarationBody loc p # | |||||
| type Rep (DeclarationBody loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (DeclarationBody loc p) = D1 ('MetaData "DeclarationBody" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "DeclarationBody" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 loc) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (DeclarationBody' loc p)))) | |||||
data TypedLambdaParam v loc (p :: k) Source #
Lambda binder with optional type annotation, used from Renamed onward
Constructors
| TypedLambdaParam v (PatternMeta p loc) |
Instances
| Generic (TypedLambdaParam v loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
Methods from :: TypedLambdaParam v loc p -> Rep (TypedLambdaParam v loc p) x # to :: Rep (TypedLambdaParam v loc p) x -> TypedLambdaParam v loc p # | |||||
| (Show v, Show (PatternMeta p loc)) => Show (TypedLambdaParam v loc p) Source # | |||||
Defined in Elara.AST.Instances Methods showsPrec :: Int -> TypedLambdaParam v loc p -> ShowS # show :: TypedLambdaParam v loc p -> String # showList :: [TypedLambdaParam v loc p] -> ShowS # | |||||
| (Eq v, Eq (PatternMeta p loc)) => Eq (TypedLambdaParam v loc p) Source # | |||||
Defined in Elara.AST.Instances Methods (==) :: TypedLambdaParam v loc p -> TypedLambdaParam v loc p -> Bool # (/=) :: TypedLambdaParam v loc p -> TypedLambdaParam v loc p -> Bool # | |||||
| (Ord v, Ord (PatternMeta p loc)) => Ord (TypedLambdaParam v loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: TypedLambdaParam v loc p -> TypedLambdaParam v loc p -> Ordering # (<) :: TypedLambdaParam v loc p -> TypedLambdaParam v loc p -> Bool # (<=) :: TypedLambdaParam v loc p -> TypedLambdaParam v loc p -> Bool # (>) :: TypedLambdaParam v loc p -> TypedLambdaParam v loc p -> Bool # (>=) :: TypedLambdaParam v loc p -> TypedLambdaParam v loc p -> Bool # max :: TypedLambdaParam v loc p -> TypedLambdaParam v loc p -> TypedLambdaParam v loc p # min :: TypedLambdaParam v loc p -> TypedLambdaParam v loc p -> TypedLambdaParam v loc p # | |||||
| type Rep (TypedLambdaParam v loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (TypedLambdaParam v loc p) = D1 ('MetaData "TypedLambdaParam" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "TypedLambdaParam" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 v) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PatternMeta p loc)))) | |||||
data DeclarationBody' loc (p :: k) Source #
Declaration body syntax
Constructors
| ValueDeclaration (TopValueBinder p loc) (Expr loc p) (ValueDeclPatterns p loc) (ValueDeclTypeAnnotation p loc) (ValueDeclMetadata p loc) [Annotation loc p] | |
| TypeDeclarationBody (TopTypeBinder p loc) [TypeVariable p loc] (TypeDeclaration loc p) (Maybe (Type loc p)) (TypeDeclMetadata p loc) [Annotation loc p] | |
| DeclBodyExtension (DeclBodyExtension p loc) |
Instances
| (PrettyPhase p, PrettyExtensions p, PrettyPhaseLoc p loc) => Pretty (DeclarationBody' loc p) Source # | |||||
Defined in Elara.AST.Instances | |||||
| Generic (DeclarationBody' loc p) Source # | |||||
Defined in Elara.AST.Types Associated Types
Methods from :: DeclarationBody' loc p -> Rep (DeclarationBody' loc p) x # to :: Rep (DeclarationBody' loc p) x -> DeclarationBody' loc p # | |||||
| CoreConstraint Show loc p => Show (DeclarationBody' loc p) Source # | |||||
Defined in Elara.AST.Instances Methods showsPrec :: Int -> DeclarationBody' loc p -> ShowS # show :: DeclarationBody' loc p -> String # showList :: [DeclarationBody' loc p] -> ShowS # | |||||
| CoreConstraint Eq loc p => Eq (DeclarationBody' loc p) Source # | |||||
Defined in Elara.AST.Instances Methods (==) :: DeclarationBody' loc p -> DeclarationBody' loc p -> Bool # (/=) :: DeclarationBody' loc p -> DeclarationBody' loc p -> Bool # | |||||
| CoreConstraint Ord loc p => Ord (DeclarationBody' loc p) Source # | |||||
Defined in Elara.AST.Instances Methods compare :: DeclarationBody' loc p -> DeclarationBody' loc p -> Ordering # (<) :: DeclarationBody' loc p -> DeclarationBody' loc p -> Bool # (<=) :: DeclarationBody' loc p -> DeclarationBody' loc p -> Bool # (>) :: DeclarationBody' loc p -> DeclarationBody' loc p -> Bool # (>=) :: DeclarationBody' loc p -> DeclarationBody' loc p -> Bool # max :: DeclarationBody' loc p -> DeclarationBody' loc p -> DeclarationBody' loc p # min :: DeclarationBody' loc p -> DeclarationBody' loc p -> DeclarationBody' loc p # | |||||
| type Rep (DeclarationBody' loc p) Source # | |||||
Defined in Elara.AST.Types type Rep (DeclarationBody' loc p) = D1 ('MetaData "DeclarationBody'" "Elara.AST.Types" "elara-0.1.0-inplace" 'False) (C1 ('MetaCons "ValueDeclaration" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TopValueBinder p loc)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Expr loc p)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ValueDeclPatterns p loc)))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ValueDeclTypeAnnotation p loc)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ValueDeclMetadata p loc)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Annotation loc p])))) :+: (C1 ('MetaCons "TypeDeclarationBody" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TopTypeBinder p loc)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [TypeVariable p loc]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TypeDeclaration loc p)))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (Type loc p))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TypeDeclMetadata p loc)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Annotation loc p])))) :+: C1 ('MetaCons "DeclBodyExtension" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (DeclBodyExtension p loc))))) | |||||