ghc-7.8.4: The GHC API

Safe Haskell | None
Language | Haskell98

HsPat

# Documentation

data Pat id

Constructors

WildPat PostTcType |
VarPat id |
LazyPat (LPat id) |
AsPat (Located id) (LPat id) |
ParPat (LPat id) |
BangPat (LPat id) |
ListPat [LPat id] PostTcType (Maybe (PostTcType, SyntaxExpr id)) |
TuplePat [LPat id] Boxity [PostTcType] |
PArrPat [LPat id] PostTcType |
ConPatIn (Located id) (HsConPatDetails id) |
ConPatOut |

Fields

pat_con :: Located ConLike
pat_arg_tys :: [Type]
pat_tvs :: [TyVar]
pat_dicts :: [EvVar]
pat_binds :: TcEvBinds
pat_args :: HsConPatDetails id
pat_wrap :: HsWrapper

ViewPat (LHsExpr id) (LPat id) PostTcType |
SplicePat (HsSplice id) |
QuasiQuotePat (HsQuasiQuote id) |
LitPat HsLit |
NPat (HsOverLit id) (Maybe (SyntaxExpr id)) (SyntaxExpr id) |
NPlusKPat (Located id) (HsOverLit id) (SyntaxExpr id) (SyntaxExpr id) |
SigPatIn (LPat id) (HsWithBndrs (LHsType id)) |
SigPatOut (LPat id) Type |
CoPat HsWrapper (Pat id) Type |

Instances

Data id => Data (Pat id) |
OutputableBndr name => Outputable (Pat name) |
Typeable (* -> *) Pat |

type InPat id = LPat id

type OutPat id = LPat id

type LPat id = Located (Pat id)

data HsConDetails arg rec

Constructors

PrefixCon [arg] |
RecCon rec |
InfixCon arg arg |

Instances

(Data arg, Data rec) => Data (HsConDetails arg rec) |
Typeable (* -> * -> *) HsConDetails |

type HsConPatDetails id = HsConDetails (LPat id) (HsRecFields id (LPat id))

hsConPatArgs :: HsConPatDetails id -> [LPat id]

data HsRecFields id arg

Constructors

HsRecFields |

Fields

rec_flds :: [HsRecField id arg]
rec_dotdot :: Maybe Int

Instances

(Data id, Data arg) => Data (HsRecFields id arg) |
(OutputableBndr id, Outputable arg) => Outputable (HsRecFields id arg) |
Typeable (* -> * -> *) HsRecFields |

data HsRecField id arg

Constructors

HsRecField |

Fields

hsRecFieldId :: Located id
hsRecFieldArg :: arg
hsRecPun :: Bool

Instances

(Data id, Data arg) => Data (HsRecField id arg) |
(OutputableBndr id, Outputable arg) => Outputable (HsRecField id arg) |
Typeable (* -> * -> *) HsRecField |

hsRecFields :: HsRecFields id arg -> [id]

mkPrefixConPat :: DataCon -> [OutPat id] -> [Type] -> OutPat id

mkCharLitPat :: Char -> OutPat id

mkNilPat :: Type -> OutPat id

isStrictHsBind :: HsBind id -> Bool

looksLazyPatBind :: HsBind id -> Bool

isStrictLPat :: LPat id -> Bool

hsPatNeedsParens :: Pat a -> Bool

isIrrefutableHsPat :: OutputableBndr id => LPat id -> Bool

pprParendLPat :: OutputableBndr name => LPat name -> SDoc