Safe Haskell | Safe-Inferred |
---|
Inlining definitions into their use sites.
- inline :: (Inline c, Ord n) => (n -> Maybe (Exp a n)) -> Set n -> c a n -> c a n
- data InlineSpec n
- = InlineSpecAll {
- inlineSpecModuleName :: ModuleName
- inlineSpecExclude :: Set n
- | InlineSpecNone {
- inlineSpecModuleName :: ModuleName
- inlineSpecInclude :: Set n
- = InlineSpecAll {
- lookupTemplateFromModules :: (Eq n, Ord n, Show n) => Map ModuleName (InlineSpec n) -> [Module a n] -> n -> Maybe (Exp a n)
Documentation
:: (Inline c, Ord n) | |
=> (n -> Maybe (Exp a n)) | Get the template for a named variable. |
-> Set n | Don't inline definitions for these names. |
-> c a n | |
-> c a n |
data InlineSpec n Source
Inlining specification says what bindings we should inline from a particular module.
InlineSpecAll | Inline all bindings from a module, but exclude some particulars. |
| |
InlineSpecNone | Inline no bindings from a module, but include some particulars. |
|
Show n => Show (InlineSpec n) |
lookupTemplateFromModulesSource
:: (Eq n, Ord n, Show n) | |
=> Map ModuleName (InlineSpec n) | Inliner specifications for the modules. |
-> [Module a n] | Modules to use for inliner templates. |
-> n | |
-> Maybe (Exp a n) |
Lookup an inliner template from a list of modules.