module Text.HTML.Moe.Type where
import Data.Default
import Control.Monad.Writer
data Element =
Element
{
name :: String
, attributes :: [Attribute]
, elements :: [Element]
}
| Raw String
| Data String
deriving (Show)
instance Default Element where
def = Element def def def
data Attribute = Attribute
{
key :: String
, value :: String
}
deriving (Show)
instance Default Attribute where
def = Attribute def def
type MoeUnitT a = Writer [Element] a
type MoeUnit = MoeUnitT ()
type MoeCombinator' = [Attribute] -> MoeUnit -> MoeUnit
type MoeCombinator = MoeUnit -> MoeUnit