Module
Language.PS.CST
- Package
- purescript-ps-cst
- Repository
- purescript-codegen/purescript-ps-cst
Re-exports from Language.PS.CST.Printers
#printRecordUpdate Source
printRecordUpdate :: RecordUpdate -> Doc Void
#printRecordLabeled Source
printRecordLabeled :: forall a. (a -> Doc Void) -> RecordLabeled a -> Doc Void
#printLetBinding Source
printLetBinding :: LetBinding -> Doc Void
#printDeclarations Source
printDeclarations :: Array Declaration -> Doc Void
#printDeclaration Source
printDeclaration :: Declaration -> Doc Void
Re-exports from Language.PS.CST.ReservedNames
#quoteIfReserved Source
quoteIfReserved :: String -> String
Re-exports from Language.PS.CST.Sugar.Declaration
#stringType Source
stringType :: PSType
#numberType Source
numberType :: PSType
Re-exports from Language.PS.CST.Sugar.Leafs
#mkRowLabel Source
mkRowLabel :: forall type_. (String /\ type_) -> { label :: Label, type_ :: type_ }
Re-exports from Language.PS.CST.Sugar.QualifiedName
#qualifiedName Source
qualifiedName :: forall a. ModuleName -> a -> QualifiedName a
#nonQualifiedName Source
nonQualifiedName :: forall a. a -> QualifiedName a
Re-exports from Language.PS.CST.Types.Declaration
#ValueBindingFields Source
type ValueBindingFields = { binders :: Array Binder, guarded :: Guarded, name :: Ident }
#TypeVarBinding Source
#RecordUpdate Source
#RecordAccessor Source
type RecordAccessor = { recExpr :: Expr, recPath :: NonEmptyArray Label }
#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
#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
#LetIn Source
type LetIn = { bindings :: NonEmptyArray LetBinding, body :: Expr }
#LetBinding Source
data LetBinding
Constructors
LetBindingSignature { ident :: Ident, type_ :: PSType }
LetBindingName ValueBindingFields
LetBindingPattern { binder :: Binder, where_ :: Where }
Instances
#InstanceHead Source
type InstanceHead = { instClass :: QualifiedName (ProperName ProperNameType_ClassName), instConstraints :: Array PSConstraint, instName :: Ident, instTypes :: NonEmptyArray PSType }
#InstanceBinding Source
data InstanceBinding
Constructors
InstanceBindingSignature { ident :: Ident, type_ :: PSType }
InstanceBindingName ValueBindingFields
Instances
#Instance Source
type Instance = { body :: Array InstanceBinding, head :: InstanceHead }
#GuardedExpr Source
type GuardedExpr = { patterns :: NonEmptyArray PatternGuard, where_ :: Where }
#Foreign Source
data Foreign
Constructors
ForeignValue { ident :: Ident, type_ :: PSType }
ForeignData { kind_ :: PSType, name :: ProperName ProperNameType_TypeConstructor }
ForeignKind { name :: ProperName ProperNameType_TypeConstructor }
Instances
#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
#FixityFields Source
type FixityFields = { keyword :: Fixity, operator :: FixityOp, precedence :: Int }
#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
#DoStatement Source
data DoStatement
Constructors
DoLet (NonEmptyArray LetBinding)
DoDiscard Expr
DoBind { binder :: Binder, expr :: Expr }
Instances
#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
#ClassHead Source
type ClassHead = { fundeps :: Array ClassFundep, name :: ProperName ProperNameType_ClassName, super :: Array PSConstraint, vars :: Array TypeVarBinding }
#CaseOf Source
type CaseOf = { branches :: NonEmptyArray { binders :: NonEmptyArray Binder, body :: Guarded }, head :: NonEmptyArray Expr }
#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
#(====>>) Source
Operator alias for Language.PS.CST.Types.Declaration.TypeArr (right-associative / precedence 5)
#(====>) Source
Operator alias for Language.PS.CST.Types.Declaration.ExprLambda (left-associative / precedence 5)
Re-exports from Language.PS.CST.Types.Leafs
#RecordLabeled Source
data RecordLabeled a
Constructors
Instances
Functor RecordLabeled
Foldable RecordLabeled
Traversable RecordLabeled
Generic (RecordLabeled a) _
(Eq a) => Eq (RecordLabeled a)
(Ord a) => Ord (RecordLabeled a)
(Show a) => Show (RecordLabeled a)
#ProperNameType Source
data ProperNameType
#ProperName Source
newtype ProperName (proxy :: ProperNameType)
Constructors
Instances
Newtype (ProperName proxy) _
Generic (ProperName proxy) _
Eq (ProperName proxy)
Ord (ProperName proxy)
Show (ProperName proxy)
#OpNameType_ValueOpName Source
data OpNameType_ValueOpName :: OpNameType
#OpNameType_TypeOpName Source
data OpNameType_TypeOpName :: OpNameType
#OpNameType Source
data OpNameType
#ModuleName Source
#ClassFundep Source
data ClassFundep
Constructors
Instances
Generic ClassFundep _
FundepDetermined (NonEmptyArray Ident) -- parser is not allowing it (i.e.
class Foo a | a
)?Eq ClassFundep
Ord ClassFundep
Show ClassFundep
Re-exports from Language.PS.CST.Types.Module
#ImportDecl Source
newtype ImportDecl
Constructors
ImportDecl { moduleName :: ModuleName, names :: Array Import, qualification :: Maybe ModuleName }
Instances
#Import Source
data Import
Constructors
ImportValue Ident
ImportOp (OpName OpNameType_ValueOpName)
ImportType (ProperName ProperNameType_TypeConstructor) (Maybe DataMembers)
ImportTypeOp (OpName OpNameType_TypeOpName)
ImportClass (ProperName ProperNameType_ClassName)
ImportKind (ProperName ProperNameType_TypeConstructor)
Instances
#Export Source
data Export
Constructors
ExportValue Ident
ExportOp (OpName OpNameType_ValueOpName)
ExportType (ProperName ProperNameType_TypeConstructor) (Maybe DataMembers)
ExportTypeOp (OpName OpNameType_TypeOpName)
ExportClass (ProperName ProperNameType_ClassName)
ExportKind (ProperName ProperNameType_TypeConstructor)
ExportModule ModuleName
Instances
#DataMembers Source
Re-exports from Language.PS.CST.Types.QualifiedName
#QualifiedName Source
newtype QualifiedName a
Constructors
QualifiedName { qualModule :: Maybe ModuleName, qualName :: a }
Instances
Functor QualifiedName
Newtype (QualifiedName a) _
(Eq a) => Eq (QualifiedName a)
(Ord a) => Ord (QualifiedName a)
(Show a) => Show (QualifiedName a)
- 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