Safe Haskell | None |
---|
Module used internally by the Derive module for binding group calculation.
- type BindingGroup = [(Name, [(Name, [[Type]])])]
- getBindingGroup :: Name -> Q BindingGroup
- showBindingGroup :: Name -> Q Exp
- data UserType = UserD Name [Name] [Con]
- getUserType :: Name -> Q UserType
- unrollApp :: Type -> [Type]
Binding group
type BindingGroup = [(Name, [(Name, [[Type]])])]Source
Mapping from types to the list of types (with specific constructor instantiations, the '[[Type]]') in the same binding group.
getBindingGroup :: Name -> Q BindingGroupSource
Find cyclic type dependencies (binding groups)
showBindingGroup :: Name -> Q ExpSource
Template Haskell helpers
getUserType :: Name -> Q UserTypeSource
Get a unified type for 'data' and 'newtype'