module Reflex.Localize.Monad
(
MonadLocalized(..)
) where
import Control.Monad.Reader
import Reflex
import Reflex.Localize.Language
class (Reflex t, Monad m) => MonadLocalized t m | m -> t where
setLanguage :: Language -> m ()
setLanguageE :: Event t (Language) -> m ()
getLanguage :: m (Dynamic t Language)
instance {-# OVERLAPPABLE #-} MonadLocalized t m => MonadLocalized t (ReaderT e m) where
setLanguage = lift . setLanguage
setLanguageE = lift . setLanguageE
getLanguage = lift getLanguage
{-# INLINE setLanguage #-}
{-# INLINE setLanguageE #-}
{-# INLINE getLanguage #-}