tagsoup-0.13.5: Parsing and extracting information from (possibly malformed) HTML/XML documents

Safe HaskellSafe



WARNING: This module is not intended for use outside the TagSoup library.

This module provides an abstraction for String's as used inside TagSoup. It allows TagSoup to work with String (list of Char), ByteString.Char8, ByteString.Lazy.Char8, Data.Text and Data.Text.Lazy.



class (Typeable a, Eq a) => StringLike a where Source

A class to generalise TagSoup parsing over many types of string-like types. Examples are given for the String type.


empty :: a Source

empty = ""

cons :: Char -> a -> a Source

cons = (:)

uncons :: a -> Maybe (Char, a) Source

uncons []     = Nothing
uncons (x:xs) = Just (x, xs)

toString :: a -> String Source

toString = id

fromString :: String -> a Source

fromString = id

fromChar :: Char -> a Source

fromChar = return

strConcat :: [a] -> a Source

strConcat = concat

strNull :: a -> Bool Source

strNull = null

append :: a -> a -> a Source

append = (++)

castString :: (StringLike a, StringLike b) => a -> b Source

Convert a String from one type to another.