module Language.Haskell.Tools.Rewrite.Match.Patterns where
import Language.Haskell.Tools.AST (Ann(..), UPatternField(..), UPattern(..))
import Language.Haskell.Tools.Rewrite.ElementTypes
pattern VarPat :: Name -> Pattern
pattern VarPat var <- Ann _ (UVarPat var)
pattern LitPat :: Literal -> Pattern
pattern LitPat lit <- Ann _ (ULitPat lit)
pattern InfixAppPat :: Pattern -> Operator -> Pattern -> Pattern
pattern InfixAppPat lhs op rhs <- Ann _ (UInfixAppPat lhs op rhs)
pattern AppPat :: Name -> PatternList -> Pattern
pattern AppPat n pat <- Ann _ (UAppPat n pat)
pattern TuplePat :: PatternList -> Pattern
pattern TuplePat pats <- Ann _ (UTuplePat pats)
pattern UnboxTuplePat :: PatternList -> Pattern
pattern UnboxTuplePat pats <- Ann _ (UUnboxTuplePat pats)
pattern ListPat :: PatternList -> Pattern
pattern ListPat pats <- Ann _ (UListPat pats)
pattern ParArrayPat :: PatternList -> Pattern
pattern ParArrayPat pats <- Ann _ (UParArrPat pats)
pattern ParenPat :: Pattern -> Pattern
pattern ParenPat pat <- Ann _ (UParenPat pat)
pattern RecPat :: Name -> PatternFieldList -> Pattern
pattern RecPat name flds <- Ann _ (URecPat name flds)
pattern AsPat :: Name -> Pattern -> Pattern
pattern AsPat name pat <- Ann _ (UAsPat name pat)
pattern WildPat :: Pattern
pattern WildPat <- Ann _ UWildPat
pattern IrrefutablePat :: Pattern -> Pattern
pattern IrrefutablePat pat <- Ann _ (UIrrefutablePat pat)
pattern BangPat :: Pattern -> Pattern
pattern BangPat pat <- Ann _ (UBangPat pat)
pattern TypeSigPat :: Pattern -> Type -> Pattern
pattern TypeSigPat pat typ <- Ann _ (UTypeSigPat pat typ)
pattern ViewPat :: Expr -> Pattern -> Pattern
pattern ViewPat name pat <- Ann _ (UViewPat name pat)
pattern SplicePat :: Splice -> Pattern
pattern SplicePat splice <- Ann _ (USplicePat splice)
pattern QuasiQuotePat :: QuasiQuote -> Pattern
pattern QuasiQuotePat qq <- Ann _ (UQuasiQuotePat qq)
pattern NPlusKPat :: Name -> Literal -> Pattern
pattern NPlusKPat name lit <- Ann _ (UNPlusKPat name lit)
pattern FieldPattern :: Name -> Pattern -> PatternField
pattern FieldPattern name pat <- Ann _ (UNormalFieldPattern name pat)
pattern FieldPunPattern :: Name -> PatternField
pattern FieldPunPattern name <- Ann _ (UFieldPunPattern name)
pattern FieldWildcardPattern :: FieldWildcard -> PatternField
pattern FieldWildcardPattern wildc <- Ann _ (UFieldWildcardPattern wildc)