-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | An XHTML combinator library
--   
--   This package provides combinators for producing XHTML 1.0, including
--   the Strict, Transitional and Frameset variants.
@package xhtml
@version 3000.2.1


-- | Produces XHTML 1.0 Strict.
module Text.XHtml.Strict
data Html

-- | Attributes with name and value.
data HtmlAttr

-- | HTML is the class of things that can be validly put inside an HTML
--   tag. So this can be one or more <a>Html</a> elements, or a
--   <a>String</a>, for example.
class HTML a where toHtmlFromList xs = Html (concat [x | (Html x) <- map toHtml xs])
toHtml :: HTML a => a -> Html
toHtmlFromList :: HTML a => [a] -> Html
class ADDATTRS a
(!) :: ADDATTRS a => a -> [HtmlAttr] -> a

-- | CHANGEATTRS is a more expressive alternative to ADDATTRS
class CHANGEATTRS a
changeAttrs :: CHANGEATTRS a => a -> ([HtmlAttr] -> [HtmlAttr]) -> a

-- | Put something inside an HTML element.
(<<) :: (HTML a) => (Html -> b) -> a -> b
concatHtml :: (HTML a) => [a] -> Html

-- | Create a piece of HTML which is the concatenation of two things which
--   can be made into HTML.
(+++) :: (HTML a, HTML b) => a -> b -> Html

-- | An empty piece of HTML.
noHtml :: Html

-- | Checks whether the given piece of HTML is empty.
isNoHtml :: Html -> Bool

-- | Constructs an element with a custom name.
tag :: String -> Html -> Html

-- | Constructs an element with a custom name, and without any children.
itag :: String -> Html
htmlAttrPair :: HtmlAttr -> (String, String)
emptyAttr :: String -> HtmlAttr
intAttr :: String -> Int -> HtmlAttr
strAttr :: String -> String -> HtmlAttr
htmlAttr :: String -> Html -> HtmlAttr

-- | This is not processed for special chars. use stringToHtml or
--   lineToHtml instead, for user strings, because they understand special
--   chars, like <tt><a>&lt;</a></tt>.
primHtml :: String -> Html

-- | Processing Strings into Html friendly things.
stringToHtmlString :: String -> String

-- | The <tt>DOCTYPE</tt> for XHTML 1.0 Strict.
docType :: String

-- | Output the HTML without adding newlines or spaces within the markup.
--   This should be the most time and space efficient way to render HTML,
--   though the ouput is quite unreadable.
showHtml :: HTML html => html -> String

-- | Outputs indented HTML. Because space matters in HTML, the output is
--   quite messy.
renderHtml :: HTML html => html -> String

-- | Outputs indented XHTML. Because space matters in HTML, the output is
--   quite messy.
renderHtmlWithLanguage :: HTML html => String -> html -> String

-- | Outputs indented HTML, with indentation inside elements. This can
--   change the meaning of the HTML document, and is mostly useful for
--   debugging the HTML output. The implementation is inefficient, and you
--   are normally better off using <a>showHtml</a> or <a>renderHtml</a>.
prettyHtml :: HTML html => html -> String

-- | Render a piece of HTML without adding a DOCTYPE declaration or root
--   element. Does not add any extra whitespace.
showHtmlFragment :: HTML html => html -> String

-- | Render a piece of indented HTML without adding a DOCTYPE declaration
--   or root element. Only adds whitespace where it does not change the
--   meaning of the document.
renderHtmlFragment :: HTML html => html -> String

