module Text.HTML.TagStream.Types where
import Control.Arrow ((***))
type Attr' s = (s, s)
data Token' s = TagOpen s [Attr' s] Bool
| TagClose s
| Text s
| Comment s
| Special s s
| Incomplete s
deriving (Eq, Show)
data TagType = TagTypeClose
| TagTypeSpecial
| TagTypeNormal
instance Functor Token' where
fmap f (TagOpen x pairs b) = TagOpen (f x) (map (f *** f) pairs) b
fmap f (TagClose x) = TagClose (f x)
fmap f (Text x) = Text (f x)
fmap f (Comment x) = Comment (f x)
fmap f (Special x y) = Special (f x) (f y)
fmap f (Incomplete x) = Incomplete (f x)