registry-0.4.0.0: data structure for assembling components
Safe HaskellSafe-Inferred
LanguageGHC2021

Data.Registry.TH

Description

This module generates a typeclass for a given "record of functions". For this component: @ data Logger m = Logger { _info :: Text -> m () , _error :: Text -> m () }

  • - makeTypeClass ''Logger generates

class WithLogger m where info :: Text -> m () error :: Text -> m ()

  • - This requires the import of Typed from `generic-lens` instance HasType (Logger m) s => WithLogger (ReaderT s m) where info t = ReaderT (l -> _info (getTyped l) t) error t = ReaderT (l -> _error (getType l) t) @
Synopsis

Documentation

data TypeclassOptions Source #

These generation options can be used to tweak the generated names

makeTypeclass :: Name -> DecsQ Source #

Create the haskell code presented in the module description

makeTypeclassWith :: TypeclassOptions -> Name -> DecsQ Source #

Make a typeclass using some specific generation options