data ByteString { } #
BS
empty :: ByteString { } #
singleton :: Word8 -> ByteString { } #
O(1). A ByteString containing a single byte.
pack :: [Word8] -> ByteString { } #
O(n). Convert a list of bytes to a ByteString.
unpack :: ByteString -> [Word8] { } #
O(n). Convert a ByteString to a list of bytes.
fromStrict :: ByteString -> ByteString { } #
Identity (strict ByteString is already strict).
toStrict :: ByteString -> ByteString { } #
Identity (strict ByteString is already strict).
cons :: Word8 -> ByteString -> ByteString { } #
O(n). Prepend a byte to a ByteString.
snoc :: ByteString -> Word8 -> ByteString { } #
O(n). Append a byte to a ByteString.
append :: ByteString -> ByteString -> ByteString { } #
O(n). Append two ByteStrings.
head :: ByteString -> Word8 { } #
O(1). Extract the first byte of a ByteString.
uncons :: ByteString -> Maybe (Word8, ByteString) { } #
O(1). Decompose a ByteString into its head and tail.
unsnoc :: ByteString -> Maybe (ByteString, Word8) { } #
O(1). Decompose a ByteString into its init and last.
last :: ByteString -> Word8 { } #
O(1). Extract the last byte of a ByteString.
tail :: ByteString -> ByteString { } #
O(1). Extract the bytes after the head of a ByteString.
init :: ByteString -> ByteString { } #
O(1). All bytes except the last.
null :: ByteString -> Bool { } #
O(1). Test whether a ByteString is empty.
length :: ByteString -> Int { } #
O(1). The length of a ByteString.
map :: (Word8 -> Word8) -> ByteString -> ByteString { } #
Map a function over a ByteString.
reverse :: ByteString -> ByteString { } #
Reverse a ByteString.
intersperse :: Word8 -> ByteString -> ByteString { } #
Intersperse a byte between bytes of a ByteString.
intercalate :: ByteString -> [ByteString] -> ByteString { } #
Join a list of ByteStrings with a separator.
transpose :: [ByteString] -> [ByteString] { } #
Transpose the rows and columns of a list of ByteStrings.
foldl :: (a -> Word8 -> a) -> a -> ByteString -> a { } #
Left fold.
foldl' :: (a -> Word8 -> a) -> a -> ByteString -> a { } #
Strict left fold.
foldl1 :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8 { } #
Left fold on non-empty ByteStrings.
foldl1' :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8 { } #
Strict left fold on non-empty ByteStrings.
foldr :: (Word8 -> a -> a) -> a -> ByteString -> a { } #
Right fold.
foldr' :: (Word8 -> a -> a) -> a -> ByteString -> a { } #
Strict right fold.
foldr1 :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8 { } #
Right fold on non-empty ByteStrings.
foldr1' :: (Word8 -> Word8 -> Word8) -> ByteString -> Word8 { } #
Strict right fold on non-empty ByteStrings.
concat :: [ByteString] -> ByteString { } #
Concatenate a list of ByteStrings.
concatMap :: (Word8 -> ByteString) -> ByteString -> ByteString { } #
Map a function and concatenate results.
any :: (Word8 -> Bool) -> ByteString -> Bool { } #
Test if any byte satisfies a predicate.
all :: (Word8 -> Bool) -> ByteString -> Bool { } #
Test if all bytes satisfy a predicate.
maximum :: ByteString -> Word8 { } #
Maximum byte value.
minimum :: ByteString -> Word8 { } #
Minimum byte value.
scanl :: (Word8 -> Word8 -> Word8) -> Word8 -> ByteString -> ByteString { } #
Left scan.
scanl1 :: (Word8 -> Word8 -> Word8) -> ByteString -> ByteString { } #
Left scan without starting value.
scanr :: (Word8 -> Word8 -> Word8) -> Word8 -> ByteString -> ByteString { } #
Right scan.
scanr1 :: (Word8 -> Word8 -> Word8) -> ByteString -> ByteString { } #
Right scan without starting value.
mapAccumL :: (acc -> Word8 -> (acc, Word8)) -> acc -> ByteString -> (acc, ByteString) { } #
Accumulating map from left.
mapAccumR :: (acc -> Word8 -> (acc, Word8)) -> acc -> ByteString -> (acc, ByteString) { } #
Accumulating map from right.
replicate :: Int -> Word8 -> ByteString { } #
Replicate a byte n times.
unfoldr :: (a -> Maybe (Word8, a)) -> a -> ByteString { } #
Build a ByteString from a seed using unfoldr.
unfoldrN :: Int -> (a -> Maybe (Word8, a)) -> a -> (ByteString, Maybe a) { } #
Build a ByteString with at most n bytes from unfoldr.
take :: Int -> ByteString -> ByteString { } #
O(1). Take the first @n@ bytes of a ByteString.
takeEnd :: Int -> ByteString -> ByteString { } #
O(1). Take the last @n@ bytes of a ByteString.
drop :: Int -> ByteString -> ByteString { } #
O(1). Drop the first @n@ bytes of a ByteString.
dropEnd :: Int -> ByteString -> ByteString { } #
O(1). Drop the last @n@ bytes of a ByteString.
splitAt :: Int -> ByteString -> (ByteString, ByteString) { } #
O(1). Split a ByteString at position @n@.
takeWhile :: (Word8 -> Bool) -> ByteString -> ByteString { } #
Take bytes while predicate holds.
takeWhileEnd :: (Word8 -> Bool) -> ByteString -> ByteString { } #
Take bytes from end while predicate holds.
dropWhile :: (Word8 -> Bool) -> ByteString -> ByteString { } #
Drop bytes while predicate holds.
dropWhileEnd :: (Word8 -> Bool) -> ByteString -> ByteString { } #
Drop bytes from end while predicate holds.
span :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString) { } #
Split at first byte where predicate fails.
spanEnd :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString) { } #
Split from end at first byte where predicate fails.
break :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString) { } #
Split at first byte where predicate succeeds.
breakEnd :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString) { } #
Split from end at first byte where predicate succeeds.
group :: ByteString -> [ByteString] { } #
Group consecutive equal bytes.
groupBy :: (Word8 -> Word8 -> Bool) -> ByteString -> [ByteString] { } #
Group consecutive bytes by a predicate.
inits :: ByteString -> [ByteString] { } #
All initial segments.
tails :: ByteString -> [ByteString] { } #
All final segments.
stripPrefix :: ByteString -> ByteString -> Maybe ByteString { } #
Strip a prefix if present.
stripSuffix :: ByteString -> ByteString -> Maybe ByteString { } #
Strip a suffix if present.
split :: Word8 -> ByteString -> [ByteString] { } #
Split on a byte.
splitWith :: (Word8 -> Bool) -> ByteString -> [ByteString] { } #
Split on bytes satisfying a predicate.
splitOn :: ByteString -> ByteString -> [ByteString] { } #
Split on a delimiter ByteString.
isPrefixOf :: ByteString -> ByteString -> Bool { } #
Is the first a prefix of the second?
isSuffixOf :: ByteString -> ByteString -> Bool { } #
Is the first a suffix of the second?
isInfixOf :: ByteString -> ByteString -> Bool { } #
Is the first contained in the second?
elem :: Word8 -> ByteString -> Bool { } #
Is the byte in the ByteString?
notElem :: Word8 -> ByteString -> Bool { } #
Is the byte not in the ByteString?
find :: (Word8 -> Bool) -> ByteString -> Maybe Word8 { } #
Find the first byte satisfying a predicate.
filter :: (Word8 -> Bool) -> ByteString -> ByteString { } #
Filter bytes by a predicate.
partition :: (Word8 -> Bool) -> ByteString -> (ByteString, ByteString) { } #
Partition by a predicate.
index :: ByteString -> Int -> Word8 { } #
Index a byte (partial).
indexMaybe :: ByteString -> Int -> Maybe Word8 { } #
Safe indexing.
!? :: ByteString -> Int -> Maybe Word8 { } #
Infix safe indexing.
elemIndex :: Word8 -> ByteString -> Maybe Int { } #
Index of first occurrence.
elemIndices :: Word8 -> ByteString -> [Int] { } #
Indices of all occurrences.
elemIndexEnd :: Word8 -> ByteString -> Maybe Int { } #
Index of last occurrence.
findIndex :: (Word8 -> Bool) -> ByteString -> Maybe Int { } #
Index of first byte satisfying a predicate.
findIndices :: (Word8 -> Bool) -> ByteString -> [Int] { } #
Indices of all bytes satisfying a predicate.
findIndexEnd :: (Word8 -> Bool) -> ByteString -> Maybe Int { } #
Index of last byte satisfying a predicate.
count :: Word8 -> ByteString -> Int { } #
Count occurrences of a byte.
zip :: ByteString -> ByteString -> [(Word8, Word8)] { } #
Zip two ByteStrings.
zipWith :: (Word8 -> Word8 -> a) -> ByteString -> ByteString -> [a] { } #
Zip with a function.
packZipWith :: (Word8 -> Word8 -> Word8) -> ByteString -> ByteString -> ByteString { } #
Zip with a function producing bytes.
unzip :: [(Word8, Word8)] -> (ByteString, ByteString) { } #
Unzip a list of pairs.
sort :: ByteString -> ByteString { } #
Sort bytes in ascending order.
copy :: ByteString -> ByteString { } #
Make a copy of the ByteString.
packCString :: CString -> IO ByteString { } #
Pack a null-terminated C string.
packCStringLen :: CStringLen -> IO ByteString { } #
Pack a C string with known length.
useAsCString :: ByteString -> (CString -> IO a) -> IO a { } #
Use a ByteString as a null-terminated C string.
useAsCStringLen :: ByteString -> (CStringLen -> IO a) -> IO a { } #
Use a ByteString as a C string with length.
getLine :: IO ByteString { } #
Read a line from stdin.
getContents :: IO ByteString { } #
Read all of stdin.
putStr :: ByteString -> IO () { } #
Write to stdout.
putStrLn :: ByteString -> IO () { } #
Write to stdout with newline.
interact :: (ByteString -> ByteString) -> IO () { } #
Process stdin to stdout.
readFile :: FilePath -> IO ByteString { } #
Read an entire file.
writeFile :: FilePath -> ByteString -> IO () { } #
Write to a file.
appendFile :: FilePath -> ByteString -> IO () { } #
Append to a file.
hGetLine :: Handle -> IO ByteString { } #
Read a line from a handle.
hGetContents :: Handle -> IO ByteString { } #
Read all remaining data from a handle.
hGet :: Handle -> Int -> IO ByteString { } #
Read exactly n bytes from a handle.
hGetSome :: Handle -> Int -> IO ByteString { } #
Read up to n bytes from a handle.
hGetNonBlocking :: Handle -> Int -> IO ByteString { } #
Non-blocking read.
hPut :: Handle -> ByteString -> IO () { } #
Write to a handle.
hPutNonBlocking :: Handle -> ByteString -> IO ByteString { } #
Non-blocking write.
hPutStr :: Handle -> ByteString -> IO () { } #
Write to a handle (alias).
hPutStrLn :: Handle -> ByteString -> IO () { } #
Write to a handle with newline.
findIndexOrEnd :: (Word8 -> Bool) -> ByteString -> Int { } #
findFromEndUntil :: (Word8 -> Bool) -> ByteString -> Int { } #
breakOnBS :: ByteString -> ByteString -> (ByteString, ByteString) { } #
createBS :: Int -> ((Ptr Word8) -> IO ()) -> ByteString { } #
instance Show ByteString { }
instance Read ByteString { }
instance Semigroup ByteString { }
instance Monoid ByteString { }