Module

Language.PS.CST.Types.Declaration

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

#Declaration Source

data Declaration

Constructors

Instances

#InstanceHead Source

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

#FixityFields Source

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

#PSRow Source

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

#PSConstraint Source

newtype PSConstraint

Constructors

Instances

#ClassHead Source

#ValueBindingFields Source

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

#Where Source

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

#GuardedExpr Source

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

#PatternGuard Source

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

#RecordAccessor Source

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

#Lambda Source

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

#IfThenElse Source

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

#CaseOf Source

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

#LetIn Source

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

#AdoBlock Source

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

#Instance Source

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

#(====>) Source

Operator alias for Language.PS.CST.Types.Declaration.ExprLambda (left-associative / precedence 5)

#(====>>) Source

Operator alias for Language.PS.CST.Types.Declaration.TypeArr (right-associative / precedence 5)