-- | Render a piece of indented HTML without adding a DOCTYPE declaration
--   or a root element. The indentation is done inside elements. This can
--   change the meaning of the HTML document, and is mostly useful for
--   debugging the HTML output. The implementation is inefficient, and you
--   are normally better off using <a>showHtmlFragment</a> or
--   <a>renderHtmlFragment</a>.
prettyHtmlFragment :: HTML html => html -> String
abbr :: Html -> Html
acronym :: Html -> Html
address :: Html -> Html
anchor :: Html -> Html
area :: Html
bdo :: Html -> Html
big :: Html -> Html
blockquote :: Html -> Html
body :: Html -> Html
bold :: Html -> Html
br :: Html
button :: Html -> Html
caption :: Html -> Html
cite :: Html -> Html
col :: Html -> Html
colgroup :: Html -> Html
del :: Html -> Html
ddef :: Html -> Html
define :: Html -> Html
dlist :: Html -> Html
dterm :: Html -> Html
emphasize :: Html -> Html
fieldset :: Html -> Html
form :: Html -> Html
h1 :: Html -> Html
h2 :: Html -> Html
h3 :: Html -> Html
h4 :: Html -> Html
h5 :: Html -> Html
h6 :: Html -> Html
header :: Html -> Html
hr :: Html
image :: Html
input :: Html
ins :: Html -> Html
italics :: Html -> Html
keyboard :: Html -> Html
label :: Html -> Html
legend :: Html -> Html
li :: Html -> Html
meta :: Html
noscript :: Html -> Html
object :: Html -> Html
olist :: Html -> Html
optgroup :: Html -> Html
option :: Html -> Html
paragraph :: Html -> Html
param :: Html
pre :: Html -> Html
quote :: Html -> Html
sample :: Html -> Html
script :: Html -> Html
select :: Html -> Html
small :: Html -> Html
strong :: Html -> Html
style :: Html -> Html
sub :: Html -> Html
sup :: Html -> Html
table :: Html -> Html
tbody :: Html -> Html
td :: Html -> Html
textarea :: Html -> Html
tfoot :: Html -> Html
th :: Html -> Html
thead :: Html -> Html
thebase :: Html
thecode :: Html -> Html
thediv :: Html -> Html
thehtml :: Html -> Html
thelink :: Html -> Html
themap :: Html -> Html
thespan :: Html -> Html
thetitle :: Html -> Html
tr :: Html -> Html
tt :: Html -> Html
ulist :: Html -> Html
variable :: Html -> Html
action :: String -> HtmlAttr
align :: String -> HtmlAttr
alt :: String -> HtmlAttr
altcode :: String -> HtmlAttr
archive :: String -> HtmlAttr
base :: String -> HtmlAttr
border :: Int -> HtmlAttr
bordercolor :: String -> HtmlAttr
cellpadding :: Int -> HtmlAttr
cellspacing :: Int -> HtmlAttr
checked :: HtmlAttr
codebase :: String -> HtmlAttr
cols :: String -> HtmlAttr
colspan :: Int -> HtmlAttr
content :: String -> HtmlAttr
coords :: String -> HtmlAttr
disabled :: HtmlAttr
enctype :: String -> HtmlAttr
height :: String -> HtmlAttr
href :: String -> HtmlAttr
hreflang :: String -> HtmlAttr
httpequiv :: String -> HtmlAttr
identifier :: String -> HtmlAttr
ismap :: HtmlAttr
lang :: String -> HtmlAttr
maxlength :: Int -> HtmlAttr
method :: String -> HtmlAttr
multiple :: HtmlAttr
name :: String -> HtmlAttr
nohref :: HtmlAttr
rel :: String -> HtmlAttr
rev :: String -> HtmlAttr
rows :: String -> HtmlAttr
rowspan :: Int -> HtmlAttr
rules :: String -> HtmlAttr
selected :: HtmlAttr
shape :: String -> HtmlAttr
size :: String -> HtmlAttr
src :: String -> HtmlAttr
theclass :: String -> HtmlAttr
thefor :: String -> HtmlAttr
thestyle :: String -> HtmlAttr
thetype :: String -> HtmlAttr
title :: String -> HtmlAttr
usemap :: String -> HtmlAttr
valign :: String -> HtmlAttr
value :: String -> HtmlAttr
width :: String -> HtmlAttr

-- | Convert a <a>String</a> to <a>Html</a>, converting characters that
--   need to be escaped to HTML entities.
stringToHtml :: String -> Html

-- | This converts a string, but keeps spaces as non-line-breakable.
lineToHtml :: String -> Html

-- | This converts a string, but keeps spaces as non-line-breakable, and
--   adds line breaks between each of the strings in the input list.
linesToHtml :: [String] -> Html
primHtmlChar :: String -> Html

