TcGenDeriv

ghc-7.10.3: The GHC API

Safe Haskell | None
Language | Haskell2010

TcGenDeriv

# Documentation

type BagDerivStuff = Bag DerivStuff

data DerivStuff

Constructors

DerivAuxBind AuxBindSpec |
DerivTyCon TyCon |
DerivFamInst FamInst |
DerivHsBind (LHsBind RdrName, LSig RdrName) |
DerivInst (InstInfo RdrName) |

canDeriveAnyClass :: DynFlags -> TyCon -> Class -> Maybe SDoc

genDerivedBinds :: DynFlags -> (Name -> Fixity) -> Class -> SrcSpan -> TyCon -> (LHsBinds RdrName, BagDerivStuff)

data FFoldType a

Constructors

FT |
Fields ft_triv :: a ft_var :: a ft_co_var :: a ft_fun :: a -> a -> a ft_tup :: TupleSort -> [a] -> a ft_ty_app :: Type -> a -> a ft_bad_app :: a ft_forall :: TcTyVar -> a -> a

functorLikeTraverse

Arguments

:: TyVar | Variable to look for
-> FFoldType a | How to fold
-> Type | Type to process
-> a |

deepSubtypesContaining :: TyVar -> Type -> [TcType]

foldDataConArgs :: FFoldType a -> DataCon -> [a]

mkCoerceClassMethEqn :: Class -> [TyVar] -> [Type] -> Type -> Id -> Pair Type

gen_Newtype_binds :: SrcSpan -> Class -> [TyVar] -> [Type] -> Type -> LHsBinds RdrName

genAuxBinds :: SrcSpan -> BagDerivStuff -> SeparateBagsDerivStuff

ordOpTbl :: [(Type, (RdrName, RdrName, RdrName, RdrName, RdrName))]

boxConTbl :: [(Type, RdrName)]

mkRdrFunBind :: Located RdrName -> [LMatch RdrName (LHsExpr RdrName)] -> LHsBind RdrName