module ModularPrelude.Module.Text
(
TextModule (..)
, TextImplements (..)
) where
import ModularPrelude hiding (empty)
import qualified Data.Text as Text
import qualified Data.Text.IO as Text
import qualified Filesystem.Path.CurrentOS as FilePath
data TextModule = Text
{ map :: (Char -> Char) -> Text -> Text
, concatMap :: (Char -> Text) -> Text -> Text
, filter :: (Char -> Bool) -> Text -> Text
, length :: Text -> Int
, singleton :: Char -> Text
, null :: Text -> Bool
, pack :: [Char] -> Text
, unpack :: Text -> [Char]
, empty :: Text
, readFile :: FilePath -> IO Text
, writeFile :: FilePath -> Text -> IO ()
, break :: (Char -> Bool) -> Text -> (Text, Text)
, span :: (Char -> Bool) -> Text -> (Text, Text)
, dropWhile :: (Char -> Bool) -> Text -> Text
, takeWhile :: (Char -> Bool) -> Text -> Text
, any :: (Char -> Bool) -> Text -> Bool
, all :: (Char -> Bool) -> Text -> Bool
, splitAt :: Int -> Text -> (Text, Text)
}
class TextImplements interface where
_Data_Text_ :: interface
instance TextImplements TextModule where
_Data_Text_ = Text
{ map = Text.map
, concatMap = Text.concatMap
, filter = Text.filter
, length = Text.length
, singleton = Text.singleton
, null = Text.null
, pack = Text.pack
, unpack = Text.unpack
, empty = Text.empty
, readFile = Text.readFile . FilePath.encodeString
, writeFile = Text.writeFile . FilePath.encodeString
, break = Text.break
, span = Text.span
, dropWhile = Text.dropWhile
, takeWhile = Text.takeWhile
, any = Text.any
, all = Text.all
, splitAt = Text.splitAt
}
instance Default TextModule where
def = _Data_Text_