| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.Haskell.TH.Natural.Syntax.Class
Description
Builder for declaring typeclass
Synopsis
- newClass :: String -> ClassBuilder () -> Q ClassD
- type ClassBuilder a = ConstBuilder ClassD a
- addTypeVar :: forall {k} s (step :: k). HasTyVarBndr s [TyVarBndr BndrVis] => TypeVarName -> Builder s step step ()
- addTypeVar' :: forall {k} s vis (step :: k). HasTyVarBndr s [TyVarBndr vis] => TypeVarName -> vis -> Maybe Kind -> Builder s step step ()
- addFunDep :: [TypeVarName] -> [TypeVarName] -> ClassBuilder ()
- addSignature :: GenType a => String -> a -> ClassBuilder ()
- newTypeVar :: forall {k} st (step :: k). String -> Builder st step step TypeVarName
- module Language.Haskell.TH.Natural.Syntax.Builder.Monad
Builder
newClass :: String -> ClassBuilder () -> Q ClassD Source #
Builds a typeclass declaration, using its name and a ClassBuilder
type ClassBuilder a = ConstBuilder ClassD a Source #
Functions
addTypeVar :: forall {k} s (step :: k). HasTyVarBndr s [TyVarBndr BndrVis] => TypeVarName -> Builder s step step () Source #
Add the type variable to the tyVarBndr list
addTypeVar' :: forall {k} s vis (step :: k). HasTyVarBndr s [TyVarBndr vis] => TypeVarName -> vis -> Maybe Kind -> Builder s step step () Source #
Same as addTypeVar, but allows setting the kind and vis of the type variable
addFunDep :: [TypeVarName] -> [TypeVarName] -> ClassBuilder () Source #
Add functional dependencies
addSignature :: GenType a => String -> a -> ClassBuilder () Source #
Add a function signature to the class
Re-export
newTypeVar :: forall {k} st (step :: k). String -> Builder st step step TypeVarName Source #
Builds a new type variable