module Data.GenericString where
import Data.String
import Data.Word (Word8)
import qualified Data.ByteString.Char8 as BS
import qualified Data.ByteString.Lazy.Char8 as LS
import Safe (readMay)
class (IsString t) => Str t where
readToMaybeStr :: Read b => t -> Maybe b
showToStr :: Show b => b -> t
appendStr :: t -> t -> t
foldrStr :: (Char -> b -> b) -> b -> t -> b
strToString :: t -> String
instance Str String where
readToMaybeStr = readMay
showToStr = show
appendStr = (++)
foldrStr = foldr
strToString = id
instance Str BS.ByteString where
readToMaybeStr = readMay . BS.unpack
showToStr = BS.pack . show
appendStr = BS.append
foldrStr = BS.foldr
strToString = BS.unpack
instance Str LS.ByteString where
readToMaybeStr = readMay . LS.unpack
showToStr = LS.pack . show
appendStr = LS.append
foldrStr = LS.foldr
strToString = LS.unpack