Calls expandSynsWith with the default settings.
Moduleth-expand-syns-0.4.12.0Haskell2010
Language.Haskell.TH.ExpandSyns
- 1 type
- 7 values
- Packageth-expand-syns-0.4.12.0
- Exports8
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceExpandSyns.hs
Expand synonyms
4 declarationsExpands all type synonyms in the given type. Type families currently won't be expanded (but will be passed through).
Instances2Semigroup, Monoid
Semigroup SynonymExpansionSettingsDefined in th-expand-syns-0.4.12.0 · Language.Haskell.TH.ExpandSynsMonoid SynonymExpansionSettingsDefined in th-expand-syns-0.4.12.0 · Language.Haskell.TH.ExpandSyns
Suppresses the warning that type families are unsupported.
Misc utilities
4 declarationsCapture-free substitution
Capture-free substitution
Make a list of names (based on the first arg) such that every name in the result is distinct from every name in the second arg, and from the other results
Make a name (based on the first arg) that's distinct from every name in the second arg
Example why this is necessary:
type E x = forall y. Either x y
... expandSyns [t| forall y. y -> E y |]The example as given may actually work correctly without any special capture-avoidance depending
on how GHC handles the ys, but in any case, the input type to expandSyns may be an explicit
AST using mkName to ensure a collision.