Safe Haskell | None |
---|---|
Language | Haskell2010 |
Case binders
- data Binder
- = NullBinder
- | LiteralBinder SourceSpan (Literal Binder)
- | VarBinder SourceSpan Ident
- | ConstructorBinder SourceSpan (Qualified (ProperName ConstructorName)) [Binder]
- | OpBinder SourceSpan (Qualified (OpName ValueOpName))
- | BinaryNoParensBinder Binder Binder Binder
- | ParensInBinder Binder
- | NamedBinder SourceSpan Ident Binder
- | PositionedBinder SourceSpan [Comment] Binder
- | TypedBinder Type Binder
- binderNames :: Binder -> [Ident]
- isIrrefutable :: Binder -> Bool
Documentation
Data type for binders
NullBinder | Wildcard binder |
LiteralBinder SourceSpan (Literal Binder) | A binder which matches a literal |
VarBinder SourceSpan Ident | A binder which binds an identifier |
ConstructorBinder SourceSpan (Qualified (ProperName ConstructorName)) [Binder] | A binder which matches a data constructor |
OpBinder SourceSpan (Qualified (OpName ValueOpName)) | 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. |
NamedBinder SourceSpan 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
isIrrefutable :: Binder -> Bool Source #