template-haskell-natural-1.0.0.0
Safe HaskellNone
LanguageHaskell2010

Language.Haskell.TH.Natural.Syntax.Class

Description

Builder for declaring typeclass

Synopsis

Builder

newClass :: String -> ClassBuilder () -> Q ClassD Source #

Builds a typeclass declaration, using its name and a ClassBuilder

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