purescript-0.8.2.0: PureScript Programming Language Compiler

Safe HaskellNone
LanguageHaskell98

Language.PureScript.AST.Binders

Description

Case binders

Synopsis

Documentation

data Binder Source

Data type for binders

Constructors

NullBinder

Wildcard binder

BooleanBinder Bool

A binder which matches a boolean literal

StringBinder String

A binder which matches a string literal

CharBinder Char

A binder which matches a character literal

NumberBinder (Either Integer Double)

A binder which matches a numeric literal

VarBinder Ident

A binder which binds an identifier

ConstructorBinder (Qualified (ProperName ConstructorName)) [Binder]

A binder which matches a data constructor

OpBinder (Qualified Ident)

A operator alias binder. During the rebracketing phase of desugaring, this data constructor will be removed.

BinaryNoParensBinder Binder Binder Binder

Binary operator application. During the rebracketing phase of desugaring, this data constructor will be removed.

ParensInBinder Binder

Explicit parentheses. During the rebracketing phase of desugaring, this data constructor will be removed.

Note: although it seems this constructor is not used, it _is_ useful, since it prevents certain traversals from matching.

ObjectBinder [(String, Binder)]

A binder which matches a record and binds its properties

ArrayBinder [Binder]

A binder which matches an array and binds its elements

NamedBinder Ident Binder

A binder which binds its input to an identifier

PositionedBinder SourceSpan [Comment] Binder

A binder with source position information

TypedBinder Type Binder

A binder with a type annotation

binderNames :: Binder -> [Ident] Source

Collect all names introduced in binders in an expression