Module

Language.PS.CST

Package
purescript-ps-cst
Repository
purescript-codegen/purescript-ps-cst

Re-exports from Language.PS.CST.Printers

#printRecordLabeled Source

printRecordLabeled :: forall a. (a -> Doc Void) -> RecordLabeled a -> Doc Void

#printModule Source

printModule :: Module -> Doc Void

This is an entry point

#printGuarded Source

#printExpr Source

#printBinder Source

Re-exports from Language.PS.CST.ReservedNames

#quoteIfReserved Source

#appendUnderscoreIfReserved Source

Re-exports from Language.PS.CST.Sugar.Declaration

#booleanType Source

Re-exports from Language.PS.CST.Sugar.Leafs

#mkRowLabels Source

mkRowLabels :: forall type_. Array (String /\ type_) -> Array { label :: Label, type_ :: type_ }

#mkRowLabel Source

mkRowLabel :: forall type_. (String /\ type_) -> { label :: Label, type_ :: type_ }

#emptyRow Source

emptyRow :: forall labelType type_. { rowLabels :: Array labelType, rowTail :: Maybe 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

#Where Source

type Where = { expr :: Expr, whereBindings :: Array LetBinding }

#ValueBindingFields Source

type ValueBindingFields = { binders :: Array Binder, guarded :: Guarded, name :: Ident }

#RecordAccessor Source

type RecordAccessor = { recExpr :: Expr, recPath :: NonEmptyArray Label }

#PatternGuard Source

type PatternGuard = { binder :: Maybe Binder, expr :: Expr }

#PSRow Source

type PSRow = { rowLabels :: Array { label :: Label, type_ :: PSType }, rowTail :: Maybe PSType }

#PSConstraint Source

newtype PSConstraint

Constructors

Instances

#LetIn Source

type LetIn = { bindings :: NonEmptyArray LetBinding, body :: Expr }

#Lambda Source

type Lambda = { binders :: NonEmptyArray Binder, body :: Expr }

#InstanceHead Source

type InstanceHead = { instClass :: QualifiedName (ProperName ProperNameType_ClassName), instConstraints :: Array PSConstraint, instName :: Ident, instTypes :: NonEmptyArray PSType }

#Instance Source

type Instance = { body :: Array InstanceBinding, head :: InstanceHead }

#IfThenElse Source

type IfThenElse = { cond :: Expr, false_ :: Expr, true_ :: Expr }

#GuardedExpr Source

type GuardedExpr = { patterns :: NonEmptyArray PatternGuard, where_ :: Where }

#FixityFields Source

type FixityFields = { keyword :: Fixity, operator :: FixityOp, precedence :: Int }

#Declaration Source

data Declaration

Constructors

Instances

#ClassHead Source

#CaseOf Source

type CaseOf = { branches :: NonEmptyArray { binders :: NonEmptyArray Binder, body :: Guarded }, head :: NonEmptyArray Expr }

#AdoBlock Source

type AdoBlock = { result :: Expr, statements :: Array DoStatement }

#(====>>) 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

#ProperNameType_TypeConstructor Source

#ProperNameType_Namespace Source

#ProperNameType_ConstructorName Source

#ProperNameType_ClassName Source

#ProperNameType Source

#ProperName Source

newtype ProperName (proxy :: ProperNameType)

Constructors

Instances

#OpNameType_ValueOpName Source

#OpNameType_TypeOpName Source

#OpNameType Source

#OpName Source

newtype OpName (proxy :: OpNameType)

Constructors

Instances

#Comments Source

data Comments

Constructors

Instances

#ClassFundep Source

data ClassFundep

Constructors

Instances

Re-exports from Language.PS.CST.Types.Module

#Module Source

newtype Module

Constructors

Instances

#ImportDecl Source

newtype ImportDecl

Constructors

Instances

Re-exports from Language.PS.CST.Types.QualifiedName

#QualifiedName Source

newtype QualifiedName a

Constructors

Instances