DsBinds

ghc-8.2.2: The GHC API

Safe Haskell | None
Language | Haskell2010

DsBinds

Synopsis

- dsTopLHsBinds :: LHsBinds Id -> DsM (OrdList (Id, CoreExpr))
- dsLHsBinds :: LHsBinds Id -> DsM ([Id], [(Id, CoreExpr)])
- decomposeRuleLhs :: [Var] -> CoreExpr -> Either SDoc ([Var], Id, [CoreExpr])
- dsSpec :: Maybe CoreExpr -> Located TcSpecPrag -> DsM (Maybe (OrdList (Id, CoreExpr), CoreRule))
- dsHsWrapper :: HsWrapper -> DsM (CoreExpr -> CoreExpr)
- dsTcEvBinds :: TcEvBinds -> DsM [CoreBind]
- dsTcEvBinds_s :: [TcEvBinds] -> DsM [CoreBind]
- dsEvBinds :: Bag EvBind -> DsM [CoreBind]
- dsMkUserRule :: Module -> Bool -> RuleName -> Activation -> Name -> [CoreBndr] -> [CoreExpr] -> CoreExpr -> DsM CoreRule

# Documentation

dsTopLHsBinds :: LHsBinds Id -> DsM (OrdList (Id, CoreExpr)) Source #

Desugar top level binds, strict binds are treated like normal binds since there is no good time to force before first usage.

dsLHsBinds :: LHsBinds Id -> DsM ([Id], [(Id, CoreExpr)]) Source #

Desugar all other kind of bindings, Ids of strict binds are returned to later be forced in the binding group body, see Note [Desugar Strict binds]

decomposeRuleLhs :: [Var] -> CoreExpr -> Either SDoc ([Var], Id, [CoreExpr]) Source #

dsSpec :: Maybe CoreExpr -> Located TcSpecPrag -> DsM (Maybe (OrdList (Id, CoreExpr), CoreRule)) Source #

dsHsWrapper :: HsWrapper -> DsM (CoreExpr -> CoreExpr) Source #

dsTcEvBinds :: TcEvBinds -> DsM [CoreBind] Source #

dsTcEvBinds_s :: [TcEvBinds] -> DsM [CoreBind] Source #

dsEvBinds :: Bag EvBind -> DsM [CoreBind] Source #

dsMkUserRule :: Module -> Bool -> RuleName -> Activation -> Name -> [CoreBndr] -> [CoreExpr] -> CoreExpr -> DsM CoreRule Source #