{-# LANGUAGE FlexibleInstances #-} -- | A generalisation on functions to read and write files. module Text.JSON.InteractFile ( InteractFile(..) ) where import Data.ByteString import qualified Data.ByteString as S import Data.Text import qualified Data.Text.IO as T class InteractFile z where readFile' :: FilePath -> IO z writeFile' :: FilePath -> z -> IO () instance InteractFile [Char] where readFile' = Prelude.readFile writeFile' = Prelude.writeFile instance InteractFile ByteString where readFile' = S.readFile writeFile' = S.writeFile instance InteractFile Text where readFile' = T.readFile writeFile' = T.writeFile