Module
Language.PS.SmartCST.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 :: SmartQualifiedName (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 (SmartQualifiedName Ident) (SmartQualifiedNameConstructor)) (OpName OpNameType_ValueOpName)
FixityType (SmartQualifiedName (ProperName ProperNameType_TypeConstructor)) (OpName OpNameType_TypeOpName)
Instances
#PSType Source
data PSType
Constructors
TypeVar Ident
TypeConstructor (SmartQualifiedName (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 (SmartQualifiedName (OpName OpNameType_TypeOpName)) PSType
TypeConstrained PSConstraint PSType
Instances
#TypeVarBinding Source
#PSConstraint Source
newtype PSConstraint
Constructors
PSConstraint { args :: Array PSType, className :: SmartQualifiedName (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 :: SmartQualifiedNameConstructor }
BinderBoolean Boolean
BinderChar Char
BinderString String
BinderNumber (Either Int Number)
BinderArray (Array Binder)
BinderRecord (Array (RecordLabeled Binder))
BinderTyped Binder PSType
BinderOp Binder (SmartQualifiedName (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 (SmartQualifiedName Ident)
ExprVar Ident
ExprConstructor (SmartQualifiedNameConstructor)
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 (SmartQualifiedName (OpName OpNameType_ValueOpName)) Expr
ExprOpName (SmartQualifiedName (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 (SmartQualifiedName (OpName OpNameType_TypeOpName)) TypeArrName TypeParens PSType -- generated automatically