- type HsLocalBinds id = HsLocalBindsLR id id
- data HsLocalBindsLR idL idR
- = HsValBinds (HsValBindsLR idL idR)
- | HsIPBinds (HsIPBinds idR)
- | EmptyLocalBinds
- type HsValBinds id = HsValBindsLR id id
- data HsValBindsLR idL idR
- = ValBindsIn (LHsBindsLR idL idR) [LSig idR]
- | ValBindsOut [(RecFlag, LHsBinds idL)] [LSig Name]
- type LHsBind id = LHsBindLR id id
- type LHsBinds id = LHsBindsLR id id
- type HsBind id = HsBindLR id id
- type LHsBindsLR idL idR = Bag (LHsBindLR idL idR)
- type LHsBindLR idL idR = Located (HsBindLR idL idR)
- data HsBindLR idL idR
- = FunBind { }
- | PatBind {
- pat_lhs :: LPat idL
- pat_rhs :: GRHSs idR
- pat_rhs_ty :: PostTcType
- bind_fvs :: NameSet
- | VarBind {
- var_id :: idL
- var_rhs :: LHsExpr idR
- var_inline :: Bool
- | AbsBinds {
- abs_tvs :: [TyVar]
- abs_ev_vars :: [EvVar]
- abs_exports :: [([TyVar], idL, idL, TcSpecPrags)]
- abs_ev_binds :: TcEvBinds
- abs_binds :: LHsBinds idL
- placeHolderNames :: NameSet
- pprValBindsForUser :: (OutputableBndr idL, OutputableBndr idR, OutputableBndr id2) => LHsBindsLR idL idR -> [LSig id2] -> SDoc
- pprLHsBinds :: (OutputableBndr idL, OutputableBndr idR) => LHsBindsLR idL idR -> SDoc
- emptyLocalBinds :: HsLocalBindsLR a b
- isEmptyLocalBinds :: HsLocalBindsLR a b -> Bool
- isEmptyValBinds :: HsValBindsLR a b -> Bool
- emptyValBindsIn, emptyValBindsOut :: HsValBindsLR a b
- emptyLHsBinds :: LHsBindsLR idL idR
- isEmptyLHsBinds :: LHsBindsLR idL idR -> Bool
- plusHsValBinds :: HsValBinds a -> HsValBinds a -> HsValBinds a
- getTypeSigNames :: HsValBinds a -> NameSet
- ppr_monobind :: (OutputableBndr idL, OutputableBndr idR) => HsBindLR idL idR -> SDoc
- pprTicks :: SDoc -> SDoc -> SDoc
- data HsIPBinds id = IPBinds [LIPBind id] TcEvBinds
- isEmptyIPBinds :: HsIPBinds id -> Bool
- type LIPBind id = Located (IPBind id)
- data IPBind id = IPBind (IPName id) (LHsExpr id)
- data HsWrapper
- data TcEvBinds
- = TcEvBinds EvBindsVar
- | EvBinds (Bag EvBind)
- data EvBindsVar = EvBindsVar (IORef EvBindMap) Unique
- type EvBindMap = VarEnv EvBind
- emptyEvBindMap :: EvBindMap
- extendEvBinds :: EvBindMap -> EvVar -> EvTerm -> EvBindMap
- lookupEvBind :: EvBindMap -> EvVar -> Maybe EvBind
- evBindMapBinds :: EvBindMap -> Bag EvBind
- data EvBind = EvBind EvVar EvTerm
- data EvTerm
- evVarTerm :: EvVar -> EvTerm
- emptyTcEvBinds :: TcEvBinds
- isEmptyTcEvBinds :: TcEvBinds -> Bool
- (<.>) :: HsWrapper -> HsWrapper -> HsWrapper
- mkWpTyApps :: [Type] -> HsWrapper
- mkWpEvApps :: [EvTerm] -> HsWrapper
- mkWpEvVarApps :: [EvVar] -> HsWrapper
- mkWpTyLams :: [TyVar] -> HsWrapper
- mkWpLams :: [Var] -> HsWrapper
- mkWpLet :: TcEvBinds -> HsWrapper
- mk_co_lam_fn :: (a -> HsWrapper) -> [a] -> HsWrapper
- mk_co_app_fn :: (a -> HsWrapper) -> [a] -> HsWrapper
- idHsWrapper :: HsWrapper
- isIdHsWrapper :: HsWrapper -> Bool
- pprHsWrapper :: SDoc -> HsWrapper -> SDoc
- type LSig name = Located (Sig name)
- data Sig name
- = TypeSig [Located name] (LHsType name)
- | GenericSig [Located name] (LHsType name)
- | IdSig Id
- | FixSig (FixitySig name)
- | InlineSig (Located name) InlinePragma
- | SpecSig (Located name) (LHsType name) InlinePragma
- | SpecInstSig (LHsType name)
- type LFixitySig name = Located (FixitySig name)
- data FixitySig name = FixitySig (Located name) Fixity
- data TcSpecPrags
- type LTcSpecPrag = Located TcSpecPrag
- data TcSpecPrag = SpecPrag Id HsWrapper InlinePragma
- noSpecPrags :: TcSpecPrags
- hasSpecPrags :: TcSpecPrags -> Bool
- isDefaultMethod :: TcSpecPrags -> Bool
- okBindSig :: Sig a -> Bool
- okHsBootSig :: Sig a -> Bool
- okClsDclSig :: Sig a -> Bool
- okInstDclSig :: Sig a -> Bool
- isFixityLSig :: LSig name -> Bool
- isVanillaLSig :: LSig name -> Bool
- isTypeLSig :: LSig name -> Bool
- isSpecLSig :: LSig name -> Bool
- isSpecInstLSig :: LSig name -> Bool
- isPragLSig :: LSig name -> Bool
- isInlineLSig :: LSig name -> Bool
- hsSigDoc :: Sig name -> SDoc
- eqHsSig :: Eq a => LSig a -> LSig a -> Bool
- ppr_sig :: OutputableBndr name => Sig name -> SDoc
- pragBrackets :: SDoc -> SDoc
- pprVarSig :: Outputable id => [id] -> SDoc -> SDoc
- pprSpec :: Outputable id => id -> SDoc -> InlinePragma -> SDoc
- pprTcSpecPrags :: TcSpecPrags -> SDoc
Documentation
type HsLocalBinds id = HsLocalBindsLR id idSource
data HsLocalBindsLR idL idR Source
HsValBinds (HsValBindsLR idL idR) | |
HsIPBinds (HsIPBinds idR) | |
EmptyLocalBinds |
Typeable2 HsLocalBindsLR | |
(Data idL, Data idR) => Data (HsLocalBindsLR idL idR) | |
(OutputableBndr idL, OutputableBndr idR) => Outputable (HsLocalBindsLR idL idR) |
type HsValBinds id = HsValBindsLR id idSource
data HsValBindsLR idL idR Source
ValBindsIn (LHsBindsLR idL idR) [LSig idR] | |
ValBindsOut [(RecFlag, LHsBinds idL)] [LSig Name] |
Typeable2 HsValBindsLR | |
(Data idL, Data idR) => Data (HsValBindsLR idL idR) | |
(OutputableBndr idL, OutputableBndr idR) => Outputable (HsValBindsLR idL idR) |
type LHsBinds id = LHsBindsLR id idSource
type LHsBindsLR idL idR = Bag (LHsBindLR idL idR)Source
FunBind | FunBind is used for both functions Reason 1: Special case for type inference: see Reason 2: Instance decls can only have FunBinds, which is convenient. If you change this, you'll need to change e.g. rnMethodBinds But note that the form |
| |
PatBind | |
| |
VarBind | |
| |
AbsBinds | |
|
Typeable2 HsBindLR | |
(Data idL, Data idR) => Data (HsBindLR idL idR) | |
(OutputableBndr idL, OutputableBndr idR) => Outputable (HsBindLR idL idR) |
pprValBindsForUser :: (OutputableBndr idL, OutputableBndr idR, OutputableBndr id2) => LHsBindsLR idL idR -> [LSig id2] -> SDocSource
pprLHsBinds :: (OutputableBndr idL, OutputableBndr idR) => LHsBindsLR idL idR -> SDocSource
isEmptyLocalBinds :: HsLocalBindsLR a b -> BoolSource
isEmptyValBinds :: HsValBindsLR a b -> BoolSource
emptyLHsBinds :: LHsBindsLR idL idRSource
isEmptyLHsBinds :: LHsBindsLR idL idR -> BoolSource
plusHsValBinds :: HsValBinds a -> HsValBinds a -> HsValBinds aSource
getTypeSigNames :: HsValBinds a -> NameSetSource
ppr_monobind :: (OutputableBndr idL, OutputableBndr idR) => HsBindLR idL idR -> SDocSource
Typeable1 HsIPBinds | |
Data id => Data (HsIPBinds id) | |
OutputableBndr id => Outputable (HsIPBinds id) |
isEmptyIPBinds :: HsIPBinds id -> BoolSource
Implicit parameter bindings.
Typeable1 IPBind | |
Data id => Data (IPBind id) | |
OutputableBndr id => Outputable (IPBind id) |
mkWpTyApps :: [Type] -> HsWrapperSource
mkWpEvApps :: [EvTerm] -> HsWrapperSource
mkWpEvVarApps :: [EvVar] -> HsWrapperSource
mkWpTyLams :: [TyVar] -> HsWrapperSource
mk_co_lam_fn :: (a -> HsWrapper) -> [a] -> HsWrapperSource
mk_co_app_fn :: (a -> HsWrapper) -> [a] -> HsWrapperSource
isIdHsWrapper :: HsWrapper -> BoolSource
pprHsWrapper :: SDoc -> HsWrapper -> SDocSource
TypeSig [Located name] (LHsType name) | |
GenericSig [Located name] (LHsType name) | |
IdSig Id | |
FixSig (FixitySig name) | |
InlineSig (Located name) InlinePragma | |
SpecSig (Located name) (LHsType name) InlinePragma | |
SpecInstSig (LHsType name) |
Typeable1 Sig | |
Data name => Data (Sig name) | |
OutputableBndr name => Outputable (Sig name) |
type LFixitySig name = Located (FixitySig name)Source
Typeable1 FixitySig | |
Data name => Data (FixitySig name) | |
Outputable name => Outputable (FixitySig name) |
data TcSpecPrags Source
type LTcSpecPrag = Located TcSpecPragSource
data TcSpecPrag Source
okHsBootSig :: Sig a -> BoolSource
okClsDclSig :: Sig a -> BoolSource
okInstDclSig :: Sig a -> BoolSource
isFixityLSig :: LSig name -> BoolSource
isVanillaLSig :: LSig name -> BoolSource
isTypeLSig :: LSig name -> BoolSource
isSpecLSig :: LSig name -> BoolSource
isSpecInstLSig :: LSig name -> BoolSource
isPragLSig :: LSig name -> BoolSource
isInlineLSig :: LSig name -> BoolSource
ppr_sig :: OutputableBndr name => Sig name -> SDocSource
pragBrackets :: SDoc -> SDocSource
pprVarSig :: Outputable id => [id] -> SDoc -> SDocSource
pprSpec :: Outputable id => id -> SDoc -> InlinePragma -> SDocSource