{-# LANGUAGE TypeSynonymInstances #-}
--------------------------------------------------------------------------------
-- |
-- Module : Data.String.ToString
-- Copyright : (c) 2009 Bas van Dijk
-- License : BSD3 (see the file LICENSE)
-- Maintainer : v.dijk.bas@gmail.com
-- Stability : Stable
--
--------------------------------------------------------------------------------
module Data.String.ToString
( ToString
, toString
, fromToString
)
where
import Data.String (IsString, fromString)
class ToString s where
-- | Convert a string-like type to a 'String'.
toString :: s -> String
instance ToString String where
toString = id
instance ToString Char where
toString = (:[])
-- | General coercion between string-like types.
fromToString :: (IsString s2, ToString s1) => s1 -> s2
fromToString = fromString . toString