Module
Language.PS.CST.Types.Declaration
- Package
- purescript-ps-cst
- Repository
- purescript-codegen/purescript-ps-cst
#Declaration Source
data Declaration
Constructors
DeclData { comments :: Maybe Comments, constructors :: Array DataCtor, head :: DataHead }
DeclType { comments :: Maybe Comments, head :: DataHead, type_ :: PSType }
DeclNewtype { comments :: Maybe Comments, head :: DataHead, name :: ProperName ProperNameType_ConstructorName, type_ :: PSType }
DeclClass { comments :: Maybe Comments, head :: ClassHead, methods :: Array { ident :: Ident, type_ :: PSType } }
DeclInstanceChain { comments :: Maybe Comments, instances :: NonEmptyArray (Instance) }
DeclDerive { comments :: Maybe Comments, deriveType :: DeclDeriveType, head :: InstanceHead }
DeclSignature { comments :: Maybe Comments, ident :: Ident, type_ :: PSType }
DeclValue { comments :: Maybe Comments, valueBindingFields :: ValueBindingFields }
DeclFixity { comments :: Maybe Comments, fixityFields :: FixityFields }
DeclForeign { comments :: Maybe Comments, foreign_ :: Foreign }
Instances
#InstanceHead Source
type InstanceHead = { instClass :: QualifiedName (ProperName ProperNameType_ClassName), instConstraints :: Array PSConstraint, instName :: Ident, instTypes :: NonEmptyArray PSType }
#Foreign Source
data Foreign
Constructors
ForeignValue { ident :: Ident, type_ :: PSType }
ForeignData { kind_ :: PSType, name :: ProperName ProperNameType_TypeConstructor }
ForeignKind { name :: ProperName ProperNameType_TypeConstructor }
Instances
#FixityFields Source
type FixityFields = { keyword :: Fixity, operator :: FixityOp, precedence :: Int }
#FixityOp Source
data FixityOp
Constructors
FixityValue (Either (QualifiedName Ident) (QualifiedName (ProperName ProperNameType_ConstructorName))) (OpName OpNameType_ValueOpName)
FixityType (QualifiedName (ProperName ProperNameType_TypeConstructor)) (OpName OpNameType_TypeOpName)
Instances
#PSType Source
data PSType
Constructors
TypeVar Ident
TypeConstructor (QualifiedName (ProperName ProperNameType_TypeConstructor))
TypeWildcard
TypeHole Ident
TypeString String
TypeRow PSRow
TypeRecord PSRow
TypeApp PSType PSType
TypeForall (NonEmptyArray TypeVarBinding) PSType
TypeArr PSType PSType
TypeKinded PSType PSType
TypeOp PSType (QualifiedName (OpName OpNameType_TypeOpName)) PSType
TypeConstrained PSConstraint PSType
Instances
#TypeVarBinding Source
#PSConstraint Source
newtype PSConstraint
Constructors
PSConstraint { args :: Array PSType, className :: QualifiedName (ProperName ProperNameType_ClassName) }
Instances
Generic PSConstraint _
ConstraintParens PSConstraint
Eq PSConstraint
Ord PSConstraint
Show PSConstraint
#ClassHead Source
type ClassHead = { fundeps :: Array ClassFundep, name :: ProperName ProperNameType_ClassName, super :: Array PSConstraint, vars :: Array TypeVarBinding }
#ValueBindingFields Source
type ValueBindingFields = { binders :: Array Binder, guarded :: Guarded, name :: Ident }
#Binder Source
data Binder
Constructors
BinderWildcard
BinderVar Ident
BinderNamed { binder :: Binder, ident :: Ident }
BinderConstructor { args :: Array Binder, name :: QualifiedName (ProperName ProperNameType_ConstructorName) }
BinderBoolean Boolean
BinderChar Char
BinderString String
BinderNumber (Either Int Number)
BinderArray (Array Binder)
BinderRecord (Array (RecordLabeled Binder))
BinderTyped Binder PSType
BinderOp Binder (QualifiedName (OpName OpNameType_ValueOpName)) Binder
Instances
#LetBinding Source
data LetBinding
Constructors
LetBindingSignature { ident :: Ident, type_ :: PSType }
LetBindingName ValueBindingFields
LetBindingPattern { binder :: Binder, where_ :: Where }
Instances
#GuardedExpr Source
type GuardedExpr = { patterns :: NonEmptyArray PatternGuard, where_ :: Where }
#Expr Source
data Expr
Constructors
ExprHole Ident
ExprSection
ExprIdent (QualifiedName Ident)
ExprConstructor (QualifiedName (ProperName ProperNameType_ConstructorName))
ExprBoolean Boolean
ExprChar Char
ExprString String
ExprNumber (Either Int Number)
ExprArray (Array Expr)
ExprRecord (Array (RecordLabeled Expr))
ExprTyped Expr PSType
ExprInfix Expr Expr Expr
ExprOp Expr (QualifiedName (OpName OpNameType_ValueOpName)) Expr
ExprOpName (QualifiedName (OpName OpNameType_ValueOpName))
ExprNegate Expr
ExprRecordAccessor RecordAccessor
ExprRecordUpdate Expr (NonEmptyArray RecordUpdate)
ExprApp Expr Expr
ExprLambda Lambda
ExprIf IfThenElse
ExprCase CaseOf
ExprLet LetIn
ExprDo (NonEmptyArray DoStatement)
ExprAdo AdoBlock
Instances
#RecordAccessor Source
type RecordAccessor = { recExpr :: Expr, recPath :: NonEmptyArray Label }
#RecordUpdate Source
#CaseOf Source
type CaseOf = { branches :: NonEmptyArray { binders :: NonEmptyArray Binder, body :: Guarded }, head :: NonEmptyArray Expr }
#LetIn Source
type LetIn = { bindings :: NonEmptyArray LetBinding, body :: Expr }
#DoStatement Source
data DoStatement
Constructors
DoLet (NonEmptyArray LetBinding)
DoDiscard Expr
DoBind { binder :: Binder, expr :: Expr }
Instances
#InstanceBinding Source
data InstanceBinding
Constructors
InstanceBindingSignature { ident :: Ident, type_ :: PSType }
InstanceBindingName ValueBindingFields
Instances
#Instance Source
type Instance = { body :: Array InstanceBinding, head :: InstanceHead }
- Modules
- Language.
PS. CST - Language.
PS. CST. Printers - Language.
PS. CST. Printers. PrintImports - Language.
PS. CST. Printers. PrintModuleModuleNameAndExports - Language.
PS. CST. Printers. TypeLevel - Language.
PS. CST. Printers. Utils - Language.
PS. CST. ReservedNames - Language.
PS. CST. Sugar. Declaration - Language.
PS. CST. Sugar. Leafs - Language.
PS. CST. Sugar. QualifiedName - Language.
PS. CST. Types. Declaration - Language.
PS. CST. Types. Leafs - Language.
PS. CST. Types. Module - Language.
PS. CST. Types. QualifiedName - Language.
PS. SmartCST - Language.
PS. SmartCST. ProcessModule - Language.
PS. SmartCST. ProcessSmartDeclaration - Language.
PS. SmartCST. ProcessSmartDeclaration. Utils - Language.
PS. SmartCST. Sugar. Declaration - Language.
PS. SmartCST. Types. Declaration - Language.
PS. SmartCST. Types. SmartQualifiedName - Language.
PS. SmartCST. Types. SmartQualifiedNameConstructor
TypeOpName (QualifiedName (OpName OpNameType_TypeOpName)) TypeArrName TypeParens PSType -- generated automatically