module Text.StringTemplates.Templates.Class where
import Control.Monad.Trans
import Text.StringTemplates.TemplatesLoader
class (Applicative m, Monad m) => TemplatesMonad m where
getTemplates :: m Templates
getTextTemplatesByLanguage :: String -> m Templates
instance {-# OVERLAPPABLE #-}
( Applicative (t m)
, Monad (t m)
, MonadTrans t
, TemplatesMonad m
) => TemplatesMonad (t m) where
getTemplates :: t m Templates
getTemplates = m Templates -> t m Templates
forall (m :: * -> *) a. Monad m => m a -> t m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m Templates
forall (m :: * -> *). TemplatesMonad m => m Templates
getTemplates
getTextTemplatesByLanguage :: String -> t m Templates
getTextTemplatesByLanguage = m Templates -> t m Templates
forall (m :: * -> *) a. Monad m => m a -> t m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m Templates -> t m Templates)
-> (String -> m Templates) -> String -> t m Templates
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> m Templates
forall (m :: * -> *). TemplatesMonad m => String -> m Templates
getTextTemplatesByLanguage