kontrakcja-templates-0.11: src/Text/StringTemplates/Templates/Class.hs
module Text.StringTemplates.Templates.Class where
import Control.Monad.Trans
import Text.StringTemplates.TemplatesLoader
-- | Simple reader monad class that provides access to templates
class (Applicative m, Monad m) => TemplatesMonad m where
-- | Get templates (for text templates default language name is used).
getTemplates :: m Templates
-- | Get templates (for text templates specified language name is used).
getTextTemplatesByLanguage :: String -> m Templates
-- | Generic, overlappable instance.
instance {-# OVERLAPPABLE #-}
( Applicative (t m)
, Monad (t m)
, MonadTrans t
, TemplatesMonad m
) => TemplatesMonad (t m) where
getTemplates = lift getTemplates
getTextTemplatesByLanguage = lift . getTextTemplatesByLanguage