-- | Copyright sign.
copyright :: Html

-- | Non-breaking space.
spaceHtml :: Html
bullet :: Html

-- | Same as <a>paragraph</a>.
p :: Html -> Html
type URL = String
data HotLink
HotLink :: URL -> Html -> [HtmlAttr] -> HotLink
[hotLinkURL] :: HotLink -> URL
[hotLinkContents] :: HotLink -> Html
[hotLinkAttributes] :: HotLink -> [HtmlAttr]
hotlink :: URL -> Html -> HotLink
ordList :: (HTML a) => [a] -> Html
unordList :: (HTML a) => [a] -> Html
defList :: (HTML a, HTML b) => [(a, b)] -> Html
widget :: String -> String -> [HtmlAttr] -> Html
checkbox :: String -> String -> Html
hidden :: String -> String -> Html
radio :: String -> String -> Html
reset :: String -> String -> Html
submit :: String -> String -> Html
password :: String -> Html
textfield :: String -> Html
afile :: String -> Html
clickmap :: String -> Html

-- | <i>Deprecated: menu generates strange XHTML, and is not flexible
--   enough. Roll your own that suits your needs.</i>
menu :: String -> [Html] -> Html
gui :: String -> Html -> Html


-- | Produces XHTML 1.0 Frameset.
module Text.XHtml.Frameset
data Html

-- | Attributes with name and value.
data HtmlAttr

-- | HTML is the class of things that can be validly put inside an HTML
--   tag. So this can be one or more <a>Html</a> elements, or a
--   <a>String</a>, for example.
class HTML a where toHtmlFromList xs = Html (concat [x | (Html x) <- map toHtml xs])
toHtml :: HTML a => a -> Html
toHtmlFromList :: HTML a => [a] -> Html
class ADDATTRS a
(!) :: ADDATTRS a => a -> [HtmlAttr] -> a

-- | CHANGEATTRS is a more expressive alternative to ADDATTRS
class CHANGEATTRS a
changeAttrs :: CHANGEATTRS a => a -> ([HtmlAttr] -> [HtmlAttr]) -> a

-- | Put something inside an HTML element.
(<<) :: (HTML a) => (Html -> b) -> a -> b
concatHtml :: (HTML a) => [a] -> Html

-- | Create a piece of HTML which is the concatenation of two things which
--   can be made into HTML.
(+++) :: (HTML a, HTML b) => a -> b -> Html

-- | An empty piece of HTML.
noHtml :: Html

-- | Checks whether the given piece of HTML is empty.
isNoHtml :: Html -> Bool

-- | Constructs an element with a custom name.
tag :: String -> Html -> Html

-- | Constructs an element with a custom name, and without any children.
itag :: String -> Html
htmlAttrPair :: HtmlAttr -> (String, String)
emptyAttr :: String -> HtmlAttr
intAttr :: String -> Int -> HtmlAttr
strAttr :: String -> String -> HtmlAttr
htmlAttr :: String -> Html -> HtmlAttr

-- | This is not processed for special chars. use stringToHtml or
--   lineToHtml instead, for user strings, because they understand special
--   chars, like <tt><a>&lt;</a></tt>.
primHtml :: String -> Html

-- | Output the HTML without adding newlines or spaces within the markup.
--   This should be the most time and space efficient way to render HTML,
--   though the ouput is quite unreadable.
showHtml :: HTML html => html -> String

-- | Outputs indented HTML. Because space matters in HTML, the output is
--   quite messy.
renderHtml :: HTML html => html -> String

-- | Outputs indented HTML, with indentation inside elements. This can
--   change the meaning of the HTML document, and is mostly useful for
--   debugging the HTML output. The implementation is inefficient, and you
--   are normally better off using <a>showHtml</a> or <a>renderHtml</a>.
prettyHtml :: HTML html => html -> String

-- | Render a piece of HTML without adding a DOCTYPE declaration or root
--   element. Does not add any extra whitespace.
showHtmlFragment :: HTML html => html -> String

-- | Render a piece of indented HTML without adding a DOCTYPE declaration
--   or root element. Only adds whitespace where it does not change the
--   meaning of the document.
renderHtmlFragment :: HTML html => html -> String

