module ClassyPrelude.Text
( Text
) where
import CorePrelude
import ClassyPrelude.Classes
import qualified Data.Text as Text
import qualified Data.Text.Encoding as Text
import qualified Data.Text.Encoding.Error as Text
import qualified Data.Text.IO as Text
instance CanMap Text Text Char Char where
map = Text.map
instance CanConcatMap Text Text Char Text where
concatMap = Text.concatMap
instance CanFilter Text Char where
filter = Text.filter
instance CanLength Text Int where
length = Text.length
instance CanSingleton Text Char where
singleton = Text.singleton
instance CanNull Text where
null = Text.null
instance CanPack Text Char where
pack = Text.pack
unpack = Text.unpack
instance CanIntersperse Text Char where
intersperse = Text.intersperse
instance CanStripPrefix Text where
stripPrefix = Text.stripPrefix
isPrefixOf = Text.isPrefixOf
instance CanBreak Text Char where
break = Text.break
span = Text.span
dropWhile = Text.dropWhile
takeWhile = Text.takeWhile
instance CanAny Text Char where
any = Text.any
all = Text.all
instance CanSplitAt Text Int where
splitAt = Text.splitAt
instance CanWords Text where
words = Text.words
unwords = Text.unwords
instance CanLines Text where
lines = Text.lines
instance CanUnlines Text where
unlines = Text.unlines
instance CanSplit Text Char where
split = Text.split
instance CanStripSuffix Text where
stripSuffix = Text.stripSuffix
isSuffixOf = Text.isSuffixOf
instance CanIsInfixOf Text where
isInfixOf = Text.isInfixOf
instance CanReverse Text where
reverse = Text.reverse
instance CanFold Text Char accum where
fold = Text.foldl'
instance CanReplicate Text Text Int where
replicate = Text.replicate
instance CanEncodeUtf8 Text ByteString where
encodeUtf8 = Text.encodeUtf8
instance CanDecodeUtf8 ByteString Text where
decodeUtf8 = Text.decodeUtf8With Text.lenientDecode
instance MonadIO m => CanGetLine (m Text) where
getLine = liftIO Text.getLine
instance CanToLower Text where
toLower = Text.toLower
instance CanToUpper Text where
toUpper = Text.toUpper
instance CanToCaseFold Text where
toCaseFold = Text.toCaseFold
instance CanFind Text Char where
find = Text.find
instance CanPartition Text Char where
partition = Text.partition
instance CanCons Text Char where
cons = Text.cons
instance CanUncons Text Char where
uncons = Text.uncons
instance CanCompareLength Text where
compareLength c = Text.compareLength c . fromIntegral
instance CanGroupBy Text Char where
groupBy = Text.groupBy
instance CanGroup Text Char where
group = Text.group
instance CanZipWith Text Char Text Char Text Char where
zipWith = Text.zipWith
instance CanZip Text Char Text Char [] where
zip = Text.zip