Module
Language.PS.SmartCST
- Package
- purescript-ps-cst
- Repository
- purescript-codegen/purescript-ps-cst
Re-exports from Language.PS.CST.ReservedNames
#quoteIfReserved Source
quoteIfReserved :: String -> String
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.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.SmartCST.ProcessModule
#Module Source
newtype Module
Constructors
Module { declarations :: Array Declaration, exports :: Array Export, moduleName :: ModuleName }
#moduleToCstModule Source
moduleToCstModule :: Module -> Module
Re-exports from Language.PS.SmartCST.Sugar.Declaration
#stringType Source
stringType :: PSType
#numberType Source
numberType :: PSType
Re-exports from Language.PS.SmartCST.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 (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
#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
#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 :: SmartQualifiedName (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 (SmartQualifiedName Ident) (SmartQualifiedNameConstructor)) (OpName OpNameType_ValueOpName)
FixityType (SmartQualifiedName (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 (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
#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 :: 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
#(====>>) Source
Operator alias for Language.PS.SmartCST.Types.Declaration.TypeArr (right-associative / precedence 5)
#(====>) Source
Operator alias for Language.PS.SmartCST.Types.Declaration.ExprLambda (left-associative / precedence 5)
Re-exports from Language.PS.SmartCST.Types.SmartQualifiedName
#SmartQualifiedName Source
data SmartQualifiedName a
Constructors
SmartQualifiedName__Ignore a
SmartQualifiedName__Full ModuleName a
SmartQualifiedName__Simple ModuleName a
SmartQualifiedName__Custom ModuleName ModuleName a
Instances
Generic (SmartQualifiedName a) _
Functor SmartQualifiedName
(Eq a) => Eq (SmartQualifiedName a)
(Ord a) => Ord (SmartQualifiedName a)
(Show a) => Show (SmartQualifiedName a)
Re-exports from Language.PS.SmartCST.Types.SmartQualifiedNameConstructor
#SmartQualifiedNameConstructor Source
data SmartQualifiedNameConstructor
Constructors
SmartQualifiedNameConstructor__Ignore (ProperName ProperNameType_ConstructorName)
SmartQualifiedNameConstructor__Full ModuleName (ProperName ProperNameType_ConstructorName) (ProperName ProperNameType_TypeConstructor)
SmartQualifiedNameConstructor__Simple ModuleName (ProperName ProperNameType_ConstructorName) (ProperName ProperNameType_TypeConstructor)
SmartQualifiedNameConstructor__Custom ModuleName ModuleName (ProperName ProperNameType_ConstructorName) (ProperName ProperNameType_TypeConstructor)
Instances
- 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
Rendered as