{-# LANGUAGE FlexibleInstances #-}
module Web.Route.Invertible.String
( RouteString(..)
) where
import qualified Data.ByteString.Char8 as BS
import Data.Hashable (Hashable(..))
import Data.String (IsString(..))
import qualified Data.Text as T
class (Eq s, IsString s, Hashable s, Monoid s) => RouteString s where
toString :: s -> String
instance RouteString String where
toString :: String -> String
toString = String -> String
forall a. a -> a
id
instance RouteString T.Text where
toString :: Text -> String
toString = Text -> String
T.unpack
instance RouteString BS.ByteString where
toString :: ByteString -> String
toString = ByteString -> String
BS.unpack