polyglot-0.1.1.0: src/SyntaxTrees/Haskell/Pattern.hs
module SyntaxTrees.Haskell.Pattern where
import SyntaxTrees.Haskell.Common (Literal, QCtor, QCtorOp, Var)
data Pattern
= CtorPattern
{ ctor :: QCtor
, fields :: [Pattern]
}
| InfixCtorPattern
{ ctorOp :: QCtorOp
, fields :: [Pattern]
}
| RecordPattern
{ ctor :: QCtor
, namedFields :: [(Var, Maybe Pattern)]
}
| WildcardRecordPattern
{ ctor :: QCtor
, namedFields :: [(Var, Maybe Pattern)]
}
| AliasedPattern Var Pattern
| ListPattern [Pattern]
| TuplePattern [Pattern]
| VarPattern Var
| LitPattern Literal
| Wildcard
deriving (Show)