-- | Render a piece of indented HTML without adding a DOCTYPE declaration
--   or a root element. The indentation is done inside elements. This can
--   change the meaning of the HTML document, and is mostly useful for
--   debugging the HTML output. The implementation is inefficient, and you
--   are normally better off using <a>showHtmlFragment</a> or
--   <a>renderHtmlFragment</a>.
prettyHtmlFragment :: HTML html => html -> String
abbr :: Html -> Html
acronym :: Html -> Html
address :: Html -> Html
anchor :: Html -> Html
area :: Html
bdo :: Html -> Html
big :: Html -> Html
blockquote :: Html -> Html
body :: Html -> Html
bold :: Html -> Html
br :: Html
button :: Html -> Html
caption :: Html -> Html
cite :: Html -> Html
col :: Html -> Html
colgroup :: Html -> Html
del :: Html -> Html
ddef :: Html -> Html
define :: Html -> Html
dlist :: Html -> Html
dterm :: Html -> Html
emphasize :: Html -> Html
fieldset :: Html -> Html
form :: Html -> Html
h1 :: Html -> Html
h2 :: Html -> Html
h3 :: Html -> Html
h4 :: Html -> Html
h5 :: Html -> Html
h6 :: Html -> Html
header :: Html -> Html
hr :: Html
image :: Html
input :: Html
ins :: Html -> Html
italics :: Html -> Html
keyboard :: Html -> Html
label :: Html -> Html
legend :: Html -> Html
li :: Html -> Html
meta :: Html
noscript :: Html -> Html
object :: Html -> Html
olist :: Html -> Html
optgroup :: Html -> Html
option :: Html -> Html
paragraph :: Html -> Html
param :: Html
pre :: Html -> Html
quote :: Html -> Html
sample :: Html -> Html
script :: Html -> Html
select :: Html -> Html
small :: Html -> Html
strong :: Html -> Html
style :: Html -> Html
sub :: Html -> Html
sup :: Html -> Html
table :: Html -> Html
tbody :: Html -> Html
td :: Html -> Html
textarea :: Html -> Html
tfoot :: Html -> Html
th :: Html -> Html
thead :: Html -> Html
thebase :: Html
thecode :: Html -> Html
thediv :: Html -> Html
thehtml :: Html -> Html
thelink :: Html -> Html
themap :: Html -> Html
thespan :: Html -> Html
thetitle :: Html -> Html
tr :: Html -> Html
tt :: Html -> Html
ulist :: Html -> Html
variable :: Html -> Html
frame :: Html -> Html
frameset :: Html -> Html
noframes :: Html -> Html
action :: String -> HtmlAttr
align :: String -> HtmlAttr
alt :: String -> HtmlAttr
altcode :: String -> HtmlAttr
archive :: String -> HtmlAttr
base :: String -> HtmlAttr
border :: Int -> HtmlAttr
bordercolor :: String -> HtmlAttr
cellpadding :: Int -> HtmlAttr
cellspacing :: Int -> HtmlAttr
checked :: HtmlAttr
codebase :: String -> HtmlAttr
cols :: String -> HtmlAttr
colspan :: Int -> HtmlAttr
content :: String -> HtmlAttr
coords :: String -> HtmlAttr
disabled :: HtmlAttr
enctype :: String -> HtmlAttr
height :: String -> HtmlAttr
href :: String -> HtmlAttr
hreflang :: String -> HtmlAttr
httpequiv :: String -> HtmlAttr
identifier :: String -> HtmlAttr
ismap :: HtmlAttr
lang :: String -> HtmlAttr
maxlength :: Int -> HtmlAttr
method :: String -> HtmlAttr
multiple :: HtmlAttr
name :: String -> HtmlAttr
nohref :: HtmlAttr
rel :: String -> HtmlAttr
rev :: String -> HtmlAttr
rows :: String -> HtmlAttr
rowspan :: Int -> HtmlAttr
rules :: String -> HtmlAttr
selected :: HtmlAttr
shape :: String -> HtmlAttr
size :: String -> HtmlAttr
src :: String -> HtmlAttr
theclass :: String -> HtmlAttr
thefor :: String -> HtmlAttr
thestyle :: String -> HtmlAttr
thetype :: String -> HtmlAttr
title :: String -> HtmlAttr
usemap :: String -> HtmlAttr
valign :: String -> HtmlAttr
value :: String -> HtmlAttr
width :: String -> HtmlAttr
frameborder :: Int -> HtmlAttr
marginheight :: Int -> HtmlAttr
marginwidth :: Int -> HtmlAttr
noresize :: HtmlAttr
scrolling :: String -> HtmlAttr

