{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE ImplicitParams #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}

module L10n where

import qualified Data.Text as T

class L10n locale a where
    l6e :: locale -> a -> T.Text

instance L10n locale T.Text where
    l6e _ x = x

instance L10n locale Int where
    l6e _ = T.pack . show

class GetLocale s a | s -> a where
    getLocale :: s -> a