Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.PureScript.AST.Declarations
Description
Data types for modules and declarations
Synopsis
- type Context = [(Ident, SourceType)]
- data TypeSearch
- = TSBefore Environment
- | TSAfter {
- tsAfterIdentifiers :: [(Qualified Text, SourceType)]
- tsAfterRecordFields :: Maybe [(Label, SourceType)]
- onTypeSearchTypes :: (SourceType -> SourceType) -> TypeSearch -> TypeSearch
- onTypeSearchTypesM :: Applicative m => (SourceType -> m SourceType) -> TypeSearch -> m TypeSearch
- data ErrorMessageHint
- = ErrorUnifyingTypes SourceType SourceType
- | ErrorInExpression Expr
- | ErrorInModule ModuleName
- | ErrorInInstance (Qualified (ProperName 'ClassName)) [SourceType]
- | ErrorInSubsumption SourceType SourceType
- | ErrorInRowLabel Label
- | ErrorCheckingAccessor Expr PSString
- | ErrorCheckingType Expr SourceType
- | ErrorCheckingKind SourceType SourceType
- | ErrorCheckingGuard
- | ErrorInferringType Expr
- | ErrorInferringKind SourceType
- | ErrorInApplication Expr SourceType Expr
- | ErrorInDataConstructor (ProperName 'ConstructorName)
- | ErrorInTypeConstructor (ProperName 'TypeName)
- | ErrorInBindingGroup (NonEmpty Ident)
- | ErrorInDataBindingGroup [ProperName 'TypeName]
- | ErrorInTypeSynonym (ProperName 'TypeName)
- | ErrorInValueDeclaration Ident
- | ErrorInTypeDeclaration Ident
- | ErrorInTypeClassDeclaration (ProperName 'ClassName)
- | ErrorInKindDeclaration (ProperName 'TypeName)
- | ErrorInRoleDeclaration (ProperName 'TypeName)
- | ErrorInForeignImport Ident
- | ErrorInForeignImportData (ProperName 'TypeName)
- | ErrorSolvingConstraint SourceConstraint
- | MissingConstructorImportForCoercible (Qualified (ProperName 'ConstructorName))
- | PositionedError (NonEmpty SourceSpan)
- | RelatedPositions (NonEmpty SourceSpan)
- data HintCategory
- data UnknownsHint
- = NoUnknowns
- | Unknowns
- | UnknownsWithVtaRequiringArgs (NonEmpty (Qualified Ident, [[Text]]))
- data Module = Module SourceSpan [Comment] ModuleName [Declaration] (Maybe [DeclarationRef])
- getModuleName :: Module -> ModuleName
- getModuleSourceSpan :: Module -> SourceSpan
- getModuleDeclarations :: Module -> [Declaration]
- addDefaultImport :: Qualified ModuleName -> Module -> Module
- importPrim :: Module -> Module
- data NameSource
- data DeclarationRef
- = TypeClassRef SourceSpan (ProperName 'ClassName)
- | TypeOpRef SourceSpan (OpName 'TypeOpName)
- | TypeRef SourceSpan (ProperName 'TypeName) (Maybe [ProperName 'ConstructorName])
- | ValueRef SourceSpan Ident
- | ValueOpRef SourceSpan (OpName 'ValueOpName)
- | TypeInstanceRef SourceSpan Ident NameSource
- | ModuleRef SourceSpan ModuleName
- | ReExportRef SourceSpan ExportSource DeclarationRef
- data ExportSource = ExportSource {}
- declRefSourceSpan :: DeclarationRef -> SourceSpan
- declRefName :: DeclarationRef -> Name
- getTypeRef :: DeclarationRef -> Maybe (ProperName 'TypeName, Maybe [ProperName 'ConstructorName])
- getTypeOpRef :: DeclarationRef -> Maybe (OpName 'TypeOpName)
- getValueRef :: DeclarationRef -> Maybe Ident
- getValueOpRef :: DeclarationRef -> Maybe (OpName 'ValueOpName)
- getTypeClassRef :: DeclarationRef -> Maybe (ProperName 'ClassName)
- isModuleRef :: DeclarationRef -> Bool
- data ImportDeclarationType
- isExplicit :: ImportDeclarationType -> Bool
- data RoleDeclarationData = RoleDeclarationData {
- rdeclSourceAnn :: !SourceAnn
- rdeclIdent :: !(ProperName 'TypeName)
- rdeclRoles :: ![Role]
- data TypeDeclarationData = TypeDeclarationData {
- tydeclSourceAnn :: !SourceAnn
- tydeclIdent :: !Ident
- tydeclType :: !SourceType
- getTypeDeclaration :: Declaration -> Maybe TypeDeclarationData
- unwrapTypeDeclaration :: TypeDeclarationData -> (Ident, SourceType)
- data ValueDeclarationData a = ValueDeclarationData {
- valdeclSourceAnn :: !SourceAnn
- valdeclIdent :: !Ident
- valdeclName :: !NameKind
- valdeclBinders :: ![Binder]
- valdeclExpression :: !a
- getValueDeclaration :: Declaration -> Maybe (ValueDeclarationData [GuardedExpr])
- pattern ValueDecl :: SourceAnn -> Ident -> NameKind -> [Binder] -> [GuardedExpr] -> Declaration
- data DataConstructorDeclaration = DataConstructorDeclaration {
- dataCtorAnn :: !SourceAnn
- dataCtorName :: !(ProperName 'ConstructorName)
- dataCtorFields :: ![(Ident, SourceType)]
- mapDataCtorFields :: ([(Ident, SourceType)] -> [(Ident, SourceType)]) -> DataConstructorDeclaration -> DataConstructorDeclaration
- traverseDataCtorFields :: Monad m => ([(Ident, SourceType)] -> m [(Ident, SourceType)]) -> DataConstructorDeclaration -> m DataConstructorDeclaration
- data Declaration
- = DataDeclaration SourceAnn DataDeclType (ProperName 'TypeName) [(Text, Maybe SourceType)] [DataConstructorDeclaration]
- | DataBindingGroupDeclaration (NonEmpty Declaration)
- | TypeSynonymDeclaration SourceAnn (ProperName 'TypeName) [(Text, Maybe SourceType)] SourceType
- | KindDeclaration SourceAnn KindSignatureFor (ProperName 'TypeName) SourceType
- | RoleDeclaration !RoleDeclarationData
- | TypeDeclaration !TypeDeclarationData
- | ValueDeclaration !(ValueDeclarationData [GuardedExpr])
- | BoundValueDeclaration SourceAnn Binder Expr
- | BindingGroupDeclaration (NonEmpty ((SourceAnn, Ident), NameKind, Expr))
- | ExternDeclaration SourceAnn Ident SourceType
- | ExternDataDeclaration SourceAnn (ProperName 'TypeName) SourceType
- | FixityDeclaration SourceAnn (Either ValueFixity TypeFixity)
- | ImportDeclaration SourceAnn ModuleName ImportDeclarationType (Maybe ModuleName)
- | TypeClassDeclaration SourceAnn (ProperName 'ClassName) [(Text, Maybe SourceType)] [SourceConstraint] [FunctionalDependency] [Declaration]
- | TypeInstanceDeclaration SourceAnn SourceAnn ChainId Integer (Either Text Ident) [SourceConstraint] (Qualified (ProperName 'ClassName)) [SourceType] TypeInstanceBody
- data ValueFixity = ValueFixity Fixity (Qualified (Either Ident (ProperName 'ConstructorName))) (OpName 'ValueOpName)
- data TypeFixity = TypeFixity Fixity (Qualified (ProperName 'TypeName)) (OpName 'TypeOpName)
- pattern ValueFixityDeclaration :: SourceAnn -> Fixity -> Qualified (Either Ident (ProperName 'ConstructorName)) -> OpName 'ValueOpName -> Declaration
- pattern TypeFixityDeclaration :: SourceAnn -> Fixity -> Qualified (ProperName 'TypeName) -> OpName 'TypeOpName -> Declaration
- data InstanceDerivationStrategy
- data TypeInstanceBody
- mapTypeInstanceBody :: ([Declaration] -> [Declaration]) -> TypeInstanceBody -> TypeInstanceBody
- traverseTypeInstanceBody :: Applicative f => ([Declaration] -> f [Declaration]) -> TypeInstanceBody -> f TypeInstanceBody
- data KindSignatureFor
- declSourceAnn :: Declaration -> SourceAnn
- declSourceSpan :: Declaration -> SourceSpan
- declName :: Declaration -> Maybe Name
- isValueDecl :: Declaration -> Bool
- isDataDecl :: Declaration -> Bool
- isTypeSynonymDecl :: Declaration -> Bool
- isImportDecl :: Declaration -> Bool
- isRoleDecl :: Declaration -> Bool
- isExternDataDecl :: Declaration -> Bool
- isFixityDecl :: Declaration -> Bool
- getFixityDecl :: Declaration -> Maybe (Either ValueFixity TypeFixity)
- isExternDecl :: Declaration -> Bool
- isTypeClassInstanceDecl :: Declaration -> Bool
- isTypeClassDecl :: Declaration -> Bool
- isKindDecl :: Declaration -> Bool
- flattenDecls :: [Declaration] -> [Declaration]
- data Guard
- data GuardedExpr = GuardedExpr [Guard] Expr
- pattern MkUnguarded :: Expr -> GuardedExpr
- data Expr
- = Literal SourceSpan (Literal Expr)
- | UnaryMinus SourceSpan Expr
- | BinaryNoParens Expr Expr Expr
- | Parens Expr
- | Accessor PSString Expr
- | ObjectUpdate Expr [(PSString, Expr)]
- | ObjectUpdateNested Expr (PathTree Expr)
- | Abs Binder Expr
- | App Expr Expr
- | VisibleTypeApp Expr SourceType
- | Unused Expr
- | Var SourceSpan (Qualified Ident)
- | Op SourceSpan (Qualified (OpName 'ValueOpName))
- | IfThenElse Expr Expr Expr
- | Constructor SourceSpan (Qualified (ProperName 'ConstructorName))
- | Case [Expr] [CaseAlternative]
- | TypedValue Bool Expr SourceType
- | Let WhereProvenance [Declaration] Expr
- | Do (Maybe ModuleName) [DoNotationElement]
- | Ado (Maybe ModuleName) [DoNotationElement] Expr
- | TypeClassDictionary SourceConstraint (Map QualifiedBy (Map (Qualified (ProperName 'ClassName)) (Map (Qualified Ident) (NonEmpty NamedDict)))) [ErrorMessageHint]
- | DeferredDictionary (Qualified (ProperName 'ClassName)) [SourceType]
- | DerivedInstancePlaceholder (Qualified (ProperName 'ClassName)) InstanceDerivationStrategy
- | AnonymousArgument
- | Hole Text
- | PositionedValue SourceSpan [Comment] Expr
- data WhereProvenance
- data CaseAlternative = CaseAlternative {}
- data DoNotationElement
- newtype PathTree t = PathTree (AssocList PSString (PathNode t))
- data PathNode t
- newtype AssocList k t = AssocList {
- runAssocList :: [(k, t)]
- isTrueExpr :: Expr -> Bool
- isAnonymousArgument :: Expr -> Bool
Documentation
type Context = [(Ident, SourceType)] #
A map of locally-bound names in scope.
data TypeSearch #
Holds the data necessary to do type directed search for typed holes
Constructors
TSBefore Environment | An Environment captured for later consumption by type directed search |
TSAfter | Results of applying type directed search to the previously captured Environment |
Fields
|
Instances
onTypeSearchTypes :: (SourceType -> SourceType) -> TypeSearch -> TypeSearch #
onTypeSearchTypesM :: Applicative m => (SourceType -> m SourceType) -> TypeSearch -> m TypeSearch #
data ErrorMessageHint #
Error message hints, providing more detailed information about failure.
Constructors
ErrorUnifyingTypes SourceType SourceType | |
ErrorInExpression Expr | |
ErrorInModule ModuleName | |
ErrorInInstance (Qualified (ProperName 'ClassName)) [SourceType] | |
ErrorInSubsumption SourceType SourceType | |
ErrorInRowLabel Label | |
ErrorCheckingAccessor Expr PSString | |
ErrorCheckingType Expr SourceType | |
ErrorCheckingKind SourceType SourceType | |
ErrorCheckingGuard | |
ErrorInferringType Expr | |
ErrorInferringKind SourceType | |
ErrorInApplication Expr SourceType Expr | |
ErrorInDataConstructor (ProperName 'ConstructorName) | |
ErrorInTypeConstructor (ProperName 'TypeName) | |
ErrorInBindingGroup (NonEmpty Ident) | |
ErrorInDataBindingGroup [ProperName 'TypeName] | |
ErrorInTypeSynonym (ProperName 'TypeName) | |
ErrorInValueDeclaration Ident | |
ErrorInTypeDeclaration Ident | |
ErrorInTypeClassDeclaration (ProperName 'ClassName) | |
ErrorInKindDeclaration (ProperName 'TypeName) | |
ErrorInRoleDeclaration (ProperName 'TypeName) | |
ErrorInForeignImport Ident | |
ErrorInForeignImportData (ProperName 'TypeName) | |
ErrorSolvingConstraint SourceConstraint | |
MissingConstructorImportForCoercible (Qualified (ProperName 'ConstructorName)) | |
PositionedError (NonEmpty SourceSpan) | |
RelatedPositions (NonEmpty SourceSpan) |
Instances
NFData ErrorMessageHint # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: ErrorMessageHint -> () # | |||||
Generic ErrorMessageHint # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: ErrorMessageHint -> Rep ErrorMessageHint x # to :: Rep ErrorMessageHint x -> ErrorMessageHint # | |||||
Show ErrorMessageHint # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> ErrorMessageHint -> ShowS # show :: ErrorMessageHint -> String # showList :: [ErrorMessageHint] -> ShowS # | |||||
type Rep ErrorMessageHint # | |||||
Defined in Language.PureScript.AST.Declarations type Rep ErrorMessageHint = D1 ('MetaData "ErrorMessageHint" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) ((((C1 ('MetaCons "ErrorUnifyingTypes" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType)) :+: (C1 ('MetaCons "ErrorInExpression" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: C1 ('MetaCons "ErrorInModule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)))) :+: ((C1 ('MetaCons "ErrorInInstance" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified (ProperName 'ClassName))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [SourceType])) :+: C1 ('MetaCons "ErrorInSubsumption" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType))) :+: (C1 ('MetaCons "ErrorInRowLabel" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Label)) :+: C1 ('MetaCons "ErrorCheckingAccessor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PSString))))) :+: ((C1 ('MetaCons "ErrorCheckingType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType)) :+: (C1 ('MetaCons "ErrorCheckingKind" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType)) :+: C1 ('MetaCons "ErrorCheckingGuard" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ErrorInferringType" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: C1 ('MetaCons "ErrorInferringKind" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType))) :+: (C1 ('MetaCons "ErrorInApplication" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) :+: C1 ('MetaCons "ErrorInDataConstructor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'ConstructorName))))))) :+: (((C1 ('MetaCons "ErrorInTypeConstructor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'TypeName))) :+: (C1 ('MetaCons "ErrorInBindingGroup" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty Ident))) :+: C1 ('MetaCons "ErrorInDataBindingGroup" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ProperName 'TypeName])))) :+: ((C1 ('MetaCons "ErrorInTypeSynonym" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'TypeName))) :+: C1 ('MetaCons "ErrorInValueDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident))) :+: (C1 ('MetaCons "ErrorInTypeDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident)) :+: C1 ('MetaCons "ErrorInTypeClassDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'ClassName)))))) :+: (((C1 ('MetaCons "ErrorInKindDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'TypeName))) :+: C1 ('MetaCons "ErrorInRoleDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'TypeName)))) :+: (C1 ('MetaCons "ErrorInForeignImport" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident)) :+: C1 ('MetaCons "ErrorInForeignImportData" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'TypeName))))) :+: ((C1 ('MetaCons "ErrorSolvingConstraint" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceConstraint)) :+: C1 ('MetaCons "MissingConstructorImportForCoercible" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified (ProperName 'ConstructorName))))) :+: (C1 ('MetaCons "PositionedError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty SourceSpan))) :+: C1 ('MetaCons "RelatedPositions" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty SourceSpan)))))))) |
data HintCategory #
Categories of hints
Constructors
ExprHint | |
KindHint | |
CheckHint | |
PositionHint | |
SolverHint | |
DeclarationHint | |
OtherHint |
Instances
Show HintCategory # | |
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> HintCategory -> ShowS # show :: HintCategory -> String # showList :: [HintCategory] -> ShowS # | |
Eq HintCategory # | |
Defined in Language.PureScript.AST.Declarations |
data UnknownsHint #
In constraint solving, indicates whether there were TypeUnknown
s that prevented
an instance from being found, and whether VTAs are required
due to type class members not referencing all the type class
head's type variables.
Constructors
NoUnknowns | |
Unknowns | |
UnknownsWithVtaRequiringArgs (NonEmpty (Qualified Ident, [[Text]])) |
Instances
NFData UnknownsHint # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: UnknownsHint -> () # | |||||
Generic UnknownsHint # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
| |||||
Show UnknownsHint # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> UnknownsHint -> ShowS # show :: UnknownsHint -> String # showList :: [UnknownsHint] -> ShowS # | |||||
type Rep UnknownsHint # | |||||
Defined in Language.PureScript.AST.Declarations type Rep UnknownsHint = D1 ('MetaData "UnknownsHint" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "NoUnknowns" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Unknowns" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UnknownsWithVtaRequiringArgs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty (Qualified Ident, [[Text]])))))) |
A module declaration, consisting of comments about the module, a module name, a list of declarations, and a list of the declarations that are explicitly exported. If the export list is Nothing, everything is exported.
Constructors
Module SourceSpan [Comment] ModuleName [Declaration] (Maybe [DeclarationRef]) |
getModuleName :: Module -> ModuleName #
Return a module's name.
getModuleSourceSpan :: Module -> SourceSpan #
Return a module's source span.
getModuleDeclarations :: Module -> [Declaration] #
Return a module's declarations.
addDefaultImport :: Qualified ModuleName -> Module -> Module #
Add an import declaration for a module if it does not already explicitly import it.
Will not import an unqualified module if that module has already been imported qualified. (See #2197)
importPrim :: Module -> Module #
Adds import declarations to a module for an implicit Prim import and Prim | qualified as Prim, as necessary.
data NameSource #
Constructors
UserNamed | |
CompilerNamed |
Instances
FromJSON NameSource # | |||||
Defined in Language.PureScript.AST.Declarations | |||||
ToJSON NameSource # | |||||
Defined in Language.PureScript.AST.Declarations Methods toJSON :: NameSource -> Value # toEncoding :: NameSource -> Encoding # toJSONList :: [NameSource] -> Value # toEncodingList :: [NameSource] -> Encoding # omitField :: NameSource -> Bool # | |||||
NFData NameSource # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: NameSource -> () # | |||||
Generic NameSource # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
| |||||
Show NameSource # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> NameSource -> ShowS # show :: NameSource -> String # showList :: [NameSource] -> ShowS # | |||||
Serialise NameSource # | |||||
Defined in Language.PureScript.AST.Declarations Methods encode :: NameSource -> Encoding # decode :: Decoder s NameSource # encodeList :: [NameSource] -> Encoding # decodeList :: Decoder s [NameSource] # | |||||
type Rep NameSource # | |||||
Defined in Language.PureScript.AST.Declarations |
data DeclarationRef #
An item in a list of explicit imports or exports
Constructors
TypeClassRef SourceSpan (ProperName 'ClassName) | A type class |
TypeOpRef SourceSpan (OpName 'TypeOpName) | A type operator |
TypeRef SourceSpan (ProperName 'TypeName) (Maybe [ProperName 'ConstructorName]) | A type constructor with data constructors |
ValueRef SourceSpan Ident | A value |
ValueOpRef SourceSpan (OpName 'ValueOpName) | A value-level operator |
TypeInstanceRef SourceSpan Ident NameSource | A type class instance, created during typeclass desugaring |
ModuleRef SourceSpan ModuleName | A module, in its entirety |
ReExportRef SourceSpan ExportSource DeclarationRef | A value re-exported from another module. These will be inserted during elaboration in name desugaring. |
Instances
FromJSON DeclarationRef # | |||||
Defined in Language.PureScript.AST.Declarations Methods parseJSON :: Value -> Parser DeclarationRef # parseJSONList :: Value -> Parser [DeclarationRef] # | |||||
ToJSON DeclarationRef # | |||||
Defined in Language.PureScript.AST.Declarations Methods toJSON :: DeclarationRef -> Value # toEncoding :: DeclarationRef -> Encoding # toJSONList :: [DeclarationRef] -> Value # toEncodingList :: [DeclarationRef] -> Encoding # omitField :: DeclarationRef -> Bool # | |||||
NFData DeclarationRef # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: DeclarationRef -> () # | |||||
Generic DeclarationRef # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: DeclarationRef -> Rep DeclarationRef x # to :: Rep DeclarationRef x -> DeclarationRef # | |||||
Show DeclarationRef # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> DeclarationRef -> ShowS # show :: DeclarationRef -> String # showList :: [DeclarationRef] -> ShowS # | |||||
Eq DeclarationRef # | |||||
Defined in Language.PureScript.AST.Declarations Methods (==) :: DeclarationRef -> DeclarationRef -> Bool # (/=) :: DeclarationRef -> DeclarationRef -> Bool # | |||||
Ord DeclarationRef # | |||||
Defined in Language.PureScript.AST.Declarations Methods compare :: DeclarationRef -> DeclarationRef -> Ordering # (<) :: DeclarationRef -> DeclarationRef -> Bool # (<=) :: DeclarationRef -> DeclarationRef -> Bool # (>) :: DeclarationRef -> DeclarationRef -> Bool # (>=) :: DeclarationRef -> DeclarationRef -> Bool # max :: DeclarationRef -> DeclarationRef -> DeclarationRef # min :: DeclarationRef -> DeclarationRef -> DeclarationRef # | |||||
Serialise DeclarationRef # | |||||
Defined in Language.PureScript.AST.Declarations Methods encode :: DeclarationRef -> Encoding # decode :: Decoder s DeclarationRef # encodeList :: [DeclarationRef] -> Encoding # decodeList :: Decoder s [DeclarationRef] # | |||||
type Rep DeclarationRef # | |||||
Defined in Language.PureScript.AST.Declarations type Rep DeclarationRef = D1 ('MetaData "DeclarationRef" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (((C1 ('MetaCons "TypeClassRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'ClassName))) :+: C1 ('MetaCons "TypeOpRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OpName 'TypeOpName)))) :+: (C1 ('MetaCons "TypeRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'TypeName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [ProperName 'ConstructorName])))) :+: C1 ('MetaCons "ValueRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident)))) :+: ((C1 ('MetaCons "ValueOpRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OpName 'ValueOpName))) :+: C1 ('MetaCons "TypeInstanceRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 NameSource)))) :+: (C1 ('MetaCons "ModuleRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)) :+: C1 ('MetaCons "ReExportRef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ExportSource) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DeclarationRef)))))) |
data ExportSource #
Constructors
ExportSource | |
Instances
FromJSON ExportSource # | |||||
Defined in Language.PureScript.AST.Declarations | |||||
ToJSON ExportSource # | |||||
Defined in Language.PureScript.AST.Declarations Methods toJSON :: ExportSource -> Value # toEncoding :: ExportSource -> Encoding # toJSONList :: [ExportSource] -> Value # toEncodingList :: [ExportSource] -> Encoding # omitField :: ExportSource -> Bool # | |||||
NFData ExportSource # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: ExportSource -> () # | |||||
Generic ExportSource # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
| |||||
Show ExportSource # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> ExportSource -> ShowS # show :: ExportSource -> String # showList :: [ExportSource] -> ShowS # | |||||
Eq ExportSource # | |||||
Defined in Language.PureScript.AST.Declarations | |||||
Ord ExportSource # | |||||
Defined in Language.PureScript.AST.Declarations Methods compare :: ExportSource -> ExportSource -> Ordering # (<) :: ExportSource -> ExportSource -> Bool # (<=) :: ExportSource -> ExportSource -> Bool # (>) :: ExportSource -> ExportSource -> Bool # (>=) :: ExportSource -> ExportSource -> Bool # max :: ExportSource -> ExportSource -> ExportSource # min :: ExportSource -> ExportSource -> ExportSource # | |||||
Serialise ExportSource # | |||||
Defined in Language.PureScript.AST.Declarations Methods encode :: ExportSource -> Encoding # decode :: Decoder s ExportSource # encodeList :: [ExportSource] -> Encoding # decodeList :: Decoder s [ExportSource] # | |||||
type Rep ExportSource # | |||||
Defined in Language.PureScript.AST.Declarations type Rep ExportSource = D1 ('MetaData "ExportSource" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "ExportSource" 'PrefixI 'True) (S1 ('MetaSel ('Just "exportSourceImportedFrom") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModuleName)) :*: S1 ('MetaSel ('Just "exportSourceDefinedIn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName))) |
declRefName :: DeclarationRef -> Name #
getTypeRef :: DeclarationRef -> Maybe (ProperName 'TypeName, Maybe [ProperName 'ConstructorName]) #
getTypeOpRef :: DeclarationRef -> Maybe (OpName 'TypeOpName) #
getValueRef :: DeclarationRef -> Maybe Ident #
getValueOpRef :: DeclarationRef -> Maybe (OpName 'ValueOpName) #
getTypeClassRef :: DeclarationRef -> Maybe (ProperName 'ClassName) #
isModuleRef :: DeclarationRef -> Bool #
data ImportDeclarationType #
The data type which specifies type of import declaration
Constructors
Implicit | An import with no explicit list: `import M`. |
Explicit [DeclarationRef] | An import with an explicit list of references to import: `import M (foo)` |
Hiding [DeclarationRef] | An import with a list of references to hide: `import M hiding (foo)` |
Instances
FromJSON ImportDeclarationType # | |||||
Defined in Language.PureScript.AST.Declarations Methods parseJSON :: Value -> Parser ImportDeclarationType # parseJSONList :: Value -> Parser [ImportDeclarationType] # | |||||
ToJSON ImportDeclarationType # | |||||
Defined in Language.PureScript.AST.Declarations Methods toJSON :: ImportDeclarationType -> Value # toEncoding :: ImportDeclarationType -> Encoding # toJSONList :: [ImportDeclarationType] -> Value # toEncodingList :: [ImportDeclarationType] -> Encoding # omitField :: ImportDeclarationType -> Bool # | |||||
NFData ImportDeclarationType # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: ImportDeclarationType -> () # | |||||
Generic ImportDeclarationType # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: ImportDeclarationType -> Rep ImportDeclarationType x # to :: Rep ImportDeclarationType x -> ImportDeclarationType # | |||||
Show ImportDeclarationType # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> ImportDeclarationType -> ShowS # show :: ImportDeclarationType -> String # showList :: [ImportDeclarationType] -> ShowS # | |||||
Eq ImportDeclarationType # | |||||
Defined in Language.PureScript.AST.Declarations Methods (==) :: ImportDeclarationType -> ImportDeclarationType -> Bool # (/=) :: ImportDeclarationType -> ImportDeclarationType -> Bool # | |||||
Serialise ImportDeclarationType # | |||||
Defined in Language.PureScript.AST.Declarations Methods encode :: ImportDeclarationType -> Encoding # decode :: Decoder s ImportDeclarationType # encodeList :: [ImportDeclarationType] -> Encoding # decodeList :: Decoder s [ImportDeclarationType] # | |||||
type Rep ImportDeclarationType # | |||||
Defined in Language.PureScript.AST.Declarations type Rep ImportDeclarationType = D1 ('MetaData "ImportDeclarationType" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "Implicit" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Explicit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DeclarationRef])) :+: C1 ('MetaCons "Hiding" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DeclarationRef])))) |
isExplicit :: ImportDeclarationType -> Bool #
data RoleDeclarationData #
A role declaration assigns a list of roles to a type constructor's parameters, e.g.:
type role T representational phantom
In this example, T
is the identifier and [representational, phantom]
is
the list of roles (T
presumably having two parameters).
Constructors
RoleDeclarationData | |
Fields
|
Instances
NFData RoleDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: RoleDeclarationData -> () # | |||||
Generic RoleDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: RoleDeclarationData -> Rep RoleDeclarationData x # to :: Rep RoleDeclarationData x -> RoleDeclarationData # | |||||
Show RoleDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> RoleDeclarationData -> ShowS # show :: RoleDeclarationData -> String # showList :: [RoleDeclarationData] -> ShowS # | |||||
Eq RoleDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Methods (==) :: RoleDeclarationData -> RoleDeclarationData -> Bool # (/=) :: RoleDeclarationData -> RoleDeclarationData -> Bool # | |||||
type Rep RoleDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations type Rep RoleDeclarationData = D1 ('MetaData "RoleDeclarationData" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "RoleDeclarationData" 'PrefixI 'True) (S1 ('MetaSel ('Just "rdeclSourceAnn") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourceAnn) :*: (S1 ('MetaSel ('Just "rdeclIdent") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ProperName 'TypeName)) :*: S1 ('MetaSel ('Just "rdeclRoles") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Role])))) |
data TypeDeclarationData #
A type declaration assigns a type to an identifier, eg:
identity :: forall a. a -> a
In this example identity
is the identifier and forall a. a -> a
the type.
Constructors
TypeDeclarationData | |
Fields
|
Instances
NFData TypeDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: TypeDeclarationData -> () # | |||||
Generic TypeDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: TypeDeclarationData -> Rep TypeDeclarationData x # to :: Rep TypeDeclarationData x -> TypeDeclarationData # | |||||
Show TypeDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> TypeDeclarationData -> ShowS # show :: TypeDeclarationData -> String # showList :: [TypeDeclarationData] -> ShowS # | |||||
Eq TypeDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Methods (==) :: TypeDeclarationData -> TypeDeclarationData -> Bool # (/=) :: TypeDeclarationData -> TypeDeclarationData -> Bool # | |||||
type Rep TypeDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations type Rep TypeDeclarationData = D1 ('MetaData "TypeDeclarationData" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "TypeDeclarationData" 'PrefixI 'True) (S1 ('MetaSel ('Just "tydeclSourceAnn") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourceAnn) :*: (S1 ('MetaSel ('Just "tydeclIdent") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Ident) :*: S1 ('MetaSel ('Just "tydeclType") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourceType)))) |
data ValueDeclarationData a #
A value declaration assigns a name and potential binders, to an expression (or multiple guarded expressions).
double x = x + x
In this example double
is the identifier, x
is a binder and x + x
is the expression.
Constructors
ValueDeclarationData | |
Fields
|
Instances
Functor ValueDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Methods fmap :: (a -> b) -> ValueDeclarationData a -> ValueDeclarationData b # (<$) :: a -> ValueDeclarationData b -> ValueDeclarationData a # | |||||
Foldable ValueDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Methods fold :: Monoid m => ValueDeclarationData m -> m # foldMap :: Monoid m => (a -> m) -> ValueDeclarationData a -> m # foldMap' :: Monoid m => (a -> m) -> ValueDeclarationData a -> m # foldr :: (a -> b -> b) -> b -> ValueDeclarationData a -> b # foldr' :: (a -> b -> b) -> b -> ValueDeclarationData a -> b # foldl :: (b -> a -> b) -> b -> ValueDeclarationData a -> b # foldl' :: (b -> a -> b) -> b -> ValueDeclarationData a -> b # foldr1 :: (a -> a -> a) -> ValueDeclarationData a -> a # foldl1 :: (a -> a -> a) -> ValueDeclarationData a -> a # toList :: ValueDeclarationData a -> [a] # null :: ValueDeclarationData a -> Bool # length :: ValueDeclarationData a -> Int # elem :: Eq a => a -> ValueDeclarationData a -> Bool # maximum :: Ord a => ValueDeclarationData a -> a # minimum :: Ord a => ValueDeclarationData a -> a # sum :: Num a => ValueDeclarationData a -> a # product :: Num a => ValueDeclarationData a -> a # | |||||
Traversable ValueDeclarationData # | |||||
Defined in Language.PureScript.AST.Declarations Methods traverse :: Applicative f => (a -> f b) -> ValueDeclarationData a -> f (ValueDeclarationData b) # sequenceA :: Applicative f => ValueDeclarationData (f a) -> f (ValueDeclarationData a) # mapM :: Monad m => (a -> m b) -> ValueDeclarationData a -> m (ValueDeclarationData b) # sequence :: Monad m => ValueDeclarationData (m a) -> m (ValueDeclarationData a) # | |||||
NFData a => NFData (ValueDeclarationData a) # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: ValueDeclarationData a -> () # | |||||
Generic (ValueDeclarationData a) # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: ValueDeclarationData a -> Rep (ValueDeclarationData a) x # to :: Rep (ValueDeclarationData a) x -> ValueDeclarationData a # | |||||
Show a => Show (ValueDeclarationData a) # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> ValueDeclarationData a -> ShowS # show :: ValueDeclarationData a -> String # showList :: [ValueDeclarationData a] -> ShowS # | |||||
type Rep (ValueDeclarationData a) # | |||||
Defined in Language.PureScript.AST.Declarations type Rep (ValueDeclarationData a) = D1 ('MetaData "ValueDeclarationData" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "ValueDeclarationData" 'PrefixI 'True) ((S1 ('MetaSel ('Just "valdeclSourceAnn") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourceAnn) :*: S1 ('MetaSel ('Just "valdeclIdent") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Ident)) :*: (S1 ('MetaSel ('Just "valdeclName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 NameKind) :*: (S1 ('MetaSel ('Just "valdeclBinders") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Binder]) :*: S1 ('MetaSel ('Just "valdeclExpression") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a))))) |
pattern ValueDecl :: SourceAnn -> Ident -> NameKind -> [Binder] -> [GuardedExpr] -> Declaration #
data DataConstructorDeclaration #
Constructors
DataConstructorDeclaration | |
Fields
|
Instances
NFData DataConstructorDeclaration # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: DataConstructorDeclaration -> () # | |||||
Generic DataConstructorDeclaration # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: DataConstructorDeclaration -> Rep DataConstructorDeclaration x # to :: Rep DataConstructorDeclaration x -> DataConstructorDeclaration # | |||||
Show DataConstructorDeclaration # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> DataConstructorDeclaration -> ShowS # show :: DataConstructorDeclaration -> String # showList :: [DataConstructorDeclaration] -> ShowS # | |||||
Eq DataConstructorDeclaration # | |||||
Defined in Language.PureScript.AST.Declarations Methods (==) :: DataConstructorDeclaration -> DataConstructorDeclaration -> Bool # (/=) :: DataConstructorDeclaration -> DataConstructorDeclaration -> Bool # | |||||
type Rep DataConstructorDeclaration # | |||||
Defined in Language.PureScript.AST.Declarations type Rep DataConstructorDeclaration = D1 ('MetaData "DataConstructorDeclaration" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "DataConstructorDeclaration" 'PrefixI 'True) (S1 ('MetaSel ('Just "dataCtorAnn") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourceAnn) :*: (S1 ('MetaSel ('Just "dataCtorName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ProperName 'ConstructorName)) :*: S1 ('MetaSel ('Just "dataCtorFields") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [(Ident, SourceType)])))) |
mapDataCtorFields :: ([(Ident, SourceType)] -> [(Ident, SourceType)]) -> DataConstructorDeclaration -> DataConstructorDeclaration #
traverseDataCtorFields :: Monad m => ([(Ident, SourceType)] -> m [(Ident, SourceType)]) -> DataConstructorDeclaration -> m DataConstructorDeclaration #
data Declaration #
The data type of declarations
Constructors
DataDeclaration SourceAnn DataDeclType (ProperName 'TypeName) [(Text, Maybe SourceType)] [DataConstructorDeclaration] | A data type declaration (data or newtype, name, arguments, data constructors) |
DataBindingGroupDeclaration (NonEmpty Declaration) | A minimal mutually recursive set of data type declarations |
TypeSynonymDeclaration SourceAnn (ProperName 'TypeName) [(Text, Maybe SourceType)] SourceType | A type synonym declaration (name, arguments, type) |
KindDeclaration SourceAnn KindSignatureFor (ProperName 'TypeName) SourceType | A kind signature declaration |
RoleDeclaration !RoleDeclarationData | A role declaration (name, roles) |
TypeDeclaration !TypeDeclarationData | A type declaration for a value (name, ty) |
ValueDeclaration !(ValueDeclarationData [GuardedExpr]) | A value declaration (name, top-level binders, optional guard, value) |
BoundValueDeclaration SourceAnn Binder Expr | A declaration paired with pattern matching in let-in expression (binder, optional guard, value) |
BindingGroupDeclaration (NonEmpty ((SourceAnn, Ident), NameKind, Expr)) | A minimal mutually recursive set of value declarations |
ExternDeclaration SourceAnn Ident SourceType | A foreign import declaration (name, type) |
ExternDataDeclaration SourceAnn (ProperName 'TypeName) SourceType | A data type foreign import (name, kind) |
FixityDeclaration SourceAnn (Either ValueFixity TypeFixity) | A fixity declaration |
ImportDeclaration SourceAnn ModuleName ImportDeclarationType (Maybe ModuleName) | A module import (module name, qualifiedunqualifiedhiding, optional "qualified as" name) |
TypeClassDeclaration SourceAnn (ProperName 'ClassName) [(Text, Maybe SourceType)] [SourceConstraint] [FunctionalDependency] [Declaration] | A type class declaration (name, argument, implies, member declarations) |
TypeInstanceDeclaration SourceAnn SourceAnn ChainId Integer (Either Text Ident) [SourceConstraint] (Qualified (ProperName 'ClassName)) [SourceType] TypeInstanceBody | A type instance declaration (instance chain, chain index, name, dependencies, class name, instance types, member declarations) The first |
Instances
NFData Declaration # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: Declaration -> () # | |||||
Generic Declaration # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
| |||||
Show Declaration # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> Declaration -> ShowS # show :: Declaration -> String # showList :: [Declaration] -> ShowS # | |||||
type Rep Declaration # | |||||
Defined in Language.PureScript.AST.Declarations type Rep Declaration = D1 ('MetaData "Declaration" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (((C1 ('MetaCons "DataDeclaration" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DataDeclType)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'TypeName)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Text, Maybe SourceType)]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DataConstructorDeclaration])))) :+: (C1 ('MetaCons "DataBindingGroupDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty Declaration))) :+: C1 ('MetaCons "TypeSynonymDeclaration" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'TypeName))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Text, Maybe SourceType)]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType))))) :+: ((C1 ('MetaCons "KindDeclaration" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 KindSignatureFor)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'TypeName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType))) :+: C1 ('MetaCons "RoleDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 RoleDeclarationData))) :+: (C1 ('MetaCons "TypeDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 TypeDeclarationData)) :+: C1 ('MetaCons "ValueDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 (ValueDeclarationData [GuardedExpr])))))) :+: (((C1 ('MetaCons "BoundValueDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Binder) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) :+: C1 ('MetaCons "BindingGroupDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NonEmpty ((SourceAnn, Ident), NameKind, Expr))))) :+: (C1 ('MetaCons "ExternDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Ident) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType))) :+: C1 ('MetaCons "ExternDataDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'TypeName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType))))) :+: ((C1 ('MetaCons "FixityDeclaration" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either ValueFixity TypeFixity))) :+: C1 ('MetaCons "ImportDeclaration" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ImportDeclarationType) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModuleName))))) :+: (C1 ('MetaCons "TypeClassDeclaration" 'PrefixI 'False) ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ProperName 'ClassName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Text, Maybe SourceType)]))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [SourceConstraint]) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FunctionalDependency]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Declaration])))) :+: C1 ('MetaCons "TypeInstanceDeclaration" 'PrefixI 'False) (((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceAnn)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChainId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer))) :*: ((S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either Text Ident)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [SourceConstraint])) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified (ProperName 'ClassName))) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [SourceType]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TypeInstanceBody))))))))) |
data ValueFixity #
Constructors
ValueFixity Fixity (Qualified (Either Ident (ProperName 'ConstructorName))) (OpName 'ValueOpName) |
Instances
NFData ValueFixity # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: ValueFixity -> () # | |||||
Generic ValueFixity # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
| |||||
Show ValueFixity # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> ValueFixity -> ShowS # show :: ValueFixity -> String # showList :: [ValueFixity] -> ShowS # | |||||
Eq ValueFixity # | |||||
Defined in Language.PureScript.AST.Declarations | |||||
Ord ValueFixity # | |||||
Defined in Language.PureScript.AST.Declarations Methods compare :: ValueFixity -> ValueFixity -> Ordering # (<) :: ValueFixity -> ValueFixity -> Bool # (<=) :: ValueFixity -> ValueFixity -> Bool # (>) :: ValueFixity -> ValueFixity -> Bool # (>=) :: ValueFixity -> ValueFixity -> Bool # max :: ValueFixity -> ValueFixity -> ValueFixity # min :: ValueFixity -> ValueFixity -> ValueFixity # | |||||
type Rep ValueFixity # | |||||
Defined in Language.PureScript.AST.Declarations type Rep ValueFixity = D1 ('MetaData "ValueFixity" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "ValueFixity" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Fixity) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified (Either Ident (ProperName 'ConstructorName)))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OpName 'ValueOpName))))) |
data TypeFixity #
Constructors
TypeFixity Fixity (Qualified (ProperName 'TypeName)) (OpName 'TypeOpName) |
Instances
NFData TypeFixity # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: TypeFixity -> () # | |||||
Generic TypeFixity # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
| |||||
Show TypeFixity # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> TypeFixity -> ShowS # show :: TypeFixity -> String # showList :: [TypeFixity] -> ShowS # | |||||
Eq TypeFixity # | |||||
Defined in Language.PureScript.AST.Declarations | |||||
Ord TypeFixity # | |||||
Defined in Language.PureScript.AST.Declarations Methods compare :: TypeFixity -> TypeFixity -> Ordering # (<) :: TypeFixity -> TypeFixity -> Bool # (<=) :: TypeFixity -> TypeFixity -> Bool # (>) :: TypeFixity -> TypeFixity -> Bool # (>=) :: TypeFixity -> TypeFixity -> Bool # max :: TypeFixity -> TypeFixity -> TypeFixity # min :: TypeFixity -> TypeFixity -> TypeFixity # | |||||
type Rep TypeFixity # | |||||
Defined in Language.PureScript.AST.Declarations type Rep TypeFixity = D1 ('MetaData "TypeFixity" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "TypeFixity" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Fixity) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified (ProperName 'TypeName))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OpName 'TypeOpName))))) |
pattern ValueFixityDeclaration :: SourceAnn -> Fixity -> Qualified (Either Ident (ProperName 'ConstructorName)) -> OpName 'ValueOpName -> Declaration #
pattern TypeFixityDeclaration :: SourceAnn -> Fixity -> Qualified (ProperName 'TypeName) -> OpName 'TypeOpName -> Declaration #
data InstanceDerivationStrategy #
Constructors
KnownClassStrategy | |
NewtypeStrategy |
Instances
NFData InstanceDerivationStrategy # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: InstanceDerivationStrategy -> () # | |||||
Generic InstanceDerivationStrategy # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: InstanceDerivationStrategy -> Rep InstanceDerivationStrategy x # to :: Rep InstanceDerivationStrategy x -> InstanceDerivationStrategy # | |||||
Show InstanceDerivationStrategy # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> InstanceDerivationStrategy -> ShowS # show :: InstanceDerivationStrategy -> String # showList :: [InstanceDerivationStrategy] -> ShowS # | |||||
type Rep InstanceDerivationStrategy # | |||||
Defined in Language.PureScript.AST.Declarations type Rep InstanceDerivationStrategy = D1 ('MetaData "InstanceDerivationStrategy" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "KnownClassStrategy" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NewtypeStrategy" 'PrefixI 'False) (U1 :: Type -> Type)) |
data TypeInstanceBody #
The members of a type class instance declaration
Constructors
DerivedInstance | This is a derived instance |
NewtypeInstance | This is an instance derived from a newtype |
ExplicitInstance [Declaration] | This is a regular (explicit) instance |
Instances
NFData TypeInstanceBody # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: TypeInstanceBody -> () # | |||||
Generic TypeInstanceBody # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: TypeInstanceBody -> Rep TypeInstanceBody x # to :: Rep TypeInstanceBody x -> TypeInstanceBody # | |||||
Show TypeInstanceBody # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> TypeInstanceBody -> ShowS # show :: TypeInstanceBody -> String # showList :: [TypeInstanceBody] -> ShowS # | |||||
type Rep TypeInstanceBody # | |||||
Defined in Language.PureScript.AST.Declarations type Rep TypeInstanceBody = D1 ('MetaData "TypeInstanceBody" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "DerivedInstance" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "NewtypeInstance" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExplicitInstance" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Declaration])))) |
mapTypeInstanceBody :: ([Declaration] -> [Declaration]) -> TypeInstanceBody -> TypeInstanceBody #
traverseTypeInstanceBody :: Applicative f => ([Declaration] -> f [Declaration]) -> TypeInstanceBody -> f TypeInstanceBody #
A traversal for TypeInstanceBody
data KindSignatureFor #
What sort of declaration the kind signature applies to.
Constructors
DataSig | |
NewtypeSig | |
TypeSynonymSig | |
ClassSig |
Instances
NFData KindSignatureFor # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: KindSignatureFor -> () # | |||||
Generic KindSignatureFor # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: KindSignatureFor -> Rep KindSignatureFor x # to :: Rep KindSignatureFor x -> KindSignatureFor # | |||||
Show KindSignatureFor # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> KindSignatureFor -> ShowS # show :: KindSignatureFor -> String # showList :: [KindSignatureFor] -> ShowS # | |||||
Eq KindSignatureFor # | |||||
Defined in Language.PureScript.AST.Declarations Methods (==) :: KindSignatureFor -> KindSignatureFor -> Bool # (/=) :: KindSignatureFor -> KindSignatureFor -> Bool # | |||||
Ord KindSignatureFor # | |||||
Defined in Language.PureScript.AST.Declarations Methods compare :: KindSignatureFor -> KindSignatureFor -> Ordering # (<) :: KindSignatureFor -> KindSignatureFor -> Bool # (<=) :: KindSignatureFor -> KindSignatureFor -> Bool # (>) :: KindSignatureFor -> KindSignatureFor -> Bool # (>=) :: KindSignatureFor -> KindSignatureFor -> Bool # max :: KindSignatureFor -> KindSignatureFor -> KindSignatureFor # min :: KindSignatureFor -> KindSignatureFor -> KindSignatureFor # | |||||
type Rep KindSignatureFor # | |||||
Defined in Language.PureScript.AST.Declarations type Rep KindSignatureFor = D1 ('MetaData "KindSignatureFor" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) ((C1 ('MetaCons "DataSig" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NewtypeSig" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TypeSynonymSig" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ClassSig" 'PrefixI 'False) (U1 :: Type -> Type))) |
declSourceAnn :: Declaration -> SourceAnn #
declSourceSpan :: Declaration -> SourceSpan #
declName :: Declaration -> Maybe Name #
isValueDecl :: Declaration -> Bool #
Test if a declaration is a value declaration
isDataDecl :: Declaration -> Bool #
Test if a declaration is a data type declaration
isTypeSynonymDecl :: Declaration -> Bool #
Test if a declaration is a type synonym declaration
isImportDecl :: Declaration -> Bool #
Test if a declaration is a module import
isRoleDecl :: Declaration -> Bool #
Test if a declaration is a role declaration
isExternDataDecl :: Declaration -> Bool #
Test if a declaration is a data type foreign import
isFixityDecl :: Declaration -> Bool #
Test if a declaration is a fixity declaration
isExternDecl :: Declaration -> Bool #
Test if a declaration is a foreign import
isTypeClassInstanceDecl :: Declaration -> Bool #
Test if a declaration is a type class instance declaration
isTypeClassDecl :: Declaration -> Bool #
Test if a declaration is a type class declaration
isKindDecl :: Declaration -> Bool #
Test if a declaration is a kind signature declaration.
flattenDecls :: [Declaration] -> [Declaration] #
Recursively flatten data binding groups in the list of declarations
A guard is just a boolean-valued expression that appears alongside a set of binders
Constructors
ConditionGuard Expr | |
PatternGuard Binder Expr |
Instances
NFData Guard # | |||||
Defined in Language.PureScript.AST.Declarations | |||||
Generic Guard # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
| |||||
Show Guard # | |||||
type Rep Guard # | |||||
Defined in Language.PureScript.AST.Declarations type Rep Guard = D1 ('MetaData "Guard" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "ConditionGuard" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: C1 ('MetaCons "PatternGuard" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Binder) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) |
data GuardedExpr #
The right hand side of a binder in value declarations and case expressions.
Constructors
GuardedExpr [Guard] Expr |
Instances
NFData GuardedExpr # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: GuardedExpr -> () # | |||||
Generic GuardedExpr # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
| |||||
Show GuardedExpr # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> GuardedExpr -> ShowS # show :: GuardedExpr -> String # showList :: [GuardedExpr] -> ShowS # | |||||
type Rep GuardedExpr # | |||||
Defined in Language.PureScript.AST.Declarations type Rep GuardedExpr = D1 ('MetaData "GuardedExpr" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "GuardedExpr" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Guard]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) |
pattern MkUnguarded :: Expr -> GuardedExpr #
Data type for expressions and terms
Constructors
Literal SourceSpan (Literal Expr) | A literal value |
UnaryMinus SourceSpan Expr | A prefix -, will be desugared |
BinaryNoParens Expr Expr Expr | Binary operator application. During the rebracketing phase of desugaring, this data constructor will be removed. |
Parens Expr | Explicit parentheses. During the rebracketing phase of desugaring, this data constructor will be removed. Note: although it seems this constructor is not used, it _is_ useful, since it prevents certain traversals from matching. |
Accessor PSString Expr | An record property accessor expression (e.g. `obj.x` or `_.x`). Anonymous arguments will be removed during desugaring and expanded into a lambda that reads a property from a record. |
ObjectUpdate Expr [(PSString, Expr)] | Partial record update |
ObjectUpdateNested Expr (PathTree Expr) | Object updates with nested support: `x { foo { bar = e } }`
Replaced during desugaring into a |
Abs Binder Expr | Function introduction |
App Expr Expr | Function application |
VisibleTypeApp Expr SourceType | A type application (e.g. `f @Int`) |
Unused Expr | Hint that an expression is unused.
This is used to ignore type class dictionaries that are necessarily empty.
The inner expression lets us solve subgoals before eliminating the whole expression.
The code gen will render this as |
Var SourceSpan (Qualified Ident) | Variable |
Op SourceSpan (Qualified (OpName 'ValueOpName)) | An operator. This will be desugared into a function during the "operators" phase of desugaring. |
IfThenElse Expr Expr Expr | Conditional (if-then-else expression) |
Constructor SourceSpan (Qualified (ProperName 'ConstructorName)) | A data constructor |
Case [Expr] [CaseAlternative] | A case expression. During the case expansion phase of desugaring, top-level binders will get desugared into case expressions, hence the need for guards and multiple binders per branch here. |
TypedValue Bool Expr SourceType | A value with a type annotation |
Let WhereProvenance [Declaration] Expr | A let binding |
Do (Maybe ModuleName) [DoNotationElement] | A do-notation block |
Ado (Maybe ModuleName) [DoNotationElement] Expr | An ado-notation block |
TypeClassDictionary SourceConstraint (Map QualifiedBy (Map (Qualified (ProperName 'ClassName)) (Map (Qualified Ident) (NonEmpty NamedDict)))) [ErrorMessageHint] | A placeholder for a type class dictionary to be inserted later. At the end of type checking, these placeholders will be replaced with actual expressions representing type classes dictionaries which can be evaluated at runtime. The constructor arguments represent (in order): whether or not to look at superclass implementations when searching for a dictionary, the type class name and instance type, and the type class dictionaries in scope. |
DeferredDictionary (Qualified (ProperName 'ClassName)) [SourceType] | A placeholder for a superclass dictionary to be turned into a TypeClassDictionary during typechecking |
DerivedInstancePlaceholder (Qualified (ProperName 'ClassName)) InstanceDerivationStrategy | A placeholder for a type class instance to be derived during typechecking |
AnonymousArgument | A placeholder for an anonymous function argument |
Hole Text | A typed hole that will be turned into a hint/error during typechecking |
PositionedValue SourceSpan [Comment] Expr | A value with source position information |
Instances
NFData Expr # | |||||
Defined in Language.PureScript.AST.Declarations | |||||
Generic Expr # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
| |||||
Show Expr # | |||||
type Rep Expr # | |||||
Defined in Language.PureScript.AST.Declarations type Rep Expr = D1 ('MetaData "Expr" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) ((((C1 ('MetaCons "Literal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Literal Expr))) :+: (C1 ('MetaCons "UnaryMinus" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: C1 ('MetaCons "BinaryNoParens" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))))) :+: (C1 ('MetaCons "Parens" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: (C1 ('MetaCons "Accessor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PSString) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: C1 ('MetaCons "ObjectUpdate" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(PSString, Expr)]))))) :+: ((C1 ('MetaCons "ObjectUpdateNested" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PathTree Expr))) :+: (C1 ('MetaCons "Abs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Binder) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: C1 ('MetaCons "App" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)))) :+: ((C1 ('MetaCons "VisibleTypeApp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType)) :+: C1 ('MetaCons "Unused" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) :+: (C1 ('MetaCons "Var" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified Ident))) :+: C1 ('MetaCons "Op" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified (OpName 'ValueOpName)))))))) :+: (((C1 ('MetaCons "IfThenElse" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) :+: (C1 ('MetaCons "Constructor" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified (ProperName 'ConstructorName)))) :+: C1 ('MetaCons "Case" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Expr]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [CaseAlternative])))) :+: (C1 ('MetaCons "TypedValue" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceType))) :+: (C1 ('MetaCons "Let" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 WhereProvenance) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Declaration]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) :+: C1 ('MetaCons "Do" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModuleName)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DoNotationElement]))))) :+: ((C1 ('MetaCons "Ado" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ModuleName)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [DoNotationElement]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) :+: (C1 ('MetaCons "TypeClassDictionary" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceConstraint) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map QualifiedBy (Map (Qualified (ProperName 'ClassName)) (Map (Qualified Ident) (NonEmpty NamedDict))))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ErrorMessageHint]))) :+: C1 ('MetaCons "DeferredDictionary" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified (ProperName 'ClassName))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [SourceType])))) :+: ((C1 ('MetaCons "DerivedInstancePlaceholder" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Qualified (ProperName 'ClassName))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 InstanceDerivationStrategy)) :+: C1 ('MetaCons "AnonymousArgument" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Hole" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "PositionedValue" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Comment]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)))))))) |
data WhereProvenance #
Metadata that tells where a let binding originated
Constructors
FromWhere | The let binding was originally a where clause |
FromLet | The let binding was always a let binding |
Instances
NFData WhereProvenance # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: WhereProvenance -> () # | |||||
Generic WhereProvenance # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: WhereProvenance -> Rep WhereProvenance x # to :: Rep WhereProvenance x -> WhereProvenance # | |||||
Show WhereProvenance # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> WhereProvenance -> ShowS # show :: WhereProvenance -> String # showList :: [WhereProvenance] -> ShowS # | |||||
type Rep WhereProvenance # | |||||
Defined in Language.PureScript.AST.Declarations |
data CaseAlternative #
An alternative in a case statement
Constructors
CaseAlternative | |
Fields
|
Instances
NFData CaseAlternative # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: CaseAlternative -> () # | |||||
Generic CaseAlternative # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: CaseAlternative -> Rep CaseAlternative x # to :: Rep CaseAlternative x -> CaseAlternative # | |||||
Show CaseAlternative # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> CaseAlternative -> ShowS # show :: CaseAlternative -> String # showList :: [CaseAlternative] -> ShowS # | |||||
type Rep CaseAlternative # | |||||
Defined in Language.PureScript.AST.Declarations type Rep CaseAlternative = D1 ('MetaData "CaseAlternative" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "CaseAlternative" 'PrefixI 'True) (S1 ('MetaSel ('Just "caseAlternativeBinders") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Binder]) :*: S1 ('MetaSel ('Just "caseAlternativeResult") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [GuardedExpr]))) |
data DoNotationElement #
A statement in a do-notation block
Constructors
DoNotationValue Expr | A monadic value without a binder |
DoNotationBind Binder Expr | A monadic value with a binder |
DoNotationLet [Declaration] | A let statement, i.e. a pure value with a binder |
PositionedDoNotationElement SourceSpan [Comment] DoNotationElement | A do notation element with source position information |
Instances
NFData DoNotationElement # | |||||
Defined in Language.PureScript.AST.Declarations Methods rnf :: DoNotationElement -> () # | |||||
Generic DoNotationElement # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
Methods from :: DoNotationElement -> Rep DoNotationElement x # to :: Rep DoNotationElement x -> DoNotationElement # | |||||
Show DoNotationElement # | |||||
Defined in Language.PureScript.AST.Declarations Methods showsPrec :: Int -> DoNotationElement -> ShowS # show :: DoNotationElement -> String # showList :: [DoNotationElement] -> ShowS # | |||||
type Rep DoNotationElement # | |||||
Defined in Language.PureScript.AST.Declarations type Rep DoNotationElement = D1 ('MetaData "DoNotationElement" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) ((C1 ('MetaCons "DoNotationValue" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr)) :+: C1 ('MetaCons "DoNotationBind" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Binder) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Expr))) :+: (C1 ('MetaCons "DoNotationLet" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Declaration])) :+: C1 ('MetaCons "PositionedDoNotationElement" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SourceSpan) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Comment]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DoNotationElement))))) |
Instances
Functor PathTree # | |
Foldable PathTree # | |
Defined in Language.PureScript.AST.Declarations Methods fold :: Monoid m => PathTree m -> m # foldMap :: Monoid m => (a -> m) -> PathTree a -> m # foldMap' :: Monoid m => (a -> m) -> PathTree a -> m # foldr :: (a -> b -> b) -> b -> PathTree a -> b # foldr' :: (a -> b -> b) -> b -> PathTree a -> b # foldl :: (b -> a -> b) -> b -> PathTree a -> b # foldl' :: (b -> a -> b) -> b -> PathTree a -> b # foldr1 :: (a -> a -> a) -> PathTree a -> a # foldl1 :: (a -> a -> a) -> PathTree a -> a # elem :: Eq a => a -> PathTree a -> Bool # maximum :: Ord a => PathTree a -> a # minimum :: Ord a => PathTree a -> a # | |
Traversable PathTree # | |
Defined in Language.PureScript.AST.Declarations | |
NFData t => NFData (PathTree t) # | |
Defined in Language.PureScript.AST.Declarations | |
Show t => Show (PathTree t) # | |
Eq t => Eq (PathTree t) # | |
Ord t => Ord (PathTree t) # | |
Defined in Language.PureScript.AST.Declarations |
Instances
Functor PathNode # | |||||
Foldable PathNode # | |||||
Defined in Language.PureScript.AST.Declarations Methods fold :: Monoid m => PathNode m -> m # foldMap :: Monoid m => (a -> m) -> PathNode a -> m # foldMap' :: Monoid m => (a -> m) -> PathNode a -> m # foldr :: (a -> b -> b) -> b -> PathNode a -> b # foldr' :: (a -> b -> b) -> b -> PathNode a -> b # foldl :: (b -> a -> b) -> b -> PathNode a -> b # foldl' :: (b -> a -> b) -> b -> PathNode a -> b # foldr1 :: (a -> a -> a) -> PathNode a -> a # foldl1 :: (a -> a -> a) -> PathNode a -> a # elem :: Eq a => a -> PathNode a -> Bool # maximum :: Ord a => PathNode a -> a # minimum :: Ord a => PathNode a -> a # | |||||
Traversable PathNode # | |||||
Defined in Language.PureScript.AST.Declarations | |||||
NFData t => NFData (PathNode t) # | |||||
Defined in Language.PureScript.AST.Declarations | |||||
Generic (PathNode t) # | |||||
Defined in Language.PureScript.AST.Declarations Associated Types
| |||||
Show t => Show (PathNode t) # | |||||
Eq t => Eq (PathNode t) # | |||||
Ord t => Ord (PathNode t) # | |||||
Defined in Language.PureScript.AST.Declarations | |||||
type Rep (PathNode t) # | |||||
Defined in Language.PureScript.AST.Declarations type Rep (PathNode t) = D1 ('MetaData "PathNode" "Language.PureScript.AST.Declarations" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "Leaf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 t)) :+: C1 ('MetaCons "Branch" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (PathTree t)))) |
Constructors
AssocList | |
Fields
|
Instances
Functor (AssocList k) # | |
Foldable (AssocList k) # | |
Defined in Language.PureScript.AST.Declarations Methods fold :: Monoid m => AssocList k m -> m # foldMap :: Monoid m => (a -> m) -> AssocList k a -> m # foldMap' :: Monoid m => (a -> m) -> AssocList k a -> m # foldr :: (a -> b -> b) -> b -> AssocList k a -> b # foldr' :: (a -> b -> b) -> b -> AssocList k a -> b # foldl :: (b -> a -> b) -> b -> AssocList k a -> b # foldl' :: (b -> a -> b) -> b -> AssocList k a -> b # foldr1 :: (a -> a -> a) -> AssocList k a -> a # foldl1 :: (a -> a -> a) -> AssocList k a -> a # toList :: AssocList k a -> [a] # null :: AssocList k a -> Bool # length :: AssocList k a -> Int # elem :: Eq a => a -> AssocList k a -> Bool # maximum :: Ord a => AssocList k a -> a # minimum :: Ord a => AssocList k a -> a # | |
Traversable (AssocList k) # | |
Defined in Language.PureScript.AST.Declarations | |
(NFData k, NFData t) => NFData (AssocList k t) # | |
Defined in Language.PureScript.AST.Declarations | |
(Show k, Show t) => Show (AssocList k t) # | |
(Eq k, Eq t) => Eq (AssocList k t) # | |
(Ord k, Ord t) => Ord (AssocList k t) # | |
Defined in Language.PureScript.AST.Declarations Methods compare :: AssocList k t -> AssocList k t -> Ordering # (<) :: AssocList k t -> AssocList k t -> Bool # (<=) :: AssocList k t -> AssocList k t -> Bool # (>) :: AssocList k t -> AssocList k t -> Bool # (>=) :: AssocList k t -> AssocList k t -> Bool # |
isTrueExpr :: Expr -> Bool #
isAnonymousArgument :: Expr -> Bool #