-- | Convert a <a>String</a> to <a>Html</a>, converting characters that
--   need to be escaped to HTML entities.
stringToHtml :: String -> Html

-- | This converts a string, but keeps spaces as non-line-breakable.
lineToHtml :: String -> Html

-- | This converts a string, but keeps spaces as non-line-breakable, and
--   adds line breaks between each of the strings in the input list.
linesToHtml :: [String] -> Html
primHtmlChar :: String -> Html

-- | Copyright sign.
copyright :: Html

-- | Non-breaking space.
spaceHtml :: Html
bullet :: Html

-- | Same as <a>paragraph</a>.
p :: Html -> Html
type URL = String
data HotLink
HotLink :: URL -> Html -> [HtmlAttr] -> HotLink
[hotLinkURL] :: HotLink -> URL
[hotLinkContents] :: HotLink -> Html
[hotLinkAttributes] :: HotLink -> [HtmlAttr]
hotlink :: URL -> Html -> HotLink
ordList :: (HTML a) => [a] -> Html
unordList :: (HTML a) => [a] -> Html
defList :: (HTML a, HTML b) => [(a, b)] -> Html
widget :: String -> String -> [HtmlAttr] -> Html
checkbox :: String -> String -> Html
hidden :: String -> String -> Html
radio :: String -> String -> Html
reset :: String -> String -> Html
submit :: String -> String -> Html
password :: String -> Html
textfield :: String -> Html
afile :: String -> Html
clickmap :: String -> Html

-- | <i>Deprecated: menu generates strange XHTML, and is not flexible
--   enough. Roll your own that suits your needs.</i>
menu :: String -> [Html] -> Html
gui :: String -> Html -> Html


-- | Table combinators for XHTML.
module Text.XHtml.Table

-- | We internally represent the Cell inside a Table with an object of the
--   type
--   
--   <pre>
--   Int -&gt; Int -&gt; Html
--   </pre>
--   
--   When we render it later, we find out how many columns or rows this
--   cell will span over, and can include the correct colspan/rowspan
--   command.
data HtmlTable
class HTMLTABLE ht
cell :: HTMLTABLE ht => ht -> HtmlTable
(</>) :: (HTMLTABLE ht1, HTMLTABLE ht2) => ht1 -> ht2 -> HtmlTable
above :: (HTMLTABLE ht1, HTMLTABLE ht2) => ht1 -> ht2 -> HtmlTable
(<->) :: (HTMLTABLE ht1, HTMLTABLE ht2) => ht1 -> ht2 -> HtmlTable
beside :: (HTMLTABLE ht1, HTMLTABLE ht2) => ht1 -> ht2 -> HtmlTable
aboves :: (HTMLTABLE ht) => [ht] -> HtmlTable
besides :: (HTMLTABLE ht) => [ht] -> HtmlTable

-- | If you can't be bothered with the above, then you can build simple
--   tables with simpleTable. Just provide the attributes for the whole
--   table, attributes for the cells (same for every cell), and a list of
--   lists of cell contents, and this function will build the table for
--   you. It does presume that all the lists are non-empty, and there is at
--   least one list.
--   
--   Different length lists means that the last cell gets padded. If you
--   want more power, then use the system above, or build tables
--   explicitly.
simpleTable :: [HtmlAttr] -> [HtmlAttr] -> [[Html]] -> Html
instance Text.XHtml.Table.HTMLTABLE Text.XHtml.Table.HtmlTable
instance Text.XHtml.Table.HTMLTABLE Text.XHtml.Internals.Html
instance Text.XHtml.Internals.HTML Text.XHtml.Table.HtmlTable
instance GHC.Show.Show Text.XHtml.Table.HtmlTable


