Pattern
Constructors
WildPat (XWildPat p)Wildcard Pattern, i.e.
_VarPat (XVarPat p) (LIdP p)Variable Pattern, e.g.
xLazyPat (XLazyPat p) (LPat p)Lazy Pattern, e.g.
~xAsPat (XAsPat p) (LIdP p) (LPat p)As pattern, e.g.
x@patParPat (XParPat p) (LPat p)Parenthesised pattern, e.g.
(x)BangPat (XBangPat p) (LPat p)Bang pattern, e.g.
!xListPat (XListPat p) [LPat p]Syntactic List, e.g.
[x]or[x,y]. Note that[]and(x:xs)patterns are both represented using ConPat.TuplePat (XTuplePat p) [LPat p] BoxityTuple pattern, e.g.
(x, y)(boxed tuples) or(# x, y #)(requires-XUnboxedTuples)OrPat (XOrPat p) (NonEmpty (LPat p))Or Pattern, e.g.
(pat_1; ...; pat_n). Used by-XOrPatternsSumPat (XSumPat p) (LPat p) ConTag SumWidthAnonymous sum pattern, e.g.
(# x | #). Used by-XUnboxedSumsConPatConstructor Pattern, e.g.
(),[]orNothingpat_con_ext :: XConPat ppat_con :: XRec p (ConLikeP p)pat_args :: HsConPatDetails p
ViewPat (XViewPat p) (LHsExpr p) (LPat p)View Pattern, e.g.
someFun -> pat. Used by-XViewPatternsSplicePat (XSplicePat p) (HsUntypedSplice p)Splice Pattern, e.g.
$(pat)LitPat (XLitPat p) (HsLit p)Literal Pattern
Used for non-overloaded literal patterns: Int#, Char#, Int, Char, String, etc.
NPat (XNPat p) (XRec p (HsOverLit p)) (Maybe (SyntaxExpr p)) (SyntaxExpr p)Natural Pattern, used for all overloaded literals, including overloaded Strings with
-XOverloadedStringsNPlusKPat (XNPlusKPat p) (LIdP p) (XRec p (HsOverLit p)) (HsOverLit p) (SyntaxExpr p) (SyntaxExpr p)n+k pattern, e.g.
n+1, used by-XNPlusKPatternsSigPat (XSigPat p) (LPat p) (HsPatSigType (NoGhcTc p))Pattern with a type signature, e.g.
x :: IntEmbTyPat (XEmbTyPat p) (HsTyPat (NoGhcTc p))Embed the syntax of types into patterns, e.g.
fn (type t) = rhs. Enabled by-XExplicitNamespacesin conjunction with-XRequiredTypeArguments.InvisPat (XInvisPat p) (HsTyPat (NoGhcTc p))Type abstraction which brings into scope type variables associated with invisible forall. E.g.
fn @t ... = rhs. Used by-XTypeAbstractions.XPat !(XXPat p)TTG Extension point; see Note [Trees That Grow] in Language.Haskell.Syntax.Extension
Instances9Data, Outputable, CollectBinders, CollectFldBinders, Anno, …
Data (Pat GhcPs)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Hs.Instances · orphanData (Pat GhcRn)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Hs.Instances · orphanData (Pat GhcTc)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Hs.Instances · orphanOutputableBndrId p => Outputable (Pat (GhcPass p))Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Hs.Pat · orphanCollectBinders (LocatedA (Pat GhcTc))Defined in ghc-lib-parser-9.14.1.20251220 · GHC.HsToCore.TicksCollectBinders [LocatedA (Pat GhcTc)]Defined in ghc-lib-parser-9.14.1.20251220 · GHC.HsToCore.TicksCollectFldBinders (Pat GhcTc)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.HsToCore.Tickstype Anno (Pat (GhcPass p)) = SrcSpanAnnADefined in ghc-lib-parser-9.14.1.20251220 · GHC.Hs.Pat · orphantype Anno [LocatedA (Pat (GhcPass p))] = EpaLocationDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Hs.Expr · orphan