{-#LANGUAGE MultiParamTypeClasses #-} module Text.Parcom.ByteString.Strict where import Prelude hiding (head, null, tail) import Data.ByteString import Data.Word8 import Text.Parcom.Stream import Text.Parcom.Word8 import Data.ByteString.UTF8 as UTF8 instance Stream ByteString Word8 where peek = head atEnd = null consume = tail instance Listish ByteString Word8 where toList = unpack fromList = pack instance Textish ByteString where peekChar s = case UTF8.decode s of Just ('\65533', _) -> (Nothing, 0) Nothing -> (Nothing, 0) Just (c, n) -> (Just c, n)