-- | Produces XHTML 1.0 Transitional.
module Text.XHtml.Transitional
data Html

-- | Attributes with name and value.
data HtmlAttr

-- | HTML is the class of things that can be validly put inside an HTML
--   tag. So this can be one or more <a>Html</a> elements, or a
--   <a>String</a>, for example.
class HTML a where toHtmlFromList xs = Html (concat [x | (Html x) <- map toHtml xs])
toHtml :: HTML a => a -> Html
toHtmlFromList :: HTML a => [a] -> Html
class ADDATTRS a
(!) :: ADDATTRS a => a -> [HtmlAttr] -> a

-- | CHANGEATTRS is a more expressive alternative to ADDATTRS
class CHANGEATTRS a
changeAttrs :: CHANGEATTRS a => a -> ([HtmlAttr] -> [HtmlAttr]) -> a

-- | Put something inside an HTML element.
(<<) :: (HTML a) => (Html -> b) -> a -> b
concatHtml :: (HTML a) => [a] -> Html

-- | Create a piece of HTML which is the concatenation of two things which
--   can be made into HTML.
(+++) :: (HTML a, HTML b) => a -> b -> Html

-- | An empty piece of HTML.
noHtml :: Html

-- | Checks whether the given piece of HTML is empty.
isNoHtml :: Html -> Bool

-- | Constructs an element with a custom name.
tag :: String -> Html -> Html

-- | Constructs an element with a custom name, and without any children.
itag :: String -> Html
htmlAttrPair :: HtmlAttr -> (String, String)
emptyAttr :: String -> HtmlAttr
intAttr :: String -> Int -> HtmlAttr
strAttr :: String -> String -> HtmlAttr
htmlAttr :: String -> Html -> HtmlAttr

-- | This is not processed for special chars. use stringToHtml or
--   lineToHtml instead, for user strings, because they understand special
--   chars, like <tt><a>&lt;</a></tt>.
primHtml :: String -> Html

-- | Output the HTML without adding newlines or spaces within the markup.
--   This should be the most time and space efficient way to render HTML,
--   though the ouput is quite unreadable.
showHtml :: HTML html => html -> String

-- | Outputs indented HTML. Because space matters in HTML, the output is
--   quite messy.
renderHtml :: HTML html => html -> String

-- | Outputs indented HTML, with indentation inside elements. This can
--   change the meaning of the HTML document, and is mostly useful for
--   debugging the HTML output. The implementation is inefficient, and you
--   are normally better off using <a>showHtml</a> or <a>renderHtml</a>.
prettyHtml :: HTML html => html -> String

-- | Render a piece of HTML without adding a DOCTYPE declaration or root
--   element. Does not add any extra whitespace.
showHtmlFragment :: HTML html => html -> String

-- | Render a piece of indented HTML without adding a DOCTYPE declaration
--   or root element. Only adds whitespace where it does not change the
--   meaning of the document.
renderHtmlFragment :: HTML html => html -> String

-- | Render a piece of indented HTML without adding a DOCTYPE declaration
--   or a root element. The indentation is done inside elements. This can
--   change the meaning of the HTML document, and is mostly useful for
--   debugging the HTML output. The implementation is inefficient, and you
--   are normally better off using <a>showHtmlFragment</a> or
--   <a>renderHtmlFragment</a>.
prettyHtmlFragment :: HTML html => html -> String
abbr :: Html -> Html
acronym :: Html -> Html
address :: Html -> Html
anchor :: Html -> Html
area :: Html
bdo :: Html -> Html
big :: Html -> Html
blockquote :: Html -> Html
body :: Html -> Html
bold :: Html -> Html
br :: Html
button :: Html -> Html
caption :: Html -> Html
cite :: Html -> Html
col :: Html -> Html
colgroup :: Html -> Html
del :: Html -> Html
ddef :: Html -> Html
define :: Html -> Html
dlist :: Html -> Html
dterm :: Html -> Html
emphasize :: Html -> Html
fieldset :: Html -> Html
form :: Html -> Html
h1 :: Html -> Html
h2 :: Html -> Html
h3 :: Html -> Html
h4 :: Html -> Html
h5 :: Html -> Html
h6 :: Html -> Html
header :: Html -> Html
hr :: Html
image :: Html
input :: Html
ins :: Html -> Html
italics :: Html -> Html
keyboard :: Html -> Html
label :: Html -> Html
legend :: Html -> Html
li :: Html -> Html
meta :: Html
noscript :: Html -> Html
object :: Html -> Html
olist :: Html -> Html
optgroup :: Html -> Html
option :: Html -> Html
paragraph :: Html -> Html
param :: Html
pre :: Html -> Html
quote :: Html -> Html
sample :: Html -> Html
script :: Html -> Html
select :: Html -> Html
small :: Html -> Html
strong :: Html -> Html
style :: Html -> Html
sub :: Html -> Html
sup :: Html -> Html
table :: Html -> Html
tbody :: Html -> Html
td :: Html -> Html
textarea :: Html -> Html
tfoot :: Html -> Html
th :: Html -> Html
thead :: Html -> Html
thebase :: Html
thecode :: Html -> Html
thediv :: Html -> Html
thehtml :: Html -> Html
thelink :: Html -> Html
themap :: Html -> Html
thespan :: Html -> Html
thetitle :: Html -> Html
tr :: Html -> Html
tt :: Html -> Html
ulist :: Html -> Html
variable :: Html -> Html
frame :: Html -> Html
frameset :: Html -> Html
noframes :: Html -> Html

-- | <i>Deprecated: This element is deprecated in XHTML 1.0</i>
applet :: Html -> Html

-- | <i>Deprecated: This element is deprecated in XHTML 1.0</i>
basefont :: Html

-- | <i>Deprecated: This element is deprecated in XHTML 1.0</i>
center :: Html -> Html

-- | <i>Deprecated: This element is deprecated in XHTML 1.0</i>
dir :: Html -> Html

-- | <i>Deprecated: This element is deprecated in XHTML 1.0</i>
font :: Html -> Html
iframe :: Html -> Html

-- | <i>Deprecated: This element is deprecated in XHTML 1.0</i>
isindex :: Html

-- | <i>Deprecated: This element is deprecated in XHTML 1.0</i>
themenu :: Html -> Html

-- | <i>Deprecated: This element is deprecated in XHTML 1.0</i>
strike :: Html -> Html

-- | <i>Deprecated: This element is deprecated in XHTML 1.0</i>
underline :: Html -> Html
action :: String -> HtmlAttr
align :: String -> HtmlAttr
alt :: String -> HtmlAttr
altcode :: String -> HtmlAttr
archive :: String -> HtmlAttr
base :: String -> HtmlAttr
border :: Int -> HtmlAttr
bordercolor :: String -> HtmlAttr
cellpadding :: Int -> HtmlAttr
cellspacing :: Int -> HtmlAttr
checked :: HtmlAttr
codebase :: String -> HtmlAttr
cols :: String -> HtmlAttr
colspan :: Int -> HtmlAttr
content :: String -> HtmlAttr
coords :: String -> HtmlAttr
disabled :: HtmlAttr
enctype :: String -> HtmlAttr
height :: String -> HtmlAttr
href :: String -> HtmlAttr
hreflang :: String -> HtmlAttr
httpequiv :: String -> HtmlAttr
identifier :: String -> HtmlAttr
ismap :: HtmlAttr
lang :: String -> HtmlAttr
maxlength :: Int -> HtmlAttr
method :: String -> HtmlAttr
multiple :: HtmlAttr
name :: String -> HtmlAttr
nohref :: HtmlAttr
rel :: String -> HtmlAttr
rev :: String -> HtmlAttr
rows :: String -> HtmlAttr
rowspan :: Int -> HtmlAttr
rules :: String -> HtmlAttr
selected :: HtmlAttr
shape :: String -> HtmlAttr
size :: String -> HtmlAttr
src :: String -> HtmlAttr
theclass :: String -> HtmlAttr
thefor :: String -> HtmlAttr
thestyle :: String -> HtmlAttr
thetype :: String -> HtmlAttr
title :: String -> HtmlAttr
usemap :: String -> HtmlAttr
valign :: String -> HtmlAttr
value :: String -> HtmlAttr
width :: String -> HtmlAttr
frameborder :: Int -> HtmlAttr
marginheight :: Int -> HtmlAttr
marginwidth :: Int -> HtmlAttr
noresize :: HtmlAttr
scrolling :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
alink :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
background :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
bgcolor :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
clear :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
code :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
color :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
compact :: HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
face :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
hspace :: Int -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
link :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
noshade :: HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
nowrap :: HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
start :: Int -> HtmlAttr
target :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
text :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
version :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
vlink :: String -> HtmlAttr

-- | <i>Deprecated: This attribute is deprecated in XHTML 1.0</i>
vspace :: Int -> HtmlAttr

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
aqua :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
black :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
blue :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
fuchsia :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
gray :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
green :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
lime :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
maroon :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
navy :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
olive :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
purple :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
red :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
silver :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
teal :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
yellow :: String

-- | <i>Deprecated: The use of color attibutes is deprecated in XHTML
--   1.0</i>
white :: String

-- | Convert a <a>String</a> to <a>Html</a>, converting characters that
--   need to be escaped to HTML entities.
stringToHtml :: String -> Html

-- | This converts a string, but keeps spaces as non-line-breakable.
lineToHtml :: String -> Html

-- | This converts a string, but keeps spaces as non-line-breakable, and
--   adds line breaks between each of the strings in the input list.
linesToHtml :: [String] -> Html
primHtmlChar :: String -> Html

-- | Copyright sign.
copyright :: Html

-- | Non-breaking space.
spaceHtml :: Html
bullet :: Html

-- | Same as <a>paragraph</a>.
p :: Html -> Html
type URL = String
data HotLink
HotLink :: URL -> Html -> [HtmlAttr] -> HotLink
[hotLinkURL] :: HotLink -> URL
[hotLinkContents] :: HotLink -> Html
[hotLinkAttributes] :: HotLink -> [HtmlAttr]
hotlink :: URL -> Html -> HotLink
ordList :: (HTML a) => [a] -> Html
unordList :: (HTML a) => [a] -> Html
defList :: (HTML a, HTML b) => [(a, b)] -> Html
widget :: String -> String -> [HtmlAttr] -> Html
checkbox :: String -> String -> Html
hidden :: String -> String -> Html
radio :: String -> String -> Html
reset :: String -> String -> Html
submit :: String -> String -> Html
password :: String -> Html
textfield :: String -> Html
afile :: String -> Html
clickmap :: String -> Html

-- | <i>Deprecated: menu generates strange XHTML, and is not flexible
--   enough. Roll your own that suits your needs.</i>
menu :: String -> [Html] -> Html
gui :: String -> Html -> Html


-- | An XHTML combinator library.
--   
--   Based on the original Text.Html library by Andy Gill. See
--   <a>http://www.cse.ogi.edu/~andy/html/intro.htm</a> for an introduction
--   to that library.
--   
--   This module re-exports <a>Text.XHtml.Transitional</a>, which produces
--   XHTML 1.0 Transitional. Use <a>Text.XHtml.Strict</a> if you want XHTML
--   1.0 Strict, and <a>Text.XHtml.Frameset</a> if you want to produce
--   XHTML 1.0 Frameset.
--   
--   See <a>http://www.w3.org/TR/xhtml1/</a> for more information about
--   XHTML 1.0.
module Text.XHtml

-- | The basic idea is you render your structure in the form of this tree,
--   and then use treeHtml to turn it into a Html object with the structure
--   explicit.
data HtmlTree
HtmlLeaf :: Html -> HtmlTree
HtmlNode :: Html -> [HtmlTree] -> Html -> HtmlTree
treeHtml :: [String] -> HtmlTree -> Html
treeColors :: [String]

-- | This uses the above tree rendering function, and displays the Html as
--   a tree structure, allowing debugging of what is actually getting
--   produced.
debugHtml :: (HTML a) => a -> Html
