diff --git a/CHANGELOG b/CHANGELOG
new file mode 100644
--- /dev/null
+++ b/CHANGELOG
@@ -0,0 +1,86 @@
+# Changelog
+
+- 0.9.2.0 (2024-03-06)
+    * Make XHTML5 doctype lowercase
+    * Add new attributes to (X)HTML5:
+        - `download`
+        - `minlength`
+        - `muted`
+        - `onkeypress`
+        - `poster`
+        - `property`
+    * Add new elements to (X)HTML5:
+        - `bdi`
+        - `data`
+        - `dialog`
+        - `picture`
+        - `s`
+        - `search`
+        - `slot`
+        - `template`
+
+- 0.9.1.2 (2019-10-02)
+    * Bump QuickCheck dependency to 2.13
+    * Bump containers dependency to 0.6
+    * Check in generated code
+    * Regenerate .travis.yml using haskell-ci
+
+- 0.9.1.1 (2018-06-12)
+    * Fix generated source code on Hackage
+
+- 0.9.1.0
+    * Add `u` element to HTML5
+    * Add `role` attribute to HTML5
+    * Bump HUnit dependency to 1.6
+    * Bump QuickCheck dependency to 2.11
+
+- 0.9.0.1
+    * Fix CHANGELOG
+
+- 0.9.0.0
+    * Bump blaze-html dependency to 0.8.  This has a few consequences:
+        - Make `MarkupM` finally adhere to the Monad laws
+        - Stricten the `IsString` instance to only work with `MarkupM ()` and
+          not `MarkupM a`
+        - Change the type of `contents` to `MarkupM a -> MarkupM a`
+        - Add a `Semigroup` instance for `MarkupM`
+
+- 0.7.1.1
+
+- 0.8.1.3
+    * Bump HUnit dependency to 1.5
+
+- 0.8.1.2
+    * Bump QuickCheck dependency to 2.9
+
+- 0.8.1.1
+    * Bump HUnit dependency to 1.3
+
+- 0.8.1.0
+    * Add `<main>` element to HTML5
+
+- 0.8.0.2
+    * Relax blaze-builder dependency to include 0.3 again
+
+- 0.8.0.1
+    * Bump QuickCheck dependency to 2.8
+
+- 0.8.0.0
+    * Bump blaze-builder dependency to 0.4
+
+- 0.7.1.0
+    * Add `itemscope` and `itemprop` attributes
+    * Constraint `blaze-markup` dependency
+
+- 0.7.0.3
+    * Dependency bump to allow `text-1.2`
+
+- 0.7.0.2
+    * Bump QuickCheck dependency to 2.7
+
+- 0.7.0.1
+    * Fix incorrect blaze-markup dependency in tests
+
+- 0.7.0.0
+    * Bump blaze-markup so we get the (!?) operator for conditionally setting
+      attributes
diff --git a/blaze-html.cabal b/blaze-html.cabal
--- a/blaze-html.cabal
+++ b/blaze-html.cabal
@@ -1,14 +1,15 @@
-Name:         blaze-html
-Version:      0.4.3.4
-Homepage:     http://jaspervdj.be/blaze
-Bug-Reports:  http://github.com/jaspervdj/blaze-html/issues
-License:      BSD3
-License-file: LICENSE
-Author:       Jasper Van der Jeugt, Simon Meier
-Maintainer:   Jasper Van der Jeugt <m@jaspervdj.be>
-Stability:    Experimental
-Category:     Text
-Synopsis:     A blazingly fast HTML combinator library for Haskell
+Cabal-version: >= 1.10
+Name:          blaze-html
+Version:       0.9.2.0
+Homepage:      http://jaspervdj.be/blaze
+Bug-Reports:   http://github.com/jaspervdj/blaze-html/issues
+License:       BSD3
+License-file:  LICENSE
+Author:        Jasper Van der Jeugt, Simon Meier
+Maintainer:    Jasper Van der Jeugt <m@jaspervdj.be>
+Stability:     Experimental
+Category:      Text
+Synopsis:      A blazingly fast HTML combinator library for Haskell
 Description:
   A blazingly fast HTML combinator library for the Haskell
   programming language. The Text.Blaze module is a good
@@ -16,18 +17,36 @@
   <http://jaspervdj.be/blaze/tutorial.html>.
 
 Build-type:    Simple
-Cabal-version: >= 1.8
 
-Extra-source-files:  
+Tested-with:
+  GHC == 9.8.2
+  GHC == 9.6.4
+  GHC == 9.4.8
+  GHC == 9.2.8
+  GHC == 9.0.2
+  GHC == 8.10.7
+  GHC == 8.8.4
+  GHC == 8.6.5
+  GHC == 8.4.4
+  GHC == 8.2.2
+  GHC == 8.0.2
+
+Extra-source-files:
+  CHANGELOG
   src/Util/Sanitize.hs
   src/Util/GenerateHtmlCombinators.hs
 
 Library
-  Hs-source-dirs: src
-  Ghc-Options:    -Wall
+  Hs-source-dirs:   src
+  Ghc-Options:      -Wall
+  Default-language: Haskell98
 
   Exposed-modules:
-    Text.Blaze
+    Text.Blaze.Html
+    Text.Blaze.Html.Renderer.Pretty
+    Text.Blaze.Html.Renderer.String
+    Text.Blaze.Html.Renderer.Text
+    Text.Blaze.Html.Renderer.Utf8
     Text.Blaze.Html4.FrameSet
     Text.Blaze.Html4.FrameSet.Attributes
     Text.Blaze.Html4.Strict
@@ -36,48 +55,54 @@
     Text.Blaze.Html4.Transitional.Attributes
     Text.Blaze.Html5
     Text.Blaze.Html5.Attributes
-    Text.Blaze.Internal
-    Text.Blaze.Renderer.Pretty
-    Text.Blaze.Renderer.String
-    Text.Blaze.Renderer.Text
-    Text.Blaze.Renderer.Utf8
     Text.Blaze.XHtml1.FrameSet
     Text.Blaze.XHtml1.FrameSet.Attributes
     Text.Blaze.XHtml1.Strict
     Text.Blaze.XHtml1.Strict.Attributes
     Text.Blaze.XHtml1.Transitional
     Text.Blaze.XHtml1.Transitional.Attributes
-  
+    Text.Blaze.XHtml5
+    Text.Blaze.XHtml5.Attributes
+
   Build-depends:
     base          >= 4    && < 5,
-    blaze-builder >= 0.2  && < 0.4,
-    text          >= 0.10 && < 0.12,
-    bytestring    >= 0.9  && < 0.10
+    blaze-builder >= 0.3  && < 0.5,
+    blaze-markup  >= 0.8  && < 0.9,
+    bytestring    >= 0.9  && < 0.13,
+    text          >= 0.10 && < 2.2
 
 Test-suite blaze-html-tests
-  Type:           exitcode-stdio-1.0
-  Hs-source-dirs: src tests
-  Main-is:        TestSuite.hs
-  Ghc-options:    -Wall
+  Type:             exitcode-stdio-1.0
+  Hs-source-dirs:   src tests
+  Main-is:          TestSuite.hs
+  Ghc-options:      -Wall
+  Default-language: Haskell98
 
   Other-modules:
-    Text.Blaze.Tests
-    Text.Blaze.Tests.Cases
-    Text.Blaze.Tests.Util
+    Text.Blaze.Html
+    Text.Blaze.Html.Renderer.String
+    Text.Blaze.Html.Renderer.Text
+    Text.Blaze.Html.Renderer.Utf8
+    Text.Blaze.Html.Tests
+    Text.Blaze.Html.Tests.Util
+    Text.Blaze.Html5
+    Text.Blaze.Html5.Attributes
+    Util.Sanitize
     Util.Tests
 
   Build-depends:
-    HUnit                      >= 1.2 && < 1.3,
-    QuickCheck                 >= 2.4 && < 2.5,
-    containers                 >= 0.3 && < 0.5,
-    test-framework             >= 0.4 && < 0.7,
-    test-framework-hunit       >= 0.2 && < 0.3,
-    test-framework-quickcheck2 >= 0.2 && < 0.3,
+    HUnit                      >= 1.2 && < 1.7,
+    QuickCheck                 >= 2.4 && < 2.15,
+    containers                 >= 0.3 && < 0.7,
+    test-framework             >= 0.4 && < 0.9,
+    test-framework-hunit       >= 0.3 && < 0.4,
+    test-framework-quickcheck2 >= 0.3 && < 0.4,
     -- Copied from regular dependencies...
     base          >= 4    && < 5,
-    blaze-builder >= 0.2  && < 0.4,
-    text          >= 0.10 && < 0.12,
-    bytestring    >= 0.9  && < 0.10
+    blaze-builder >= 0.3  && < 0.5,
+    blaze-markup  >= 0.8  && < 0.9,
+    bytestring    >= 0.9  && < 0.13,
+    text          >= 0.10 && < 2.2
 
 Source-repository head
   Type:     git
diff --git a/src/Text/Blaze.hs b/src/Text/Blaze.hs
deleted file mode 100644
--- a/src/Text/Blaze.hs
+++ /dev/null
@@ -1,179 +0,0 @@
-{-# LANGUAGE FlexibleInstances, TypeSynonymInstances #-}
--- | BlazeHtml is an HTML combinator library. It provides a way to embed HTML in
--- Haskell in an efficient and convenient way, with a light-weight syntax.
---
--- To use the library, one needs to import a set of HTML combinators. For
--- example, you can use HTML 4 Strict.
---
--- > {-# LANGUAGE OverloadedStrings #-}
--- > import Prelude hiding (head, id, div)
--- > import Text.Blaze.Html4.Strict hiding (map)
--- > import Text.Blaze.Html4.Strict.Attributes hiding (title)
---
--- To render the page later on, you need a so called Renderer. The recommended
--- renderer is an UTF-8 renderer which produces a lazy bytestring.
---
--- > import Text.Blaze.Renderer.Utf8 (renderHtml)
---
--- Now, you can describe pages using the imported combinators.
---
--- > page1 :: Html
--- > page1 = html $ do
--- >     head $ do
--- >         title "Introduction page."
--- >         link ! rel "stylesheet" ! type_ "text/css" ! href "screen.css"
--- >     body $ do
--- >         div ! id "header" $ "Syntax"
--- >         p "This is an example of BlazeHtml syntax."
--- >         ul $ mapM_ (li . toHtml . show) [1, 2, 3]
---
--- The resulting HTML can now be extracted using:
---
--- > renderHtml page1
---
-module Text.Blaze
-    (
-      -- * Important types.
-      Html
-    , Tag
-    , Attribute
-    , AttributeValue
-
-      -- * Creating attributes.
-    , dataAttribute
-    , customAttribute
-
-      -- * Converting values to HTML.
-    , ToHtml (..)
-    , text
-    , preEscapedText
-    , lazyText
-    , preEscapedLazyText
-    , string
-    , preEscapedString
-    , unsafeByteString
-    , unsafeLazyByteString
-
-      -- * Creating tags.
-    , textTag
-    , stringTag
-
-      -- * Converting values to attribute values.
-    , ToValue (..)
-    , textValue
-    , preEscapedTextValue
-    , lazyTextValue
-    , preEscapedLazyTextValue
-    , stringValue
-    , preEscapedStringValue
-    , unsafeByteStringValue
-    , unsafeLazyByteStringValue
-
-      -- * Setting attributes
-    , (!)
-    ) where
-
-import Data.Monoid (mconcat)
-
-import Data.Text (Text)
-import qualified Data.Text.Lazy as LT
-
-import Text.Blaze.Internal
-
--- | Class allowing us to use a single function for HTML values
---
-class ToHtml a where
-    -- | Convert a value to HTML.
-    --
-    toHtml :: a -> Html
-
-instance ToHtml Html where
-    toHtml = id
-    {-# INLINE toHtml #-}
-
-instance ToHtml [Html] where
-    toHtml = mconcat
-    {-# INLINE toHtml #-}
-
-instance ToHtml Text where
-    toHtml = text
-    {-# INLINE toHtml #-}
-
-instance ToHtml LT.Text where
-    toHtml = lazyText
-    {-# INLINE toHtml #-}
-
-instance ToHtml String where
-    toHtml = string
-    {-# INLINE toHtml #-}
-
-instance ToHtml Int where
-    toHtml = string . show
-    {-# INLINE toHtml #-}
-
-instance ToHtml Char where
-    toHtml = string . return
-    {-# INLINE toHtml #-}
-
-instance ToHtml Bool where
-    toHtml = string . show
-    {-# INLINE toHtml #-}
-
-instance ToHtml Integer where
-    toHtml = string . show
-    {-# INLINE toHtml #-}
-
-instance ToHtml Float where
-    toHtml = string . show
-    {-# INLINE toHtml #-}
-
-instance ToHtml Double where
-    toHtml = string . show
-    {-# INLINE toHtml #-}
-
--- | Class allowing us to use a single function for attribute values
---
-class ToValue a where
-    -- | Convert a value to an HTML attribute value
-    --
-    toValue :: a -> AttributeValue
-
-instance ToValue AttributeValue where
-    toValue = id
-    {-# INLINE toValue #-}
-
-instance ToValue Text where
-    toValue = textValue
-    {-# INLINE toValue #-}
-
-instance ToValue LT.Text where
-    toValue = lazyTextValue
-    {-# INLINE toValue #-}
-
-instance ToValue String where
-    toValue = stringValue
-    {-# INLINE toValue #-}
-
-instance ToValue Int where
-    toValue = stringValue . show
-    {-# INLINE toValue #-}
-
-instance ToValue Char where
-    toValue = stringValue . return
-    {-# INLINE toValue #-}
-
-instance ToValue Bool where
-    toValue = stringValue . show
-    {-# INLINE toValue #-}
-
-instance ToValue Integer where
-    toValue = stringValue . show
-    {-# INLINE toValue #-}
-
-instance ToValue Float where
-    toValue = stringValue . show
-    {-# INLINE toValue #-}
-
-instance ToValue Double where
-    toValue = stringValue . show
-    {-# INLINE toValue #-}
diff --git a/src/Text/Blaze/Html.hs b/src/Text/Blaze/Html.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Blaze/Html.hs
@@ -0,0 +1,16 @@
+module Text.Blaze.Html
+    ( module Text.Blaze
+    , Html
+    , toHtml
+    , preEscapedToHtml
+    ) where
+
+import Text.Blaze
+
+type Html = Markup
+
+toHtml :: ToMarkup a => a -> Html
+toHtml = toMarkup
+
+preEscapedToHtml :: ToMarkup a => a -> Html
+preEscapedToHtml = preEscapedToMarkup
diff --git a/src/Text/Blaze/Html/Renderer/Pretty.hs b/src/Text/Blaze/Html/Renderer/Pretty.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Blaze/Html/Renderer/Pretty.hs
@@ -0,0 +1,9 @@
+module Text.Blaze.Html.Renderer.Pretty
+    ( renderHtml
+    ) where
+
+import Text.Blaze.Html (Html)
+import Text.Blaze.Renderer.Pretty (renderMarkup)
+
+renderHtml :: Html -> String
+renderHtml = renderMarkup
diff --git a/src/Text/Blaze/Html/Renderer/String.hs b/src/Text/Blaze/Html/Renderer/String.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Blaze/Html/Renderer/String.hs
@@ -0,0 +1,9 @@
+module Text.Blaze.Html.Renderer.String
+    ( renderHtml
+    ) where
+
+import Text.Blaze.Html (Html)
+import Text.Blaze.Renderer.String (renderMarkup)
+
+renderHtml :: Html -> String
+renderHtml = renderMarkup
diff --git a/src/Text/Blaze/Html/Renderer/Text.hs b/src/Text/Blaze/Html/Renderer/Text.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Blaze/Html/Renderer/Text.hs
@@ -0,0 +1,25 @@
+module Text.Blaze.Html.Renderer.Text
+    ( renderHtmlBuilder
+    , renderHtmlBuilderWith
+    , renderHtml
+    , renderHtmlWith
+    ) where
+
+import Data.ByteString (ByteString)
+import Data.Text (Text)
+import Data.Text.Lazy.Builder (Builder)
+import Text.Blaze.Html (Html)
+import qualified Data.Text.Lazy as TL
+import qualified Text.Blaze.Renderer.Text as R
+
+renderHtmlBuilder :: Html -> Builder
+renderHtmlBuilder = R.renderMarkupBuilder
+
+renderHtmlBuilderWith :: (ByteString -> Text) -> Html -> Builder
+renderHtmlBuilderWith = R.renderMarkupBuilderWith
+
+renderHtml :: Html -> TL.Text
+renderHtml = R.renderMarkup
+
+renderHtmlWith :: (ByteString -> Text) -> Html -> TL.Text
+renderHtmlWith = R.renderMarkupWith
diff --git a/src/Text/Blaze/Html/Renderer/Utf8.hs b/src/Text/Blaze/Html/Renderer/Utf8.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Blaze/Html/Renderer/Utf8.hs
@@ -0,0 +1,20 @@
+module Text.Blaze.Html.Renderer.Utf8
+    ( renderHtmlBuilder
+    , renderHtml
+    , renderHtmlToByteStringIO
+    ) where
+
+import Blaze.ByteString.Builder (Builder)
+import Data.ByteString (ByteString)
+import Text.Blaze.Html (Html)
+import qualified Data.ByteString.Lazy as BL
+import qualified Text.Blaze.Renderer.Utf8 as R
+
+renderHtmlBuilder :: Html -> Builder
+renderHtmlBuilder = R.renderMarkupBuilder
+
+renderHtml :: Html -> BL.ByteString
+renderHtml = R.renderMarkup
+
+renderHtmlToByteStringIO :: (ByteString -> IO ()) -> Html -> IO ()
+renderHtmlToByteStringIO = R.renderMarkupToByteStringIO
diff --git a/src/Text/Blaze/Html4/FrameSet.hs b/src/Text/Blaze/Html4/FrameSet.hs
--- a/src/Text/Blaze/Html4/FrameSet.hs
+++ b/src/Text/Blaze/Html4/FrameSet.hs
@@ -1,11 +1,11 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:69
+-- src/Util/GenerateHtmlCombinators.hs:70
 --
 {-# LANGUAGE OverloadedStrings #-}
 -- | This module exports HTML combinators used to create documents.
 --
 module Text.Blaze.Html4.FrameSet
-    ( module Text.Blaze
+    ( module Text.Blaze.Html
     , docType
     , docTypeHtml
     , a
@@ -100,15 +100,16 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:77
+-- src/Util/GenerateHtmlCombinators.hs:78
 --
 import Prelude ((>>), (.))
 
 import Text.Blaze
 import Text.Blaze.Internal
+import Text.Blaze.Html
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:155
+-- src/Util/GenerateHtmlCombinators.hs:157
 --
 -- | Combinator for the document type. This should be placed at the top
 -- of every HTML page.
@@ -127,14 +128,14 @@
 {-# INLINE docType #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:176
+-- src/Util/GenerateHtmlCombinators.hs:178
 --
 -- | Combinator for the @\<html>@ element. This combinator will also
 -- insert the correct doctype.
 --
 -- Example:
 --
--- > docTypeHtml $ span $ text "foo"
+-- > docTypeHtml $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -148,13 +149,13 @@
 {-# INLINE docTypeHtml #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<a>@ element.
 --
 -- Example:
 --
--- > a $ span $ text "foo"
+-- > a $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -166,13 +167,13 @@
 {-# INLINE a #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<abbr>@ element.
 --
 -- Example:
 --
--- > abbr $ span $ text "foo"
+-- > abbr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -184,13 +185,13 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<acronym>@ element.
 --
 -- Example:
 --
--- > acronym $ span $ text "foo"
+-- > acronym $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -202,13 +203,13 @@
 {-# INLINE acronym #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<address>@ element.
 --
 -- Example:
 --
--- > address $ span $ text "foo"
+-- > address $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -220,13 +221,13 @@
 {-# INLINE address #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<applet>@ element.
 --
 -- Example:
 --
--- > applet $ span $ text "foo"
+-- > applet $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -238,7 +239,7 @@
 {-# INLINE applet #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<area />@ element.
 --
@@ -251,17 +252,17 @@
 -- > <area />
 --
 area :: Html  -- ^ Resulting HTML.
-area = Leaf "area" "<area" ">"
+area = Leaf "area" "<area" ">" ()
 {-# INLINE area #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<b>@ element.
 --
 -- Example:
 --
--- > b $ span $ text "foo"
+-- > b $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -273,7 +274,7 @@
 {-# INLINE b #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<basefont />@ element.
 --
@@ -286,17 +287,17 @@
 -- > <basefont />
 --
 basefont :: Html  -- ^ Resulting HTML.
-basefont = Leaf "basefont" "<basefont" ">"
+basefont = Leaf "basefont" "<basefont" ">" ()
 {-# INLINE basefont #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<bdo>@ element.
 --
 -- Example:
 --
--- > bdo $ span $ text "foo"
+-- > bdo $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -308,13 +309,13 @@
 {-# INLINE bdo #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<big>@ element.
 --
 -- Example:
 --
--- > big $ span $ text "foo"
+-- > big $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -326,13 +327,13 @@
 {-# INLINE big #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<blockquote>@ element.
 --
 -- Example:
 --
--- > blockquote $ span $ text "foo"
+-- > blockquote $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -344,13 +345,13 @@
 {-# INLINE blockquote #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<body>@ element.
 --
 -- Example:
 --
--- > body $ span $ text "foo"
+-- > body $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -362,7 +363,7 @@
 {-# INLINE body #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<br />@ element.
 --
@@ -375,17 +376,17 @@
 -- > <br />
 --
 br :: Html  -- ^ Resulting HTML.
-br = Leaf "br" "<br" ">"
+br = Leaf "br" "<br" ">" ()
 {-# INLINE br #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<button>@ element.
 --
 -- Example:
 --
--- > button $ span $ text "foo"
+-- > button $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -397,13 +398,13 @@
 {-# INLINE button #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<caption>@ element.
 --
 -- Example:
 --
--- > caption $ span $ text "foo"
+-- > caption $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -415,13 +416,13 @@
 {-# INLINE caption #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<center>@ element.
 --
 -- Example:
 --
--- > center $ span $ text "foo"
+-- > center $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -433,13 +434,13 @@
 {-# INLINE center #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<cite>@ element.
 --
 -- Example:
 --
--- > cite $ span $ text "foo"
+-- > cite $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -451,13 +452,13 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<code>@ element.
 --
 -- Example:
 --
--- > code $ span $ text "foo"
+-- > code $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -469,7 +470,7 @@
 {-# INLINE code #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<col />@ element.
 --
@@ -482,17 +483,17 @@
 -- > <col />
 --
 col :: Html  -- ^ Resulting HTML.
-col = Leaf "col" "<col" ">"
+col = Leaf "col" "<col" ">" ()
 {-# INLINE col #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<colgroup>@ element.
 --
 -- Example:
 --
--- > colgroup $ span $ text "foo"
+-- > colgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -504,13 +505,13 @@
 {-# INLINE colgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dd>@ element.
 --
 -- Example:
 --
--- > dd $ span $ text "foo"
+-- > dd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -522,13 +523,13 @@
 {-# INLINE dd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<del>@ element.
 --
 -- Example:
 --
--- > del $ span $ text "foo"
+-- > del $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -540,13 +541,13 @@
 {-# INLINE del #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dfn>@ element.
 --
 -- Example:
 --
--- > dfn $ span $ text "foo"
+-- > dfn $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -558,13 +559,13 @@
 {-# INLINE dfn #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dir>@ element.
 --
 -- Example:
 --
--- > dir $ span $ text "foo"
+-- > dir $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -576,13 +577,13 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<div>@ element.
 --
 -- Example:
 --
--- > div $ span $ text "foo"
+-- > div $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -594,13 +595,13 @@
 {-# INLINE div #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dl>@ element.
 --
 -- Example:
 --
--- > dl $ span $ text "foo"
+-- > dl $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -612,13 +613,13 @@
 {-# INLINE dl #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dt>@ element.
 --
 -- Example:
 --
--- > dt $ span $ text "foo"
+-- > dt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -630,13 +631,13 @@
 {-# INLINE dt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<em>@ element.
 --
 -- Example:
 --
--- > em $ span $ text "foo"
+-- > em $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -648,13 +649,13 @@
 {-# INLINE em #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<fieldset>@ element.
 --
 -- Example:
 --
--- > fieldset $ span $ text "foo"
+-- > fieldset $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -666,13 +667,13 @@
 {-# INLINE fieldset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<font>@ element.
 --
 -- Example:
 --
--- > font $ span $ text "foo"
+-- > font $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -684,13 +685,13 @@
 {-# INLINE font #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<form>@ element.
 --
 -- Example:
 --
--- > form $ span $ text "foo"
+-- > form $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -702,7 +703,7 @@
 {-# INLINE form #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<frame />@ element.
 --
@@ -715,17 +716,17 @@
 -- > <frame />
 --
 frame :: Html  -- ^ Resulting HTML.
-frame = Leaf "frame" "<frame" ">"
+frame = Leaf "frame" "<frame" ">" ()
 {-# INLINE frame #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<frameset>@ element.
 --
 -- Example:
 --
--- > frameset $ span $ text "foo"
+-- > frameset $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -737,13 +738,13 @@
 {-# INLINE frameset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h1>@ element.
 --
 -- Example:
 --
--- > h1 $ span $ text "foo"
+-- > h1 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -755,13 +756,13 @@
 {-# INLINE h1 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h2>@ element.
 --
 -- Example:
 --
--- > h2 $ span $ text "foo"
+-- > h2 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -773,13 +774,13 @@
 {-# INLINE h2 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h3>@ element.
 --
 -- Example:
 --
--- > h3 $ span $ text "foo"
+-- > h3 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -791,13 +792,13 @@
 {-# INLINE h3 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h4>@ element.
 --
 -- Example:
 --
--- > h4 $ span $ text "foo"
+-- > h4 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -809,13 +810,13 @@
 {-# INLINE h4 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h5>@ element.
 --
 -- Example:
 --
--- > h5 $ span $ text "foo"
+-- > h5 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -827,13 +828,13 @@
 {-# INLINE h5 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h6>@ element.
 --
 -- Example:
 --
--- > h6 $ span $ text "foo"
+-- > h6 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -845,13 +846,13 @@
 {-# INLINE h6 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<head>@ element.
 --
 -- Example:
 --
--- > head $ span $ text "foo"
+-- > head $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -863,7 +864,7 @@
 {-# INLINE head #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<hr />@ element.
 --
@@ -876,17 +877,17 @@
 -- > <hr />
 --
 hr :: Html  -- ^ Resulting HTML.
-hr = Leaf "hr" "<hr" ">"
+hr = Leaf "hr" "<hr" ">" ()
 {-# INLINE hr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<html>@ element.
 --
 -- Example:
 --
--- > html $ span $ text "foo"
+-- > html $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -898,13 +899,13 @@
 {-# INLINE html #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<i>@ element.
 --
 -- Example:
 --
--- > i $ span $ text "foo"
+-- > i $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -916,13 +917,13 @@
 {-# INLINE i #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<iframe>@ element.
 --
 -- Example:
 --
--- > iframe $ span $ text "foo"
+-- > iframe $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -934,7 +935,7 @@
 {-# INLINE iframe #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<img />@ element.
 --
@@ -947,11 +948,11 @@
 -- > <img />
 --
 img :: Html  -- ^ Resulting HTML.
-img = Leaf "img" "<img" ">"
+img = Leaf "img" "<img" ">" ()
 {-# INLINE img #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<input />@ element.
 --
@@ -964,17 +965,17 @@
 -- > <input />
 --
 input :: Html  -- ^ Resulting HTML.
-input = Leaf "input" "<input" ">"
+input = Leaf "input" "<input" ">" ()
 {-# INLINE input #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ins>@ element.
 --
 -- Example:
 --
--- > ins $ span $ text "foo"
+-- > ins $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -986,13 +987,13 @@
 {-# INLINE ins #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<isindex>@ element.
 --
 -- Example:
 --
--- > isindex $ span $ text "foo"
+-- > isindex $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1004,13 +1005,13 @@
 {-# INLINE isindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<kbd>@ element.
 --
 -- Example:
 --
--- > kbd $ span $ text "foo"
+-- > kbd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1022,13 +1023,13 @@
 {-# INLINE kbd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<label>@ element.
 --
 -- Example:
 --
--- > label $ span $ text "foo"
+-- > label $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1040,13 +1041,13 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<legend>@ element.
 --
 -- Example:
 --
--- > legend $ span $ text "foo"
+-- > legend $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1058,13 +1059,13 @@
 {-# INLINE legend #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<li>@ element.
 --
 -- Example:
 --
--- > li $ span $ text "foo"
+-- > li $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1076,7 +1077,7 @@
 {-# INLINE li #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<link />@ element.
 --
@@ -1089,17 +1090,17 @@
 -- > <link />
 --
 link :: Html  -- ^ Resulting HTML.
-link = Leaf "link" "<link" ">"
+link = Leaf "link" "<link" ">" ()
 {-# INLINE link #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<map>@ element.
 --
 -- Example:
 --
--- > map $ span $ text "foo"
+-- > map $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1111,13 +1112,13 @@
 {-# INLINE map #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<menu>@ element.
 --
 -- Example:
 --
--- > menu $ span $ text "foo"
+-- > menu $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1129,7 +1130,7 @@
 {-# INLINE menu #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<meta />@ element.
 --
@@ -1142,17 +1143,17 @@
 -- > <meta />
 --
 meta :: Html  -- ^ Resulting HTML.
-meta = Leaf "meta" "<meta" ">"
+meta = Leaf "meta" "<meta" ">" ()
 {-# INLINE meta #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noframes>@ element.
 --
 -- Example:
 --
--- > noframes $ span $ text "foo"
+-- > noframes $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1164,13 +1165,13 @@
 {-# INLINE noframes #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noscript>@ element.
 --
 -- Example:
 --
--- > noscript $ span $ text "foo"
+-- > noscript $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1182,13 +1183,13 @@
 {-# INLINE noscript #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<object>@ element.
 --
 -- Example:
 --
--- > object $ span $ text "foo"
+-- > object $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1200,13 +1201,13 @@
 {-# INLINE object #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ol>@ element.
 --
 -- Example:
 --
--- > ol $ span $ text "foo"
+-- > ol $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1218,13 +1219,13 @@
 {-# INLINE ol #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<optgroup>@ element.
 --
 -- Example:
 --
--- > optgroup $ span $ text "foo"
+-- > optgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1236,13 +1237,13 @@
 {-# INLINE optgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<option>@ element.
 --
 -- Example:
 --
--- > option $ span $ text "foo"
+-- > option $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1254,13 +1255,13 @@
 {-# INLINE option #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<p>@ element.
 --
 -- Example:
 --
--- > p $ span $ text "foo"
+-- > p $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1272,7 +1273,7 @@
 {-# INLINE p #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<param />@ element.
 --
@@ -1285,17 +1286,17 @@
 -- > <param />
 --
 param :: Html  -- ^ Resulting HTML.
-param = Leaf "param" "<param" ">"
+param = Leaf "param" "<param" ">" ()
 {-# INLINE param #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<pre>@ element.
 --
 -- Example:
 --
--- > pre $ span $ text "foo"
+-- > pre $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1307,13 +1308,13 @@
 {-# INLINE pre #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<q>@ element.
 --
 -- Example:
 --
--- > q $ span $ text "foo"
+-- > q $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1325,13 +1326,13 @@
 {-# INLINE q #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<s>@ element.
 --
 -- Example:
 --
--- > s $ span $ text "foo"
+-- > s $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1343,13 +1344,13 @@
 {-# INLINE s #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<samp>@ element.
 --
 -- Example:
 --
--- > samp $ span $ text "foo"
+-- > samp $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1361,13 +1362,13 @@
 {-# INLINE samp #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<script>@ element.
 --
 -- Example:
 --
--- > script $ span $ text "foo"
+-- > script $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1379,13 +1380,13 @@
 {-# INLINE script #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<select>@ element.
 --
 -- Example:
 --
--- > select $ span $ text "foo"
+-- > select $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1397,13 +1398,13 @@
 {-# INLINE select #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<small>@ element.
 --
 -- Example:
 --
--- > small $ span $ text "foo"
+-- > small $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1415,13 +1416,13 @@
 {-# INLINE small #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<span>@ element.
 --
 -- Example:
 --
--- > span $ span $ text "foo"
+-- > span $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1433,13 +1434,13 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<strong>@ element.
 --
 -- Example:
 --
--- > strong $ span $ text "foo"
+-- > strong $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1451,13 +1452,13 @@
 {-# INLINE strong #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<style>@ element.
 --
 -- Example:
 --
--- > style $ span $ text "foo"
+-- > style $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1469,13 +1470,13 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sub>@ element.
 --
 -- Example:
 --
--- > sub $ span $ text "foo"
+-- > sub $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1487,13 +1488,13 @@
 {-# INLINE sub #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sup>@ element.
 --
 -- Example:
 --
--- > sup $ span $ text "foo"
+-- > sup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1505,13 +1506,13 @@
 {-# INLINE sup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<table>@ element.
 --
 -- Example:
 --
--- > table $ span $ text "foo"
+-- > table $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1523,13 +1524,13 @@
 {-# INLINE table #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tbody>@ element.
 --
 -- Example:
 --
--- > tbody $ span $ text "foo"
+-- > tbody $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1541,13 +1542,13 @@
 {-# INLINE tbody #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<td>@ element.
 --
 -- Example:
 --
--- > td $ span $ text "foo"
+-- > td $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1559,13 +1560,13 @@
 {-# INLINE td #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<textarea>@ element.
 --
 -- Example:
 --
--- > textarea $ span $ text "foo"
+-- > textarea $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1577,13 +1578,13 @@
 {-# INLINE textarea #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tfoot>@ element.
 --
 -- Example:
 --
--- > tfoot $ span $ text "foo"
+-- > tfoot $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1595,13 +1596,13 @@
 {-# INLINE tfoot #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<th>@ element.
 --
 -- Example:
 --
--- > th $ span $ text "foo"
+-- > th $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1613,13 +1614,13 @@
 {-# INLINE th #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<thead>@ element.
 --
 -- Example:
 --
--- > thead $ span $ text "foo"
+-- > thead $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1631,13 +1632,13 @@
 {-# INLINE thead #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<title>@ element.
 --
 -- Example:
 --
--- > title $ span $ text "foo"
+-- > title $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1649,13 +1650,13 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tr>@ element.
 --
 -- Example:
 --
--- > tr $ span $ text "foo"
+-- > tr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1667,13 +1668,13 @@
 {-# INLINE tr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tt>@ element.
 --
 -- Example:
 --
--- > tt $ span $ text "foo"
+-- > tt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1685,13 +1686,13 @@
 {-# INLINE tt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<u>@ element.
 --
 -- Example:
 --
--- > u $ span $ text "foo"
+-- > u $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1703,13 +1704,13 @@
 {-# INLINE u #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ul>@ element.
 --
 -- Example:
 --
--- > ul $ span $ text "foo"
+-- > ul $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1721,13 +1722,13 @@
 {-# INLINE ul #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<var>@ element.
 --
 -- Example:
 --
--- > var $ span $ text "foo"
+-- > var $ span $ toHtml "foo"
 --
 -- Result:
 --
diff --git a/src/Text/Blaze/Html4/FrameSet/Attributes.hs b/src/Text/Blaze/Html4/FrameSet/Attributes.hs
--- a/src/Text/Blaze/Html4/FrameSet/Attributes.hs
+++ b/src/Text/Blaze/Html4/FrameSet/Attributes.hs
@@ -1,5 +1,5 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:92
+-- src/Util/GenerateHtmlCombinators.hs:94
 --
 -- | This module exports combinators that provide you with the
 -- ability to set attributes on HTML elements.
@@ -113,14 +113,14 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:98
+-- src/Util/GenerateHtmlCombinators.hs:100
 --
 import Prelude ()
 
 import Text.Blaze.Internal (Attribute, AttributeValue, attribute)
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @abbr@ attribute.
 --
@@ -138,7 +138,7 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accept@ attribute.
 --
@@ -156,7 +156,7 @@
 {-# INLINE accept #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accesskey@ attribute.
 --
@@ -174,7 +174,7 @@
 {-# INLINE accesskey #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @action@ attribute.
 --
@@ -192,7 +192,7 @@
 {-# INLINE action #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @align@ attribute.
 --
@@ -210,7 +210,7 @@
 {-# INLINE align #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @alt@ attribute.
 --
@@ -228,7 +228,7 @@
 {-# INLINE alt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @archive@ attribute.
 --
@@ -246,7 +246,7 @@
 {-# INLINE archive #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @axis@ attribute.
 --
@@ -264,7 +264,7 @@
 {-# INLINE axis #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @background@ attribute.
 --
@@ -282,7 +282,7 @@
 {-# INLINE background #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @bgcolor@ attribute.
 --
@@ -300,7 +300,7 @@
 {-# INLINE bgcolor #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @border@ attribute.
 --
@@ -318,7 +318,7 @@
 {-# INLINE border #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellpadding@ attribute.
 --
@@ -336,7 +336,7 @@
 {-# INLINE cellpadding #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellspacing@ attribute.
 --
@@ -354,7 +354,7 @@
 {-# INLINE cellspacing #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @char@ attribute.
 --
@@ -372,7 +372,7 @@
 {-# INLINE char #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charoff@ attribute.
 --
@@ -390,7 +390,7 @@
 {-# INLINE charoff #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charset@ attribute.
 --
@@ -408,7 +408,7 @@
 {-# INLINE charset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @checked@ attribute.
 --
@@ -426,7 +426,7 @@
 {-# INLINE checked #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cite@ attribute.
 --
@@ -444,7 +444,7 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @class@ attribute.
 --
@@ -462,7 +462,7 @@
 {-# INLINE class_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @classid@ attribute.
 --
@@ -480,7 +480,7 @@
 {-# INLINE classid #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @clear@ attribute.
 --
@@ -498,7 +498,7 @@
 {-# INLINE clear #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codebase@ attribute.
 --
@@ -516,7 +516,7 @@
 {-# INLINE codebase #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codetype@ attribute.
 --
@@ -534,7 +534,7 @@
 {-# INLINE codetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cols@ attribute.
 --
@@ -552,7 +552,7 @@
 {-# INLINE cols #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @colspan@ attribute.
 --
@@ -570,7 +570,7 @@
 {-# INLINE colspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @compact@ attribute.
 --
@@ -588,7 +588,7 @@
 {-# INLINE compact #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @content@ attribute.
 --
@@ -606,7 +606,7 @@
 {-# INLINE content #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @coords@ attribute.
 --
@@ -624,7 +624,7 @@
 {-# INLINE coords #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @data@ attribute.
 --
@@ -642,7 +642,7 @@
 {-# INLINE data_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @datetime@ attribute.
 --
@@ -660,7 +660,7 @@
 {-# INLINE datetime #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @declare@ attribute.
 --
@@ -678,7 +678,7 @@
 {-# INLINE declare #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @defer@ attribute.
 --
@@ -696,7 +696,7 @@
 {-# INLINE defer #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @dir@ attribute.
 --
@@ -714,7 +714,7 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @disabled@ attribute.
 --
@@ -732,7 +732,7 @@
 {-# INLINE disabled #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @enctype@ attribute.
 --
@@ -750,7 +750,7 @@
 {-# INLINE enctype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @for@ attribute.
 --
@@ -768,7 +768,7 @@
 {-# INLINE for #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @frame@ attribute.
 --
@@ -786,7 +786,7 @@
 {-# INLINE frame #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @frameborder@ attribute.
 --
@@ -804,7 +804,7 @@
 {-# INLINE frameborder #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @headers@ attribute.
 --
@@ -822,7 +822,7 @@
 {-# INLINE headers #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @height@ attribute.
 --
@@ -840,7 +840,7 @@
 {-# INLINE height #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @href@ attribute.
 --
@@ -858,7 +858,7 @@
 {-# INLINE href #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hreflang@ attribute.
 --
@@ -876,7 +876,7 @@
 {-# INLINE hreflang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hspace@ attribute.
 --
@@ -894,7 +894,7 @@
 {-# INLINE hspace #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @http-equiv@ attribute.
 --
@@ -912,7 +912,7 @@
 {-# INLINE httpEquiv #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @id@ attribute.
 --
@@ -930,7 +930,7 @@
 {-# INLINE id #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @label@ attribute.
 --
@@ -948,7 +948,7 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @lang@ attribute.
 --
@@ -966,7 +966,7 @@
 {-# INLINE lang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @language@ attribute.
 --
@@ -984,7 +984,7 @@
 {-# INLINE language #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @maxlength@ attribute.
 --
@@ -1002,7 +1002,7 @@
 {-# INLINE maxlength #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @media@ attribute.
 --
@@ -1020,7 +1020,7 @@
 {-# INLINE media #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @method@ attribute.
 --
@@ -1038,7 +1038,7 @@
 {-# INLINE method #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @multiple@ attribute.
 --
@@ -1056,7 +1056,7 @@
 {-# INLINE multiple #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @name@ attribute.
 --
@@ -1074,7 +1074,7 @@
 {-# INLINE name #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @nohref@ attribute.
 --
@@ -1092,7 +1092,7 @@
 {-# INLINE nohref #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @noshade@ attribute.
 --
@@ -1110,7 +1110,7 @@
 {-# INLINE noshade #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @nowrap@ attribute.
 --
@@ -1128,7 +1128,7 @@
 {-# INLINE nowrap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onabort@ attribute.
 --
@@ -1146,7 +1146,7 @@
 {-# INLINE onabort #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onblur@ attribute.
 --
@@ -1164,7 +1164,7 @@
 {-# INLINE onblur #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onchange@ attribute.
 --
@@ -1182,7 +1182,7 @@
 {-# INLINE onchange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onclick@ attribute.
 --
@@ -1200,7 +1200,7 @@
 {-# INLINE onclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondblclick@ attribute.
 --
@@ -1218,7 +1218,7 @@
 {-# INLINE ondblclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onfocus@ attribute.
 --
@@ -1236,7 +1236,7 @@
 {-# INLINE onfocus #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeydown@ attribute.
 --
@@ -1254,7 +1254,7 @@
 {-# INLINE onkeydown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeypress@ attribute.
 --
@@ -1272,7 +1272,7 @@
 {-# INLINE onkeypress #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeyup@ attribute.
 --
@@ -1290,7 +1290,7 @@
 {-# INLINE onkeyup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onload@ attribute.
 --
@@ -1308,7 +1308,7 @@
 {-# INLINE onload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousedown@ attribute.
 --
@@ -1326,7 +1326,7 @@
 {-# INLINE onmousedown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousemove@ attribute.
 --
@@ -1344,7 +1344,7 @@
 {-# INLINE onmousemove #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseout@ attribute.
 --
@@ -1362,7 +1362,7 @@
 {-# INLINE onmouseout #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseover@ attribute.
 --
@@ -1380,7 +1380,7 @@
 {-# INLINE onmouseover #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseup@ attribute.
 --
@@ -1398,7 +1398,7 @@
 {-# INLINE onmouseup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onreset@ attribute.
 --
@@ -1416,7 +1416,7 @@
 {-# INLINE onreset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onselect@ attribute.
 --
@@ -1434,7 +1434,7 @@
 {-# INLINE onselect #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onsubmit@ attribute.
 --
@@ -1452,7 +1452,7 @@
 {-# INLINE onsubmit #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onunload@ attribute.
 --
@@ -1470,7 +1470,7 @@
 {-# INLINE onunload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @profile@ attribute.
 --
@@ -1488,7 +1488,7 @@
 {-# INLINE profile #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @readonly@ attribute.
 --
@@ -1506,7 +1506,7 @@
 {-# INLINE readonly #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rel@ attribute.
 --
@@ -1524,7 +1524,7 @@
 {-# INLINE rel #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rev@ attribute.
 --
@@ -1542,7 +1542,7 @@
 {-# INLINE rev #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rows@ attribute.
 --
@@ -1560,7 +1560,7 @@
 {-# INLINE rows #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rowspan@ attribute.
 --
@@ -1578,7 +1578,7 @@
 {-# INLINE rowspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rules@ attribute.
 --
@@ -1596,7 +1596,7 @@
 {-# INLINE rules #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scheme@ attribute.
 --
@@ -1614,7 +1614,7 @@
 {-# INLINE scheme #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scope@ attribute.
 --
@@ -1632,7 +1632,7 @@
 {-# INLINE scope #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scrolling@ attribute.
 --
@@ -1650,7 +1650,7 @@
 {-# INLINE scrolling #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @selected@ attribute.
 --
@@ -1668,7 +1668,7 @@
 {-# INLINE selected #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @shape@ attribute.
 --
@@ -1686,7 +1686,7 @@
 {-# INLINE shape #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @size@ attribute.
 --
@@ -1704,7 +1704,7 @@
 {-# INLINE size #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @span@ attribute.
 --
@@ -1722,7 +1722,7 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @src@ attribute.
 --
@@ -1740,7 +1740,7 @@
 {-# INLINE src #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @standby@ attribute.
 --
@@ -1758,7 +1758,7 @@
 {-# INLINE standby #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @start@ attribute.
 --
@@ -1776,7 +1776,7 @@
 {-# INLINE start #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @style@ attribute.
 --
@@ -1794,7 +1794,7 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @summary@ attribute.
 --
@@ -1812,7 +1812,7 @@
 {-# INLINE summary #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @tabindex@ attribute.
 --
@@ -1830,7 +1830,7 @@
 {-# INLINE tabindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @target@ attribute.
 --
@@ -1848,7 +1848,7 @@
 {-# INLINE target #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @title@ attribute.
 --
@@ -1866,7 +1866,7 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @type@ attribute.
 --
@@ -1884,7 +1884,7 @@
 {-# INLINE type_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @usemap@ attribute.
 --
@@ -1902,7 +1902,7 @@
 {-# INLINE usemap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valign@ attribute.
 --
@@ -1920,7 +1920,7 @@
 {-# INLINE valign #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @value@ attribute.
 --
@@ -1938,7 +1938,7 @@
 {-# INLINE value #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valuetype@ attribute.
 --
@@ -1956,7 +1956,7 @@
 {-# INLINE valuetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @vspace@ attribute.
 --
@@ -1974,7 +1974,7 @@
 {-# INLINE vspace #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @width@ attribute.
 --
diff --git a/src/Text/Blaze/Html4/Strict.hs b/src/Text/Blaze/Html4/Strict.hs
--- a/src/Text/Blaze/Html4/Strict.hs
+++ b/src/Text/Blaze/Html4/Strict.hs
@@ -1,11 +1,11 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:69
+-- src/Util/GenerateHtmlCombinators.hs:70
 --
 {-# LANGUAGE OverloadedStrings #-}
 -- | This module exports HTML combinators used to create documents.
 --
 module Text.Blaze.Html4.Strict
-    ( module Text.Blaze
+    ( module Text.Blaze.Html
     , docType
     , docTypeHtml
     , a
@@ -87,15 +87,16 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:77
+-- src/Util/GenerateHtmlCombinators.hs:78
 --
 import Prelude ((>>), (.))
 
 import Text.Blaze
 import Text.Blaze.Internal
+import Text.Blaze.Html
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:155
+-- src/Util/GenerateHtmlCombinators.hs:157
 --
 -- | Combinator for the document type. This should be placed at the top
 -- of every HTML page.
@@ -114,14 +115,14 @@
 {-# INLINE docType #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:176
+-- src/Util/GenerateHtmlCombinators.hs:178
 --
 -- | Combinator for the @\<html>@ element. This combinator will also
 -- insert the correct doctype.
 --
 -- Example:
 --
--- > docTypeHtml $ span $ text "foo"
+-- > docTypeHtml $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -135,13 +136,13 @@
 {-# INLINE docTypeHtml #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<a>@ element.
 --
 -- Example:
 --
--- > a $ span $ text "foo"
+-- > a $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -153,13 +154,13 @@
 {-# INLINE a #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<abbr>@ element.
 --
 -- Example:
 --
--- > abbr $ span $ text "foo"
+-- > abbr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -171,13 +172,13 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<acronym>@ element.
 --
 -- Example:
 --
--- > acronym $ span $ text "foo"
+-- > acronym $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -189,13 +190,13 @@
 {-# INLINE acronym #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<address>@ element.
 --
 -- Example:
 --
--- > address $ span $ text "foo"
+-- > address $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -207,7 +208,7 @@
 {-# INLINE address #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<area />@ element.
 --
@@ -220,17 +221,17 @@
 -- > <area />
 --
 area :: Html  -- ^ Resulting HTML.
-area = Leaf "area" "<area" ">"
+area = Leaf "area" "<area" ">" ()
 {-# INLINE area #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<b>@ element.
 --
 -- Example:
 --
--- > b $ span $ text "foo"
+-- > b $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -242,13 +243,13 @@
 {-# INLINE b #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<bdo>@ element.
 --
 -- Example:
 --
--- > bdo $ span $ text "foo"
+-- > bdo $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -260,13 +261,13 @@
 {-# INLINE bdo #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<big>@ element.
 --
 -- Example:
 --
--- > big $ span $ text "foo"
+-- > big $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -278,13 +279,13 @@
 {-# INLINE big #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<blockquote>@ element.
 --
 -- Example:
 --
--- > blockquote $ span $ text "foo"
+-- > blockquote $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -296,13 +297,13 @@
 {-# INLINE blockquote #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<body>@ element.
 --
 -- Example:
 --
--- > body $ span $ text "foo"
+-- > body $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -314,7 +315,7 @@
 {-# INLINE body #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<br />@ element.
 --
@@ -327,17 +328,17 @@
 -- > <br />
 --
 br :: Html  -- ^ Resulting HTML.
-br = Leaf "br" "<br" ">"
+br = Leaf "br" "<br" ">" ()
 {-# INLINE br #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<button>@ element.
 --
 -- Example:
 --
--- > button $ span $ text "foo"
+-- > button $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -349,13 +350,13 @@
 {-# INLINE button #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<caption>@ element.
 --
 -- Example:
 --
--- > caption $ span $ text "foo"
+-- > caption $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -367,13 +368,13 @@
 {-# INLINE caption #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<cite>@ element.
 --
 -- Example:
 --
--- > cite $ span $ text "foo"
+-- > cite $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -385,13 +386,13 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<code>@ element.
 --
 -- Example:
 --
--- > code $ span $ text "foo"
+-- > code $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -403,7 +404,7 @@
 {-# INLINE code #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<col />@ element.
 --
@@ -416,17 +417,17 @@
 -- > <col />
 --
 col :: Html  -- ^ Resulting HTML.
-col = Leaf "col" "<col" ">"
+col = Leaf "col" "<col" ">" ()
 {-# INLINE col #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<colgroup>@ element.
 --
 -- Example:
 --
--- > colgroup $ span $ text "foo"
+-- > colgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -438,13 +439,13 @@
 {-# INLINE colgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dd>@ element.
 --
 -- Example:
 --
--- > dd $ span $ text "foo"
+-- > dd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -456,13 +457,13 @@
 {-# INLINE dd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<del>@ element.
 --
 -- Example:
 --
--- > del $ span $ text "foo"
+-- > del $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -474,13 +475,13 @@
 {-# INLINE del #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dfn>@ element.
 --
 -- Example:
 --
--- > dfn $ span $ text "foo"
+-- > dfn $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -492,13 +493,13 @@
 {-# INLINE dfn #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<div>@ element.
 --
 -- Example:
 --
--- > div $ span $ text "foo"
+-- > div $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -510,13 +511,13 @@
 {-# INLINE div #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dl>@ element.
 --
 -- Example:
 --
--- > dl $ span $ text "foo"
+-- > dl $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -528,13 +529,13 @@
 {-# INLINE dl #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dt>@ element.
 --
 -- Example:
 --
--- > dt $ span $ text "foo"
+-- > dt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -546,13 +547,13 @@
 {-# INLINE dt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<em>@ element.
 --
 -- Example:
 --
--- > em $ span $ text "foo"
+-- > em $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -564,13 +565,13 @@
 {-# INLINE em #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<fieldset>@ element.
 --
 -- Example:
 --
--- > fieldset $ span $ text "foo"
+-- > fieldset $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -582,13 +583,13 @@
 {-# INLINE fieldset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<form>@ element.
 --
 -- Example:
 --
--- > form $ span $ text "foo"
+-- > form $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -600,13 +601,13 @@
 {-# INLINE form #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h1>@ element.
 --
 -- Example:
 --
--- > h1 $ span $ text "foo"
+-- > h1 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -618,13 +619,13 @@
 {-# INLINE h1 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h2>@ element.
 --
 -- Example:
 --
--- > h2 $ span $ text "foo"
+-- > h2 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -636,13 +637,13 @@
 {-# INLINE h2 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h3>@ element.
 --
 -- Example:
 --
--- > h3 $ span $ text "foo"
+-- > h3 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -654,13 +655,13 @@
 {-# INLINE h3 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h4>@ element.
 --
 -- Example:
 --
--- > h4 $ span $ text "foo"
+-- > h4 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -672,13 +673,13 @@
 {-# INLINE h4 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h5>@ element.
 --
 -- Example:
 --
--- > h5 $ span $ text "foo"
+-- > h5 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -690,13 +691,13 @@
 {-# INLINE h5 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h6>@ element.
 --
 -- Example:
 --
--- > h6 $ span $ text "foo"
+-- > h6 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -708,13 +709,13 @@
 {-# INLINE h6 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<head>@ element.
 --
 -- Example:
 --
--- > head $ span $ text "foo"
+-- > head $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -726,7 +727,7 @@
 {-# INLINE head #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<hr />@ element.
 --
@@ -739,17 +740,17 @@
 -- > <hr />
 --
 hr :: Html  -- ^ Resulting HTML.
-hr = Leaf "hr" "<hr" ">"
+hr = Leaf "hr" "<hr" ">" ()
 {-# INLINE hr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<html>@ element.
 --
 -- Example:
 --
--- > html $ span $ text "foo"
+-- > html $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -761,13 +762,13 @@
 {-# INLINE html #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<i>@ element.
 --
 -- Example:
 --
--- > i $ span $ text "foo"
+-- > i $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -779,7 +780,7 @@
 {-# INLINE i #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<img />@ element.
 --
@@ -792,11 +793,11 @@
 -- > <img />
 --
 img :: Html  -- ^ Resulting HTML.
-img = Leaf "img" "<img" ">"
+img = Leaf "img" "<img" ">" ()
 {-# INLINE img #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<input />@ element.
 --
@@ -809,17 +810,17 @@
 -- > <input />
 --
 input :: Html  -- ^ Resulting HTML.
-input = Leaf "input" "<input" ">"
+input = Leaf "input" "<input" ">" ()
 {-# INLINE input #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ins>@ element.
 --
 -- Example:
 --
--- > ins $ span $ text "foo"
+-- > ins $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -831,13 +832,13 @@
 {-# INLINE ins #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<kbd>@ element.
 --
 -- Example:
 --
--- > kbd $ span $ text "foo"
+-- > kbd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -849,13 +850,13 @@
 {-# INLINE kbd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<label>@ element.
 --
 -- Example:
 --
--- > label $ span $ text "foo"
+-- > label $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -867,13 +868,13 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<legend>@ element.
 --
 -- Example:
 --
--- > legend $ span $ text "foo"
+-- > legend $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -885,13 +886,13 @@
 {-# INLINE legend #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<li>@ element.
 --
 -- Example:
 --
--- > li $ span $ text "foo"
+-- > li $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -903,7 +904,7 @@
 {-# INLINE li #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<link />@ element.
 --
@@ -916,17 +917,17 @@
 -- > <link />
 --
 link :: Html  -- ^ Resulting HTML.
-link = Leaf "link" "<link" ">"
+link = Leaf "link" "<link" ">" ()
 {-# INLINE link #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<map>@ element.
 --
 -- Example:
 --
--- > map $ span $ text "foo"
+-- > map $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -938,7 +939,7 @@
 {-# INLINE map #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<meta />@ element.
 --
@@ -951,17 +952,17 @@
 -- > <meta />
 --
 meta :: Html  -- ^ Resulting HTML.
-meta = Leaf "meta" "<meta" ">"
+meta = Leaf "meta" "<meta" ">" ()
 {-# INLINE meta #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noscript>@ element.
 --
 -- Example:
 --
--- > noscript $ span $ text "foo"
+-- > noscript $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -973,13 +974,13 @@
 {-# INLINE noscript #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<object>@ element.
 --
 -- Example:
 --
--- > object $ span $ text "foo"
+-- > object $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -991,13 +992,13 @@
 {-# INLINE object #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ol>@ element.
 --
 -- Example:
 --
--- > ol $ span $ text "foo"
+-- > ol $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1009,13 +1010,13 @@
 {-# INLINE ol #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<optgroup>@ element.
 --
 -- Example:
 --
--- > optgroup $ span $ text "foo"
+-- > optgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1027,13 +1028,13 @@
 {-# INLINE optgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<option>@ element.
 --
 -- Example:
 --
--- > option $ span $ text "foo"
+-- > option $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1045,13 +1046,13 @@
 {-# INLINE option #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<p>@ element.
 --
 -- Example:
 --
--- > p $ span $ text "foo"
+-- > p $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1063,7 +1064,7 @@
 {-# INLINE p #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<param />@ element.
 --
@@ -1076,17 +1077,17 @@
 -- > <param />
 --
 param :: Html  -- ^ Resulting HTML.
-param = Leaf "param" "<param" ">"
+param = Leaf "param" "<param" ">" ()
 {-# INLINE param #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<pre>@ element.
 --
 -- Example:
 --
--- > pre $ span $ text "foo"
+-- > pre $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1098,13 +1099,13 @@
 {-# INLINE pre #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<q>@ element.
 --
 -- Example:
 --
--- > q $ span $ text "foo"
+-- > q $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1116,13 +1117,13 @@
 {-# INLINE q #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<samp>@ element.
 --
 -- Example:
 --
--- > samp $ span $ text "foo"
+-- > samp $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1134,13 +1135,13 @@
 {-# INLINE samp #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<script>@ element.
 --
 -- Example:
 --
--- > script $ span $ text "foo"
+-- > script $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1152,13 +1153,13 @@
 {-# INLINE script #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<select>@ element.
 --
 -- Example:
 --
--- > select $ span $ text "foo"
+-- > select $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1170,13 +1171,13 @@
 {-# INLINE select #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<small>@ element.
 --
 -- Example:
 --
--- > small $ span $ text "foo"
+-- > small $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1188,13 +1189,13 @@
 {-# INLINE small #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<span>@ element.
 --
 -- Example:
 --
--- > span $ span $ text "foo"
+-- > span $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1206,13 +1207,13 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<strong>@ element.
 --
 -- Example:
 --
--- > strong $ span $ text "foo"
+-- > strong $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1224,13 +1225,13 @@
 {-# INLINE strong #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<style>@ element.
 --
 -- Example:
 --
--- > style $ span $ text "foo"
+-- > style $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1242,13 +1243,13 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sub>@ element.
 --
 -- Example:
 --
--- > sub $ span $ text "foo"
+-- > sub $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1260,13 +1261,13 @@
 {-# INLINE sub #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sup>@ element.
 --
 -- Example:
 --
--- > sup $ span $ text "foo"
+-- > sup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1278,13 +1279,13 @@
 {-# INLINE sup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<table>@ element.
 --
 -- Example:
 --
--- > table $ span $ text "foo"
+-- > table $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1296,13 +1297,13 @@
 {-# INLINE table #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tbody>@ element.
 --
 -- Example:
 --
--- > tbody $ span $ text "foo"
+-- > tbody $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1314,13 +1315,13 @@
 {-# INLINE tbody #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<td>@ element.
 --
 -- Example:
 --
--- > td $ span $ text "foo"
+-- > td $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1332,13 +1333,13 @@
 {-# INLINE td #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<textarea>@ element.
 --
 -- Example:
 --
--- > textarea $ span $ text "foo"
+-- > textarea $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1350,13 +1351,13 @@
 {-# INLINE textarea #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tfoot>@ element.
 --
 -- Example:
 --
--- > tfoot $ span $ text "foo"
+-- > tfoot $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1368,13 +1369,13 @@
 {-# INLINE tfoot #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<th>@ element.
 --
 -- Example:
 --
--- > th $ span $ text "foo"
+-- > th $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1386,13 +1387,13 @@
 {-# INLINE th #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<thead>@ element.
 --
 -- Example:
 --
--- > thead $ span $ text "foo"
+-- > thead $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1404,13 +1405,13 @@
 {-# INLINE thead #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<title>@ element.
 --
 -- Example:
 --
--- > title $ span $ text "foo"
+-- > title $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1422,13 +1423,13 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tr>@ element.
 --
 -- Example:
 --
--- > tr $ span $ text "foo"
+-- > tr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1440,13 +1441,13 @@
 {-# INLINE tr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tt>@ element.
 --
 -- Example:
 --
--- > tt $ span $ text "foo"
+-- > tt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1458,13 +1459,13 @@
 {-# INLINE tt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ul>@ element.
 --
 -- Example:
 --
--- > ul $ span $ text "foo"
+-- > ul $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1476,13 +1477,13 @@
 {-# INLINE ul #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<var>@ element.
 --
 -- Example:
 --
--- > var $ span $ text "foo"
+-- > var $ span $ toHtml "foo"
 --
 -- Result:
 --
diff --git a/src/Text/Blaze/Html4/Strict/Attributes.hs b/src/Text/Blaze/Html4/Strict/Attributes.hs
--- a/src/Text/Blaze/Html4/Strict/Attributes.hs
+++ b/src/Text/Blaze/Html4/Strict/Attributes.hs
@@ -1,5 +1,5 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:92
+-- src/Util/GenerateHtmlCombinators.hs:94
 --
 -- | This module exports combinators that provide you with the
 -- ability to set attributes on HTML elements.
@@ -100,14 +100,14 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:98
+-- src/Util/GenerateHtmlCombinators.hs:100
 --
 import Prelude ()
 
 import Text.Blaze.Internal (Attribute, AttributeValue, attribute)
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @abbr@ attribute.
 --
@@ -125,7 +125,7 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accept@ attribute.
 --
@@ -143,7 +143,7 @@
 {-# INLINE accept #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accesskey@ attribute.
 --
@@ -161,7 +161,7 @@
 {-# INLINE accesskey #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @action@ attribute.
 --
@@ -179,7 +179,7 @@
 {-# INLINE action #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @align@ attribute.
 --
@@ -197,7 +197,7 @@
 {-# INLINE align #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @alt@ attribute.
 --
@@ -215,7 +215,7 @@
 {-# INLINE alt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @archive@ attribute.
 --
@@ -233,7 +233,7 @@
 {-# INLINE archive #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @axis@ attribute.
 --
@@ -251,7 +251,7 @@
 {-# INLINE axis #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @border@ attribute.
 --
@@ -269,7 +269,7 @@
 {-# INLINE border #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellpadding@ attribute.
 --
@@ -287,7 +287,7 @@
 {-# INLINE cellpadding #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellspacing@ attribute.
 --
@@ -305,7 +305,7 @@
 {-# INLINE cellspacing #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @char@ attribute.
 --
@@ -323,7 +323,7 @@
 {-# INLINE char #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charoff@ attribute.
 --
@@ -341,7 +341,7 @@
 {-# INLINE charoff #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charset@ attribute.
 --
@@ -359,7 +359,7 @@
 {-# INLINE charset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @checked@ attribute.
 --
@@ -377,7 +377,7 @@
 {-# INLINE checked #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cite@ attribute.
 --
@@ -395,7 +395,7 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @class@ attribute.
 --
@@ -413,7 +413,7 @@
 {-# INLINE class_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @classid@ attribute.
 --
@@ -431,7 +431,7 @@
 {-# INLINE classid #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codebase@ attribute.
 --
@@ -449,7 +449,7 @@
 {-# INLINE codebase #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codetype@ attribute.
 --
@@ -467,7 +467,7 @@
 {-# INLINE codetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cols@ attribute.
 --
@@ -485,7 +485,7 @@
 {-# INLINE cols #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @colspan@ attribute.
 --
@@ -503,7 +503,7 @@
 {-# INLINE colspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @content@ attribute.
 --
@@ -521,7 +521,7 @@
 {-# INLINE content #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @coords@ attribute.
 --
@@ -539,7 +539,7 @@
 {-# INLINE coords #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @data@ attribute.
 --
@@ -557,7 +557,7 @@
 {-# INLINE data_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @datetime@ attribute.
 --
@@ -575,7 +575,7 @@
 {-# INLINE datetime #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @declare@ attribute.
 --
@@ -593,7 +593,7 @@
 {-# INLINE declare #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @defer@ attribute.
 --
@@ -611,7 +611,7 @@
 {-# INLINE defer #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @dir@ attribute.
 --
@@ -629,7 +629,7 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @disabled@ attribute.
 --
@@ -647,7 +647,7 @@
 {-# INLINE disabled #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @enctype@ attribute.
 --
@@ -665,7 +665,7 @@
 {-# INLINE enctype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @for@ attribute.
 --
@@ -683,7 +683,7 @@
 {-# INLINE for #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @frame@ attribute.
 --
@@ -701,7 +701,7 @@
 {-# INLINE frame #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @headers@ attribute.
 --
@@ -719,7 +719,7 @@
 {-# INLINE headers #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @height@ attribute.
 --
@@ -737,7 +737,7 @@
 {-# INLINE height #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @href@ attribute.
 --
@@ -755,7 +755,7 @@
 {-# INLINE href #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hreflang@ attribute.
 --
@@ -773,7 +773,7 @@
 {-# INLINE hreflang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @http-equiv@ attribute.
 --
@@ -791,7 +791,7 @@
 {-# INLINE httpEquiv #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @id@ attribute.
 --
@@ -809,7 +809,7 @@
 {-# INLINE id #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @label@ attribute.
 --
@@ -827,7 +827,7 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @lang@ attribute.
 --
@@ -845,7 +845,7 @@
 {-# INLINE lang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @maxlength@ attribute.
 --
@@ -863,7 +863,7 @@
 {-# INLINE maxlength #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @media@ attribute.
 --
@@ -881,7 +881,7 @@
 {-# INLINE media #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @method@ attribute.
 --
@@ -899,7 +899,7 @@
 {-# INLINE method #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @multiple@ attribute.
 --
@@ -917,7 +917,7 @@
 {-# INLINE multiple #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @name@ attribute.
 --
@@ -935,7 +935,7 @@
 {-# INLINE name #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @nohref@ attribute.
 --
@@ -953,7 +953,7 @@
 {-# INLINE nohref #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onabort@ attribute.
 --
@@ -971,7 +971,7 @@
 {-# INLINE onabort #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onblur@ attribute.
 --
@@ -989,7 +989,7 @@
 {-# INLINE onblur #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onchange@ attribute.
 --
@@ -1007,7 +1007,7 @@
 {-# INLINE onchange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onclick@ attribute.
 --
@@ -1025,7 +1025,7 @@
 {-# INLINE onclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondblclick@ attribute.
 --
@@ -1043,7 +1043,7 @@
 {-# INLINE ondblclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onfocus@ attribute.
 --
@@ -1061,7 +1061,7 @@
 {-# INLINE onfocus #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeydown@ attribute.
 --
@@ -1079,7 +1079,7 @@
 {-# INLINE onkeydown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeypress@ attribute.
 --
@@ -1097,7 +1097,7 @@
 {-# INLINE onkeypress #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeyup@ attribute.
 --
@@ -1115,7 +1115,7 @@
 {-# INLINE onkeyup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onload@ attribute.
 --
@@ -1133,7 +1133,7 @@
 {-# INLINE onload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousedown@ attribute.
 --
@@ -1151,7 +1151,7 @@
 {-# INLINE onmousedown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousemove@ attribute.
 --
@@ -1169,7 +1169,7 @@
 {-# INLINE onmousemove #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseout@ attribute.
 --
@@ -1187,7 +1187,7 @@
 {-# INLINE onmouseout #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseover@ attribute.
 --
@@ -1205,7 +1205,7 @@
 {-# INLINE onmouseover #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseup@ attribute.
 --
@@ -1223,7 +1223,7 @@
 {-# INLINE onmouseup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onreset@ attribute.
 --
@@ -1241,7 +1241,7 @@
 {-# INLINE onreset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onselect@ attribute.
 --
@@ -1259,7 +1259,7 @@
 {-# INLINE onselect #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onsubmit@ attribute.
 --
@@ -1277,7 +1277,7 @@
 {-# INLINE onsubmit #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onunload@ attribute.
 --
@@ -1295,7 +1295,7 @@
 {-# INLINE onunload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @profile@ attribute.
 --
@@ -1313,7 +1313,7 @@
 {-# INLINE profile #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @readonly@ attribute.
 --
@@ -1331,7 +1331,7 @@
 {-# INLINE readonly #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rel@ attribute.
 --
@@ -1349,7 +1349,7 @@
 {-# INLINE rel #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rev@ attribute.
 --
@@ -1367,7 +1367,7 @@
 {-# INLINE rev #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rows@ attribute.
 --
@@ -1385,7 +1385,7 @@
 {-# INLINE rows #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rowspan@ attribute.
 --
@@ -1403,7 +1403,7 @@
 {-# INLINE rowspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rules@ attribute.
 --
@@ -1421,7 +1421,7 @@
 {-# INLINE rules #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scheme@ attribute.
 --
@@ -1439,7 +1439,7 @@
 {-# INLINE scheme #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scope@ attribute.
 --
@@ -1457,7 +1457,7 @@
 {-# INLINE scope #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @selected@ attribute.
 --
@@ -1475,7 +1475,7 @@
 {-# INLINE selected #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @shape@ attribute.
 --
@@ -1493,7 +1493,7 @@
 {-# INLINE shape #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @size@ attribute.
 --
@@ -1511,7 +1511,7 @@
 {-# INLINE size #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @span@ attribute.
 --
@@ -1529,7 +1529,7 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @src@ attribute.
 --
@@ -1547,7 +1547,7 @@
 {-# INLINE src #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @standby@ attribute.
 --
@@ -1565,7 +1565,7 @@
 {-# INLINE standby #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @style@ attribute.
 --
@@ -1583,7 +1583,7 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @summary@ attribute.
 --
@@ -1601,7 +1601,7 @@
 {-# INLINE summary #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @tabindex@ attribute.
 --
@@ -1619,7 +1619,7 @@
 {-# INLINE tabindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @title@ attribute.
 --
@@ -1637,7 +1637,7 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @type@ attribute.
 --
@@ -1655,7 +1655,7 @@
 {-# INLINE type_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @usemap@ attribute.
 --
@@ -1673,7 +1673,7 @@
 {-# INLINE usemap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valign@ attribute.
 --
@@ -1691,7 +1691,7 @@
 {-# INLINE valign #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @value@ attribute.
 --
@@ -1709,7 +1709,7 @@
 {-# INLINE value #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valuetype@ attribute.
 --
@@ -1727,7 +1727,7 @@
 {-# INLINE valuetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @width@ attribute.
 --
diff --git a/src/Text/Blaze/Html4/Transitional.hs b/src/Text/Blaze/Html4/Transitional.hs
--- a/src/Text/Blaze/Html4/Transitional.hs
+++ b/src/Text/Blaze/Html4/Transitional.hs
@@ -1,11 +1,11 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:69
+-- src/Util/GenerateHtmlCombinators.hs:70
 --
 {-# LANGUAGE OverloadedStrings #-}
 -- | This module exports HTML combinators used to create documents.
 --
 module Text.Blaze.Html4.Transitional
-    ( module Text.Blaze
+    ( module Text.Blaze.Html
     , docType
     , docTypeHtml
     , a
@@ -98,15 +98,16 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:77
+-- src/Util/GenerateHtmlCombinators.hs:78
 --
 import Prelude ((>>), (.))
 
 import Text.Blaze
 import Text.Blaze.Internal
+import Text.Blaze.Html
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:155
+-- src/Util/GenerateHtmlCombinators.hs:157
 --
 -- | Combinator for the document type. This should be placed at the top
 -- of every HTML page.
@@ -125,14 +126,14 @@
 {-# INLINE docType #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:176
+-- src/Util/GenerateHtmlCombinators.hs:178
 --
 -- | Combinator for the @\<html>@ element. This combinator will also
 -- insert the correct doctype.
 --
 -- Example:
 --
--- > docTypeHtml $ span $ text "foo"
+-- > docTypeHtml $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -146,13 +147,13 @@
 {-# INLINE docTypeHtml #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<a>@ element.
 --
 -- Example:
 --
--- > a $ span $ text "foo"
+-- > a $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -164,13 +165,13 @@
 {-# INLINE a #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<abbr>@ element.
 --
 -- Example:
 --
--- > abbr $ span $ text "foo"
+-- > abbr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -182,13 +183,13 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<acronym>@ element.
 --
 -- Example:
 --
--- > acronym $ span $ text "foo"
+-- > acronym $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -200,13 +201,13 @@
 {-# INLINE acronym #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<address>@ element.
 --
 -- Example:
 --
--- > address $ span $ text "foo"
+-- > address $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -218,13 +219,13 @@
 {-# INLINE address #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<applet>@ element.
 --
 -- Example:
 --
--- > applet $ span $ text "foo"
+-- > applet $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -236,7 +237,7 @@
 {-# INLINE applet #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<area />@ element.
 --
@@ -249,17 +250,17 @@
 -- > <area />
 --
 area :: Html  -- ^ Resulting HTML.
-area = Leaf "area" "<area" ">"
+area = Leaf "area" "<area" ">" ()
 {-# INLINE area #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<b>@ element.
 --
 -- Example:
 --
--- > b $ span $ text "foo"
+-- > b $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -271,7 +272,7 @@
 {-# INLINE b #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<basefont />@ element.
 --
@@ -284,17 +285,17 @@
 -- > <basefont />
 --
 basefont :: Html  -- ^ Resulting HTML.
-basefont = Leaf "basefont" "<basefont" ">"
+basefont = Leaf "basefont" "<basefont" ">" ()
 {-# INLINE basefont #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<bdo>@ element.
 --
 -- Example:
 --
--- > bdo $ span $ text "foo"
+-- > bdo $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -306,13 +307,13 @@
 {-# INLINE bdo #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<big>@ element.
 --
 -- Example:
 --
--- > big $ span $ text "foo"
+-- > big $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -324,13 +325,13 @@
 {-# INLINE big #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<blockquote>@ element.
 --
 -- Example:
 --
--- > blockquote $ span $ text "foo"
+-- > blockquote $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -342,13 +343,13 @@
 {-# INLINE blockquote #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<body>@ element.
 --
 -- Example:
 --
--- > body $ span $ text "foo"
+-- > body $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -360,7 +361,7 @@
 {-# INLINE body #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<br />@ element.
 --
@@ -373,17 +374,17 @@
 -- > <br />
 --
 br :: Html  -- ^ Resulting HTML.
-br = Leaf "br" "<br" ">"
+br = Leaf "br" "<br" ">" ()
 {-# INLINE br #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<button>@ element.
 --
 -- Example:
 --
--- > button $ span $ text "foo"
+-- > button $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -395,13 +396,13 @@
 {-# INLINE button #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<caption>@ element.
 --
 -- Example:
 --
--- > caption $ span $ text "foo"
+-- > caption $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -413,13 +414,13 @@
 {-# INLINE caption #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<center>@ element.
 --
 -- Example:
 --
--- > center $ span $ text "foo"
+-- > center $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -431,13 +432,13 @@
 {-# INLINE center #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<cite>@ element.
 --
 -- Example:
 --
--- > cite $ span $ text "foo"
+-- > cite $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -449,13 +450,13 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<code>@ element.
 --
 -- Example:
 --
--- > code $ span $ text "foo"
+-- > code $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -467,7 +468,7 @@
 {-# INLINE code #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<col />@ element.
 --
@@ -480,17 +481,17 @@
 -- > <col />
 --
 col :: Html  -- ^ Resulting HTML.
-col = Leaf "col" "<col" ">"
+col = Leaf "col" "<col" ">" ()
 {-# INLINE col #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<colgroup>@ element.
 --
 -- Example:
 --
--- > colgroup $ span $ text "foo"
+-- > colgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -502,13 +503,13 @@
 {-# INLINE colgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dd>@ element.
 --
 -- Example:
 --
--- > dd $ span $ text "foo"
+-- > dd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -520,13 +521,13 @@
 {-# INLINE dd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<del>@ element.
 --
 -- Example:
 --
--- > del $ span $ text "foo"
+-- > del $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -538,13 +539,13 @@
 {-# INLINE del #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dfn>@ element.
 --
 -- Example:
 --
--- > dfn $ span $ text "foo"
+-- > dfn $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -556,13 +557,13 @@
 {-# INLINE dfn #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dir>@ element.
 --
 -- Example:
 --
--- > dir $ span $ text "foo"
+-- > dir $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -574,13 +575,13 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<div>@ element.
 --
 -- Example:
 --
--- > div $ span $ text "foo"
+-- > div $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -592,13 +593,13 @@
 {-# INLINE div #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dl>@ element.
 --
 -- Example:
 --
--- > dl $ span $ text "foo"
+-- > dl $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -610,13 +611,13 @@
 {-# INLINE dl #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dt>@ element.
 --
 -- Example:
 --
--- > dt $ span $ text "foo"
+-- > dt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -628,13 +629,13 @@
 {-# INLINE dt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<em>@ element.
 --
 -- Example:
 --
--- > em $ span $ text "foo"
+-- > em $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -646,13 +647,13 @@
 {-# INLINE em #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<fieldset>@ element.
 --
 -- Example:
 --
--- > fieldset $ span $ text "foo"
+-- > fieldset $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -664,13 +665,13 @@
 {-# INLINE fieldset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<font>@ element.
 --
 -- Example:
 --
--- > font $ span $ text "foo"
+-- > font $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -682,13 +683,13 @@
 {-# INLINE font #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<form>@ element.
 --
 -- Example:
 --
--- > form $ span $ text "foo"
+-- > form $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -700,13 +701,13 @@
 {-# INLINE form #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h1>@ element.
 --
 -- Example:
 --
--- > h1 $ span $ text "foo"
+-- > h1 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -718,13 +719,13 @@
 {-# INLINE h1 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h2>@ element.
 --
 -- Example:
 --
--- > h2 $ span $ text "foo"
+-- > h2 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -736,13 +737,13 @@
 {-# INLINE h2 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h3>@ element.
 --
 -- Example:
 --
--- > h3 $ span $ text "foo"
+-- > h3 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -754,13 +755,13 @@
 {-# INLINE h3 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h4>@ element.
 --
 -- Example:
 --
--- > h4 $ span $ text "foo"
+-- > h4 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -772,13 +773,13 @@
 {-# INLINE h4 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h5>@ element.
 --
 -- Example:
 --
--- > h5 $ span $ text "foo"
+-- > h5 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -790,13 +791,13 @@
 {-# INLINE h5 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h6>@ element.
 --
 -- Example:
 --
--- > h6 $ span $ text "foo"
+-- > h6 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -808,13 +809,13 @@
 {-# INLINE h6 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<head>@ element.
 --
 -- Example:
 --
--- > head $ span $ text "foo"
+-- > head $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -826,7 +827,7 @@
 {-# INLINE head #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<hr />@ element.
 --
@@ -839,17 +840,17 @@
 -- > <hr />
 --
 hr :: Html  -- ^ Resulting HTML.
-hr = Leaf "hr" "<hr" ">"
+hr = Leaf "hr" "<hr" ">" ()
 {-# INLINE hr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<html>@ element.
 --
 -- Example:
 --
--- > html $ span $ text "foo"
+-- > html $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -861,13 +862,13 @@
 {-# INLINE html #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<i>@ element.
 --
 -- Example:
 --
--- > i $ span $ text "foo"
+-- > i $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -879,13 +880,13 @@
 {-# INLINE i #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<iframe>@ element.
 --
 -- Example:
 --
--- > iframe $ span $ text "foo"
+-- > iframe $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -897,7 +898,7 @@
 {-# INLINE iframe #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<img />@ element.
 --
@@ -910,11 +911,11 @@
 -- > <img />
 --
 img :: Html  -- ^ Resulting HTML.
-img = Leaf "img" "<img" ">"
+img = Leaf "img" "<img" ">" ()
 {-# INLINE img #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<input />@ element.
 --
@@ -927,17 +928,17 @@
 -- > <input />
 --
 input :: Html  -- ^ Resulting HTML.
-input = Leaf "input" "<input" ">"
+input = Leaf "input" "<input" ">" ()
 {-# INLINE input #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ins>@ element.
 --
 -- Example:
 --
--- > ins $ span $ text "foo"
+-- > ins $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -949,13 +950,13 @@
 {-# INLINE ins #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<isindex>@ element.
 --
 -- Example:
 --
--- > isindex $ span $ text "foo"
+-- > isindex $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -967,13 +968,13 @@
 {-# INLINE isindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<kbd>@ element.
 --
 -- Example:
 --
--- > kbd $ span $ text "foo"
+-- > kbd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -985,13 +986,13 @@
 {-# INLINE kbd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<label>@ element.
 --
 -- Example:
 --
--- > label $ span $ text "foo"
+-- > label $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1003,13 +1004,13 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<legend>@ element.
 --
 -- Example:
 --
--- > legend $ span $ text "foo"
+-- > legend $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1021,13 +1022,13 @@
 {-# INLINE legend #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<li>@ element.
 --
 -- Example:
 --
--- > li $ span $ text "foo"
+-- > li $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1039,7 +1040,7 @@
 {-# INLINE li #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<link />@ element.
 --
@@ -1052,17 +1053,17 @@
 -- > <link />
 --
 link :: Html  -- ^ Resulting HTML.
-link = Leaf "link" "<link" ">"
+link = Leaf "link" "<link" ">" ()
 {-# INLINE link #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<map>@ element.
 --
 -- Example:
 --
--- > map $ span $ text "foo"
+-- > map $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1074,13 +1075,13 @@
 {-# INLINE map #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<menu>@ element.
 --
 -- Example:
 --
--- > menu $ span $ text "foo"
+-- > menu $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1092,7 +1093,7 @@
 {-# INLINE menu #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<meta />@ element.
 --
@@ -1105,17 +1106,17 @@
 -- > <meta />
 --
 meta :: Html  -- ^ Resulting HTML.
-meta = Leaf "meta" "<meta" ">"
+meta = Leaf "meta" "<meta" ">" ()
 {-# INLINE meta #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noframes>@ element.
 --
 -- Example:
 --
--- > noframes $ span $ text "foo"
+-- > noframes $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1127,13 +1128,13 @@
 {-# INLINE noframes #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noscript>@ element.
 --
 -- Example:
 --
--- > noscript $ span $ text "foo"
+-- > noscript $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1145,13 +1146,13 @@
 {-# INLINE noscript #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<object>@ element.
 --
 -- Example:
 --
--- > object $ span $ text "foo"
+-- > object $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1163,13 +1164,13 @@
 {-# INLINE object #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ol>@ element.
 --
 -- Example:
 --
--- > ol $ span $ text "foo"
+-- > ol $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1181,13 +1182,13 @@
 {-# INLINE ol #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<optgroup>@ element.
 --
 -- Example:
 --
--- > optgroup $ span $ text "foo"
+-- > optgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1199,13 +1200,13 @@
 {-# INLINE optgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<option>@ element.
 --
 -- Example:
 --
--- > option $ span $ text "foo"
+-- > option $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1217,13 +1218,13 @@
 {-# INLINE option #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<p>@ element.
 --
 -- Example:
 --
--- > p $ span $ text "foo"
+-- > p $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1235,7 +1236,7 @@
 {-# INLINE p #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<param />@ element.
 --
@@ -1248,17 +1249,17 @@
 -- > <param />
 --
 param :: Html  -- ^ Resulting HTML.
-param = Leaf "param" "<param" ">"
+param = Leaf "param" "<param" ">" ()
 {-# INLINE param #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<pre>@ element.
 --
 -- Example:
 --
--- > pre $ span $ text "foo"
+-- > pre $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1270,13 +1271,13 @@
 {-# INLINE pre #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<q>@ element.
 --
 -- Example:
 --
--- > q $ span $ text "foo"
+-- > q $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1288,13 +1289,13 @@
 {-# INLINE q #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<s>@ element.
 --
 -- Example:
 --
--- > s $ span $ text "foo"
+-- > s $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1306,13 +1307,13 @@
 {-# INLINE s #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<samp>@ element.
 --
 -- Example:
 --
--- > samp $ span $ text "foo"
+-- > samp $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1324,13 +1325,13 @@
 {-# INLINE samp #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<script>@ element.
 --
 -- Example:
 --
--- > script $ span $ text "foo"
+-- > script $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1342,13 +1343,13 @@
 {-# INLINE script #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<select>@ element.
 --
 -- Example:
 --
--- > select $ span $ text "foo"
+-- > select $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1360,13 +1361,13 @@
 {-# INLINE select #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<small>@ element.
 --
 -- Example:
 --
--- > small $ span $ text "foo"
+-- > small $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1378,13 +1379,13 @@
 {-# INLINE small #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<span>@ element.
 --
 -- Example:
 --
--- > span $ span $ text "foo"
+-- > span $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1396,13 +1397,13 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<strong>@ element.
 --
 -- Example:
 --
--- > strong $ span $ text "foo"
+-- > strong $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1414,13 +1415,13 @@
 {-# INLINE strong #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<style>@ element.
 --
 -- Example:
 --
--- > style $ span $ text "foo"
+-- > style $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1432,13 +1433,13 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sub>@ element.
 --
 -- Example:
 --
--- > sub $ span $ text "foo"
+-- > sub $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1450,13 +1451,13 @@
 {-# INLINE sub #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sup>@ element.
 --
 -- Example:
 --
--- > sup $ span $ text "foo"
+-- > sup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1468,13 +1469,13 @@
 {-# INLINE sup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<table>@ element.
 --
 -- Example:
 --
--- > table $ span $ text "foo"
+-- > table $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1486,13 +1487,13 @@
 {-# INLINE table #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tbody>@ element.
 --
 -- Example:
 --
--- > tbody $ span $ text "foo"
+-- > tbody $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1504,13 +1505,13 @@
 {-# INLINE tbody #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<td>@ element.
 --
 -- Example:
 --
--- > td $ span $ text "foo"
+-- > td $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1522,13 +1523,13 @@
 {-# INLINE td #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<textarea>@ element.
 --
 -- Example:
 --
--- > textarea $ span $ text "foo"
+-- > textarea $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1540,13 +1541,13 @@
 {-# INLINE textarea #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tfoot>@ element.
 --
 -- Example:
 --
--- > tfoot $ span $ text "foo"
+-- > tfoot $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1558,13 +1559,13 @@
 {-# INLINE tfoot #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<th>@ element.
 --
 -- Example:
 --
--- > th $ span $ text "foo"
+-- > th $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1576,13 +1577,13 @@
 {-# INLINE th #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<thead>@ element.
 --
 -- Example:
 --
--- > thead $ span $ text "foo"
+-- > thead $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1594,13 +1595,13 @@
 {-# INLINE thead #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<title>@ element.
 --
 -- Example:
 --
--- > title $ span $ text "foo"
+-- > title $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1612,13 +1613,13 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tr>@ element.
 --
 -- Example:
 --
--- > tr $ span $ text "foo"
+-- > tr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1630,13 +1631,13 @@
 {-# INLINE tr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tt>@ element.
 --
 -- Example:
 --
--- > tt $ span $ text "foo"
+-- > tt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1648,13 +1649,13 @@
 {-# INLINE tt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<u>@ element.
 --
 -- Example:
 --
--- > u $ span $ text "foo"
+-- > u $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1666,13 +1667,13 @@
 {-# INLINE u #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ul>@ element.
 --
 -- Example:
 --
--- > ul $ span $ text "foo"
+-- > ul $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1684,13 +1685,13 @@
 {-# INLINE ul #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<var>@ element.
 --
 -- Example:
 --
--- > var $ span $ text "foo"
+-- > var $ span $ toHtml "foo"
 --
 -- Result:
 --
diff --git a/src/Text/Blaze/Html4/Transitional/Attributes.hs b/src/Text/Blaze/Html4/Transitional/Attributes.hs
--- a/src/Text/Blaze/Html4/Transitional/Attributes.hs
+++ b/src/Text/Blaze/Html4/Transitional/Attributes.hs
@@ -1,5 +1,5 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:92
+-- src/Util/GenerateHtmlCombinators.hs:94
 --
 -- | This module exports combinators that provide you with the
 -- ability to set attributes on HTML elements.
@@ -111,14 +111,14 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:98
+-- src/Util/GenerateHtmlCombinators.hs:100
 --
 import Prelude ()
 
 import Text.Blaze.Internal (Attribute, AttributeValue, attribute)
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @abbr@ attribute.
 --
@@ -136,7 +136,7 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accept@ attribute.
 --
@@ -154,7 +154,7 @@
 {-# INLINE accept #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accesskey@ attribute.
 --
@@ -172,7 +172,7 @@
 {-# INLINE accesskey #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @action@ attribute.
 --
@@ -190,7 +190,7 @@
 {-# INLINE action #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @align@ attribute.
 --
@@ -208,7 +208,7 @@
 {-# INLINE align #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @alt@ attribute.
 --
@@ -226,7 +226,7 @@
 {-# INLINE alt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @archive@ attribute.
 --
@@ -244,7 +244,7 @@
 {-# INLINE archive #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @axis@ attribute.
 --
@@ -262,7 +262,7 @@
 {-# INLINE axis #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @background@ attribute.
 --
@@ -280,7 +280,7 @@
 {-# INLINE background #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @bgcolor@ attribute.
 --
@@ -298,7 +298,7 @@
 {-# INLINE bgcolor #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @border@ attribute.
 --
@@ -316,7 +316,7 @@
 {-# INLINE border #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellpadding@ attribute.
 --
@@ -334,7 +334,7 @@
 {-# INLINE cellpadding #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellspacing@ attribute.
 --
@@ -352,7 +352,7 @@
 {-# INLINE cellspacing #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @char@ attribute.
 --
@@ -370,7 +370,7 @@
 {-# INLINE char #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charoff@ attribute.
 --
@@ -388,7 +388,7 @@
 {-# INLINE charoff #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charset@ attribute.
 --
@@ -406,7 +406,7 @@
 {-# INLINE charset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @checked@ attribute.
 --
@@ -424,7 +424,7 @@
 {-# INLINE checked #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cite@ attribute.
 --
@@ -442,7 +442,7 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @class@ attribute.
 --
@@ -460,7 +460,7 @@
 {-# INLINE class_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @classid@ attribute.
 --
@@ -478,7 +478,7 @@
 {-# INLINE classid #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @clear@ attribute.
 --
@@ -496,7 +496,7 @@
 {-# INLINE clear #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codebase@ attribute.
 --
@@ -514,7 +514,7 @@
 {-# INLINE codebase #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codetype@ attribute.
 --
@@ -532,7 +532,7 @@
 {-# INLINE codetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cols@ attribute.
 --
@@ -550,7 +550,7 @@
 {-# INLINE cols #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @colspan@ attribute.
 --
@@ -568,7 +568,7 @@
 {-# INLINE colspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @compact@ attribute.
 --
@@ -586,7 +586,7 @@
 {-# INLINE compact #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @content@ attribute.
 --
@@ -604,7 +604,7 @@
 {-# INLINE content #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @coords@ attribute.
 --
@@ -622,7 +622,7 @@
 {-# INLINE coords #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @data@ attribute.
 --
@@ -640,7 +640,7 @@
 {-# INLINE data_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @datetime@ attribute.
 --
@@ -658,7 +658,7 @@
 {-# INLINE datetime #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @declare@ attribute.
 --
@@ -676,7 +676,7 @@
 {-# INLINE declare #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @defer@ attribute.
 --
@@ -694,7 +694,7 @@
 {-# INLINE defer #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @dir@ attribute.
 --
@@ -712,7 +712,7 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @disabled@ attribute.
 --
@@ -730,7 +730,7 @@
 {-# INLINE disabled #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @enctype@ attribute.
 --
@@ -748,7 +748,7 @@
 {-# INLINE enctype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @for@ attribute.
 --
@@ -766,7 +766,7 @@
 {-# INLINE for #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @frame@ attribute.
 --
@@ -784,7 +784,7 @@
 {-# INLINE frame #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @headers@ attribute.
 --
@@ -802,7 +802,7 @@
 {-# INLINE headers #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @height@ attribute.
 --
@@ -820,7 +820,7 @@
 {-# INLINE height #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @href@ attribute.
 --
@@ -838,7 +838,7 @@
 {-# INLINE href #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hreflang@ attribute.
 --
@@ -856,7 +856,7 @@
 {-# INLINE hreflang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hspace@ attribute.
 --
@@ -874,7 +874,7 @@
 {-# INLINE hspace #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @http-equiv@ attribute.
 --
@@ -892,7 +892,7 @@
 {-# INLINE httpEquiv #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @id@ attribute.
 --
@@ -910,7 +910,7 @@
 {-# INLINE id #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @label@ attribute.
 --
@@ -928,7 +928,7 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @lang@ attribute.
 --
@@ -946,7 +946,7 @@
 {-# INLINE lang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @language@ attribute.
 --
@@ -964,7 +964,7 @@
 {-# INLINE language #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @maxlength@ attribute.
 --
@@ -982,7 +982,7 @@
 {-# INLINE maxlength #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @media@ attribute.
 --
@@ -1000,7 +1000,7 @@
 {-# INLINE media #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @method@ attribute.
 --
@@ -1018,7 +1018,7 @@
 {-# INLINE method #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @multiple@ attribute.
 --
@@ -1036,7 +1036,7 @@
 {-# INLINE multiple #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @name@ attribute.
 --
@@ -1054,7 +1054,7 @@
 {-# INLINE name #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @nohref@ attribute.
 --
@@ -1072,7 +1072,7 @@
 {-# INLINE nohref #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @noshade@ attribute.
 --
@@ -1090,7 +1090,7 @@
 {-# INLINE noshade #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @nowrap@ attribute.
 --
@@ -1108,7 +1108,7 @@
 {-# INLINE nowrap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onabort@ attribute.
 --
@@ -1126,7 +1126,7 @@
 {-# INLINE onabort #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onblur@ attribute.
 --
@@ -1144,7 +1144,7 @@
 {-# INLINE onblur #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onchange@ attribute.
 --
@@ -1162,7 +1162,7 @@
 {-# INLINE onchange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onclick@ attribute.
 --
@@ -1180,7 +1180,7 @@
 {-# INLINE onclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondblclick@ attribute.
 --
@@ -1198,7 +1198,7 @@
 {-# INLINE ondblclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onfocus@ attribute.
 --
@@ -1216,7 +1216,7 @@
 {-# INLINE onfocus #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeydown@ attribute.
 --
@@ -1234,7 +1234,7 @@
 {-# INLINE onkeydown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeypress@ attribute.
 --
@@ -1252,7 +1252,7 @@
 {-# INLINE onkeypress #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeyup@ attribute.
 --
@@ -1270,7 +1270,7 @@
 {-# INLINE onkeyup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onload@ attribute.
 --
@@ -1288,7 +1288,7 @@
 {-# INLINE onload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousedown@ attribute.
 --
@@ -1306,7 +1306,7 @@
 {-# INLINE onmousedown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousemove@ attribute.
 --
@@ -1324,7 +1324,7 @@
 {-# INLINE onmousemove #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseout@ attribute.
 --
@@ -1342,7 +1342,7 @@
 {-# INLINE onmouseout #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseover@ attribute.
 --
@@ -1360,7 +1360,7 @@
 {-# INLINE onmouseover #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseup@ attribute.
 --
@@ -1378,7 +1378,7 @@
 {-# INLINE onmouseup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onreset@ attribute.
 --
@@ -1396,7 +1396,7 @@
 {-# INLINE onreset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onselect@ attribute.
 --
@@ -1414,7 +1414,7 @@
 {-# INLINE onselect #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onsubmit@ attribute.
 --
@@ -1432,7 +1432,7 @@
 {-# INLINE onsubmit #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onunload@ attribute.
 --
@@ -1450,7 +1450,7 @@
 {-# INLINE onunload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @profile@ attribute.
 --
@@ -1468,7 +1468,7 @@
 {-# INLINE profile #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @readonly@ attribute.
 --
@@ -1486,7 +1486,7 @@
 {-# INLINE readonly #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rel@ attribute.
 --
@@ -1504,7 +1504,7 @@
 {-# INLINE rel #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rev@ attribute.
 --
@@ -1522,7 +1522,7 @@
 {-# INLINE rev #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rows@ attribute.
 --
@@ -1540,7 +1540,7 @@
 {-# INLINE rows #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rowspan@ attribute.
 --
@@ -1558,7 +1558,7 @@
 {-# INLINE rowspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rules@ attribute.
 --
@@ -1576,7 +1576,7 @@
 {-# INLINE rules #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scheme@ attribute.
 --
@@ -1594,7 +1594,7 @@
 {-# INLINE scheme #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scope@ attribute.
 --
@@ -1612,7 +1612,7 @@
 {-# INLINE scope #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @selected@ attribute.
 --
@@ -1630,7 +1630,7 @@
 {-# INLINE selected #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @shape@ attribute.
 --
@@ -1648,7 +1648,7 @@
 {-# INLINE shape #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @size@ attribute.
 --
@@ -1666,7 +1666,7 @@
 {-# INLINE size #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @span@ attribute.
 --
@@ -1684,7 +1684,7 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @src@ attribute.
 --
@@ -1702,7 +1702,7 @@
 {-# INLINE src #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @standby@ attribute.
 --
@@ -1720,7 +1720,7 @@
 {-# INLINE standby #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @start@ attribute.
 --
@@ -1738,7 +1738,7 @@
 {-# INLINE start #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @style@ attribute.
 --
@@ -1756,7 +1756,7 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @summary@ attribute.
 --
@@ -1774,7 +1774,7 @@
 {-# INLINE summary #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @tabindex@ attribute.
 --
@@ -1792,7 +1792,7 @@
 {-# INLINE tabindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @target@ attribute.
 --
@@ -1810,7 +1810,7 @@
 {-# INLINE target #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @title@ attribute.
 --
@@ -1828,7 +1828,7 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @type@ attribute.
 --
@@ -1846,7 +1846,7 @@
 {-# INLINE type_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @usemap@ attribute.
 --
@@ -1864,7 +1864,7 @@
 {-# INLINE usemap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valign@ attribute.
 --
@@ -1882,7 +1882,7 @@
 {-# INLINE valign #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @value@ attribute.
 --
@@ -1900,7 +1900,7 @@
 {-# INLINE value #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valuetype@ attribute.
 --
@@ -1918,7 +1918,7 @@
 {-# INLINE valuetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @vspace@ attribute.
 --
@@ -1936,7 +1936,7 @@
 {-# INLINE vspace #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @width@ attribute.
 --
diff --git a/src/Text/Blaze/Html5.hs b/src/Text/Blaze/Html5.hs
--- a/src/Text/Blaze/Html5.hs
+++ b/src/Text/Blaze/Html5.hs
@@ -1,11 +1,11 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:69
+-- src/Util/GenerateHtmlCombinators.hs:70
 --
 {-# LANGUAGE OverloadedStrings #-}
 -- | This module exports HTML combinators used to create documents.
 --
 module Text.Blaze.Html5
-    ( module Text.Blaze
+    ( module Text.Blaze.Html
     , docType
     , docTypeHtml
     , a
@@ -17,6 +17,7 @@
     , audio
     , b
     , base
+    , bdi
     , bdo
     , blockquote
     , body
@@ -29,11 +30,13 @@
     , col
     , colgroup
     , command
+    , data_
     , datalist
     , dd
     , del
     , details
     , dfn
+    , dialog
     , div
     , dl
     , dt
@@ -66,9 +69,11 @@
     , legend
     , li
     , link
+    , main
     , map
     , mark
     , menu
+    , menuitem
     , meta
     , meter
     , nav
@@ -80,16 +85,20 @@
     , output
     , p
     , param
+    , picture
     , pre
     , progress
     , q
     , rp
     , rt
     , ruby
+    , s
     , samp
     , script
+    , search
     , section
     , select
+    , slot
     , small
     , source
     , span
@@ -101,6 +110,7 @@
     , table
     , tbody
     , td
+    , template
     , textarea
     , tfoot
     , th
@@ -108,21 +118,25 @@
     , time
     , title
     , tr
+    , track
+    , u
     , ul
     , var
     , video
+    , wbr
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:77
+-- src/Util/GenerateHtmlCombinators.hs:78
 --
 import Prelude ((>>), (.))
 
 import Text.Blaze
 import Text.Blaze.Internal
+import Text.Blaze.Html
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:155
+-- src/Util/GenerateHtmlCombinators.hs:157
 --
 -- | Combinator for the document type. This should be placed at the top
 -- of every HTML page.
@@ -140,14 +154,14 @@
 {-# INLINE docType #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:176
+-- src/Util/GenerateHtmlCombinators.hs:178
 --
 -- | Combinator for the @\<html>@ element. This combinator will also
 -- insert the correct doctype.
 --
 -- Example:
 --
--- > docTypeHtml $ span $ text "foo"
+-- > docTypeHtml $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -160,13 +174,13 @@
 {-# INLINE docTypeHtml #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<a>@ element.
 --
 -- Example:
 --
--- > a $ span $ text "foo"
+-- > a $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -178,13 +192,13 @@
 {-# INLINE a #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<abbr>@ element.
 --
 -- Example:
 --
--- > abbr $ span $ text "foo"
+-- > abbr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -196,13 +210,13 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<address>@ element.
 --
 -- Example:
 --
--- > address $ span $ text "foo"
+-- > address $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -214,7 +228,7 @@
 {-# INLINE address #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<area />@ element.
 --
@@ -227,17 +241,17 @@
 -- > <area />
 --
 area :: Html  -- ^ Resulting HTML.
-area = Leaf "area" "<area" ">"
+area = Leaf "area" "<area" ">" ()
 {-# INLINE area #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<article>@ element.
 --
 -- Example:
 --
--- > article $ span $ text "foo"
+-- > article $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -249,13 +263,13 @@
 {-# INLINE article #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<aside>@ element.
 --
 -- Example:
 --
--- > aside $ span $ text "foo"
+-- > aside $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -267,13 +281,13 @@
 {-# INLINE aside #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<audio>@ element.
 --
 -- Example:
 --
--- > audio $ span $ text "foo"
+-- > audio $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -285,13 +299,13 @@
 {-# INLINE audio #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<b>@ element.
 --
 -- Example:
 --
--- > b $ span $ text "foo"
+-- > b $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -303,31 +317,48 @@
 {-# INLINE b #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
--- | Combinator for the @\<base>@ element.
+-- | Combinator for the @\<base />@ element.
 --
 -- Example:
 --
--- > base $ span $ text "foo"
+-- > base
 --
 -- Result:
 --
--- > <base><span>foo</span></base>
+-- > <base />
 --
-base :: Html  -- ^ Inner HTML.
-     -> Html  -- ^ Resulting HTML.
-base = Parent "base" "<base" "</base>"
+base :: Html  -- ^ Resulting HTML.
+base = Leaf "base" "<base" ">" ()
 {-# INLINE base #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
+-- | Combinator for the @\<bdi>@ element.
+--
+-- Example:
+--
+-- > bdi $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <bdi><span>foo</span></bdi>
+--
+bdi :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+bdi = Parent "bdi" "<bdi" "</bdi>"
+{-# INLINE bdi #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
 -- | Combinator for the @\<bdo>@ element.
 --
 -- Example:
 --
--- > bdo $ span $ text "foo"
+-- > bdo $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -339,13 +370,13 @@
 {-# INLINE bdo #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<blockquote>@ element.
 --
 -- Example:
 --
--- > blockquote $ span $ text "foo"
+-- > blockquote $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -357,13 +388,13 @@
 {-# INLINE blockquote #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<body>@ element.
 --
 -- Example:
 --
--- > body $ span $ text "foo"
+-- > body $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -375,7 +406,7 @@
 {-# INLINE body #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<br />@ element.
 --
@@ -388,17 +419,17 @@
 -- > <br />
 --
 br :: Html  -- ^ Resulting HTML.
-br = Leaf "br" "<br" ">"
+br = Leaf "br" "<br" ">" ()
 {-# INLINE br #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<button>@ element.
 --
 -- Example:
 --
--- > button $ span $ text "foo"
+-- > button $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -410,13 +441,13 @@
 {-# INLINE button #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<canvas>@ element.
 --
 -- Example:
 --
--- > canvas $ span $ text "foo"
+-- > canvas $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -428,13 +459,13 @@
 {-# INLINE canvas #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<caption>@ element.
 --
 -- Example:
 --
--- > caption $ span $ text "foo"
+-- > caption $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -446,13 +477,13 @@
 {-# INLINE caption #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<cite>@ element.
 --
 -- Example:
 --
--- > cite $ span $ text "foo"
+-- > cite $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -464,13 +495,13 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<code>@ element.
 --
 -- Example:
 --
--- > code $ span $ text "foo"
+-- > code $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -482,7 +513,7 @@
 {-# INLINE code #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<col />@ element.
 --
@@ -495,17 +526,17 @@
 -- > <col />
 --
 col :: Html  -- ^ Resulting HTML.
-col = Leaf "col" "<col" ">"
+col = Leaf "col" "<col" ">" ()
 {-# INLINE col #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<colgroup>@ element.
 --
 -- Example:
 --
--- > colgroup $ span $ text "foo"
+-- > colgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -517,13 +548,13 @@
 {-# INLINE colgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<command>@ element.
 --
 -- Example:
 --
--- > command $ span $ text "foo"
+-- > command $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -535,13 +566,31 @@
 {-# INLINE command #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
+-- | Combinator for the @\<data>@ element.
+--
+-- Example:
+--
+-- > data_ $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <data><span>foo</span></data>
+--
+data_ :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+data_ = Parent "data" "<data" "</data>"
+{-# INLINE data_ #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
 -- | Combinator for the @\<datalist>@ element.
 --
 -- Example:
 --
--- > datalist $ span $ text "foo"
+-- > datalist $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -553,13 +602,13 @@
 {-# INLINE datalist #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dd>@ element.
 --
 -- Example:
 --
--- > dd $ span $ text "foo"
+-- > dd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -571,13 +620,13 @@
 {-# INLINE dd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<del>@ element.
 --
 -- Example:
 --
--- > del $ span $ text "foo"
+-- > del $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -589,13 +638,13 @@
 {-# INLINE del #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<details>@ element.
 --
 -- Example:
 --
--- > details $ span $ text "foo"
+-- > details $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -607,13 +656,13 @@
 {-# INLINE details #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dfn>@ element.
 --
 -- Example:
 --
--- > dfn $ span $ text "foo"
+-- > dfn $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -625,13 +674,31 @@
 {-# INLINE dfn #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
+-- | Combinator for the @\<dialog>@ element.
+--
+-- Example:
+--
+-- > dialog $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <dialog><span>foo</span></dialog>
+--
+dialog :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+dialog = Parent "dialog" "<dialog" "</dialog>"
+{-# INLINE dialog #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
 -- | Combinator for the @\<div>@ element.
 --
 -- Example:
 --
--- > div $ span $ text "foo"
+-- > div $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -643,13 +710,13 @@
 {-# INLINE div #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dl>@ element.
 --
 -- Example:
 --
--- > dl $ span $ text "foo"
+-- > dl $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -661,13 +728,13 @@
 {-# INLINE dl #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dt>@ element.
 --
 -- Example:
 --
--- > dt $ span $ text "foo"
+-- > dt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -679,13 +746,13 @@
 {-# INLINE dt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<em>@ element.
 --
 -- Example:
 --
--- > em $ span $ text "foo"
+-- > em $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -697,7 +764,7 @@
 {-# INLINE em #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<embed />@ element.
 --
@@ -710,17 +777,17 @@
 -- > <embed />
 --
 embed :: Html  -- ^ Resulting HTML.
-embed = Leaf "embed" "<embed" ">"
+embed = Leaf "embed" "<embed" ">" ()
 {-# INLINE embed #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<fieldset>@ element.
 --
 -- Example:
 --
--- > fieldset $ span $ text "foo"
+-- > fieldset $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -732,13 +799,13 @@
 {-# INLINE fieldset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<figcaption>@ element.
 --
 -- Example:
 --
--- > figcaption $ span $ text "foo"
+-- > figcaption $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -750,13 +817,13 @@
 {-# INLINE figcaption #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<figure>@ element.
 --
 -- Example:
 --
--- > figure $ span $ text "foo"
+-- > figure $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -768,13 +835,13 @@
 {-# INLINE figure #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<footer>@ element.
 --
 -- Example:
 --
--- > footer $ span $ text "foo"
+-- > footer $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -786,13 +853,13 @@
 {-# INLINE footer #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<form>@ element.
 --
 -- Example:
 --
--- > form $ span $ text "foo"
+-- > form $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -804,13 +871,13 @@
 {-# INLINE form #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h1>@ element.
 --
 -- Example:
 --
--- > h1 $ span $ text "foo"
+-- > h1 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -822,13 +889,13 @@
 {-# INLINE h1 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h2>@ element.
 --
 -- Example:
 --
--- > h2 $ span $ text "foo"
+-- > h2 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -840,13 +907,13 @@
 {-# INLINE h2 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h3>@ element.
 --
 -- Example:
 --
--- > h3 $ span $ text "foo"
+-- > h3 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -858,13 +925,13 @@
 {-# INLINE h3 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h4>@ element.
 --
 -- Example:
 --
--- > h4 $ span $ text "foo"
+-- > h4 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -876,13 +943,13 @@
 {-# INLINE h4 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h5>@ element.
 --
 -- Example:
 --
--- > h5 $ span $ text "foo"
+-- > h5 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -894,13 +961,13 @@
 {-# INLINE h5 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h6>@ element.
 --
 -- Example:
 --
--- > h6 $ span $ text "foo"
+-- > h6 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -912,13 +979,13 @@
 {-# INLINE h6 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<head>@ element.
 --
 -- Example:
 --
--- > head $ span $ text "foo"
+-- > head $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -930,13 +997,13 @@
 {-# INLINE head #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<header>@ element.
 --
 -- Example:
 --
--- > header $ span $ text "foo"
+-- > header $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -948,13 +1015,13 @@
 {-# INLINE header #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<hgroup>@ element.
 --
 -- Example:
 --
--- > hgroup $ span $ text "foo"
+-- > hgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -966,7 +1033,7 @@
 {-# INLINE hgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<hr />@ element.
 --
@@ -979,17 +1046,17 @@
 -- > <hr />
 --
 hr :: Html  -- ^ Resulting HTML.
-hr = Leaf "hr" "<hr" ">"
+hr = Leaf "hr" "<hr" ">" ()
 {-# INLINE hr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<html>@ element.
 --
 -- Example:
 --
--- > html $ span $ text "foo"
+-- > html $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1001,13 +1068,13 @@
 {-# INLINE html #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<i>@ element.
 --
 -- Example:
 --
--- > i $ span $ text "foo"
+-- > i $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1019,13 +1086,13 @@
 {-# INLINE i #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<iframe>@ element.
 --
 -- Example:
 --
--- > iframe $ span $ text "foo"
+-- > iframe $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1037,7 +1104,7 @@
 {-# INLINE iframe #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<img />@ element.
 --
@@ -1050,11 +1117,11 @@
 -- > <img />
 --
 img :: Html  -- ^ Resulting HTML.
-img = Leaf "img" "<img" ">"
+img = Leaf "img" "<img" ">" ()
 {-# INLINE img #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<input />@ element.
 --
@@ -1067,17 +1134,17 @@
 -- > <input />
 --
 input :: Html  -- ^ Resulting HTML.
-input = Leaf "input" "<input" ">"
+input = Leaf "input" "<input" ">" ()
 {-# INLINE input #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ins>@ element.
 --
 -- Example:
 --
--- > ins $ span $ text "foo"
+-- > ins $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1089,13 +1156,13 @@
 {-# INLINE ins #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<kbd>@ element.
 --
 -- Example:
 --
--- > kbd $ span $ text "foo"
+-- > kbd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1107,31 +1174,30 @@
 {-# INLINE kbd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
--- | Combinator for the @\<keygen>@ element.
+-- | Combinator for the @\<keygen />@ element.
 --
 -- Example:
 --
--- > keygen $ span $ text "foo"
+-- > keygen
 --
 -- Result:
 --
--- > <keygen><span>foo</span></keygen>
+-- > <keygen />
 --
-keygen :: Html  -- ^ Inner HTML.
-       -> Html  -- ^ Resulting HTML.
-keygen = Parent "keygen" "<keygen" "</keygen>"
+keygen :: Html  -- ^ Resulting HTML.
+keygen = Leaf "keygen" "<keygen" ">" ()
 {-# INLINE keygen #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<label>@ element.
 --
 -- Example:
 --
--- > label $ span $ text "foo"
+-- > label $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1143,13 +1209,13 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<legend>@ element.
 --
 -- Example:
 --
--- > legend $ span $ text "foo"
+-- > legend $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1161,13 +1227,13 @@
 {-# INLINE legend #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<li>@ element.
 --
 -- Example:
 --
--- > li $ span $ text "foo"
+-- > li $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1179,7 +1245,7 @@
 {-# INLINE li #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<link />@ element.
 --
@@ -1192,17 +1258,35 @@
 -- > <link />
 --
 link :: Html  -- ^ Resulting HTML.
-link = Leaf "link" "<link" ">"
+link = Leaf "link" "<link" ">" ()
 {-# INLINE link #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
+-- | Combinator for the @\<main>@ element.
+--
+-- Example:
+--
+-- > main $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <main><span>foo</span></main>
+--
+main :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+main = Parent "main" "<main" "</main>"
+{-# INLINE main #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
 -- | Combinator for the @\<map>@ element.
 --
 -- Example:
 --
--- > map $ span $ text "foo"
+-- > map $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1214,13 +1298,13 @@
 {-# INLINE map #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<mark>@ element.
 --
 -- Example:
 --
--- > mark $ span $ text "foo"
+-- > mark $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1232,13 +1316,13 @@
 {-# INLINE mark #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<menu>@ element.
 --
 -- Example:
 --
--- > menu $ span $ text "foo"
+-- > menu $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1250,8 +1334,25 @@
 {-# INLINE menu #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
+-- | Combinator for the @\<menuitem />@ element.
+--
+-- Example:
+--
+-- > menuitem
+--
+-- Result:
+--
+-- > <menuitem />
+--
+menuitem :: Html  -- ^ Resulting HTML.
+menuitem = Leaf "menuitem" "<menuitem" ">" ()
+{-# INLINE menuitem #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
 -- | Combinator for the @\<meta />@ element.
 --
 -- Example:
@@ -1263,17 +1364,17 @@
 -- > <meta />
 --
 meta :: Html  -- ^ Resulting HTML.
-meta = Leaf "meta" "<meta" ">"
+meta = Leaf "meta" "<meta" ">" ()
 {-# INLINE meta #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<meter>@ element.
 --
 -- Example:
 --
--- > meter $ span $ text "foo"
+-- > meter $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1285,13 +1386,13 @@
 {-# INLINE meter #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<nav>@ element.
 --
 -- Example:
 --
--- > nav $ span $ text "foo"
+-- > nav $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1303,13 +1404,13 @@
 {-# INLINE nav #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noscript>@ element.
 --
 -- Example:
 --
--- > noscript $ span $ text "foo"
+-- > noscript $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1321,13 +1422,13 @@
 {-# INLINE noscript #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<object>@ element.
 --
 -- Example:
 --
--- > object $ span $ text "foo"
+-- > object $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1339,13 +1440,13 @@
 {-# INLINE object #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ol>@ element.
 --
 -- Example:
 --
--- > ol $ span $ text "foo"
+-- > ol $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1357,13 +1458,13 @@
 {-# INLINE ol #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<optgroup>@ element.
 --
 -- Example:
 --
--- > optgroup $ span $ text "foo"
+-- > optgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1375,13 +1476,13 @@
 {-# INLINE optgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<option>@ element.
 --
 -- Example:
 --
--- > option $ span $ text "foo"
+-- > option $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1393,13 +1494,13 @@
 {-# INLINE option #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<output>@ element.
 --
 -- Example:
 --
--- > output $ span $ text "foo"
+-- > output $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1411,13 +1512,13 @@
 {-# INLINE output #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<p>@ element.
 --
 -- Example:
 --
--- > p $ span $ text "foo"
+-- > p $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1429,7 +1530,7 @@
 {-# INLINE p #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<param />@ element.
 --
@@ -1442,17 +1543,35 @@
 -- > <param />
 --
 param :: Html  -- ^ Resulting HTML.
-param = Leaf "param" "<param" ">"
+param = Leaf "param" "<param" ">" ()
 {-# INLINE param #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
+-- | Combinator for the @\<picture>@ element.
+--
+-- Example:
+--
+-- > picture $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <picture><span>foo</span></picture>
+--
+picture :: Html  -- ^ Inner HTML.
+        -> Html  -- ^ Resulting HTML.
+picture = Parent "picture" "<picture" "</picture>"
+{-# INLINE picture #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
 -- | Combinator for the @\<pre>@ element.
 --
 -- Example:
 --
--- > pre $ span $ text "foo"
+-- > pre $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1464,13 +1583,13 @@
 {-# INLINE pre #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<progress>@ element.
 --
 -- Example:
 --
--- > progress $ span $ text "foo"
+-- > progress $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1482,13 +1601,13 @@
 {-# INLINE progress #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<q>@ element.
 --
 -- Example:
 --
--- > q $ span $ text "foo"
+-- > q $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1500,13 +1619,13 @@
 {-# INLINE q #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<rp>@ element.
 --
 -- Example:
 --
--- > rp $ span $ text "foo"
+-- > rp $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1518,13 +1637,13 @@
 {-# INLINE rp #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<rt>@ element.
 --
 -- Example:
 --
--- > rt $ span $ text "foo"
+-- > rt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1536,13 +1655,13 @@
 {-# INLINE rt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ruby>@ element.
 --
 -- Example:
 --
--- > ruby $ span $ text "foo"
+-- > ruby $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1554,13 +1673,31 @@
 {-# INLINE ruby #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
+-- | Combinator for the @\<s>@ element.
+--
+-- Example:
+--
+-- > s $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <s><span>foo</span></s>
+--
+s :: Html  -- ^ Inner HTML.
+  -> Html  -- ^ Resulting HTML.
+s = Parent "s" "<s" "</s>"
+{-# INLINE s #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
 -- | Combinator for the @\<samp>@ element.
 --
 -- Example:
 --
--- > samp $ span $ text "foo"
+-- > samp $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1572,13 +1709,13 @@
 {-# INLINE samp #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<script>@ element.
 --
 -- Example:
 --
--- > script $ span $ text "foo"
+-- > script $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1590,13 +1727,31 @@
 {-# INLINE script #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
+-- | Combinator for the @\<search>@ element.
+--
+-- Example:
+--
+-- > search $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <search><span>foo</span></search>
+--
+search :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+search = Parent "search" "<search" "</search>"
+{-# INLINE search #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
 -- | Combinator for the @\<section>@ element.
 --
 -- Example:
 --
--- > section $ span $ text "foo"
+-- > section $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1608,13 +1763,13 @@
 {-# INLINE section #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<select>@ element.
 --
 -- Example:
 --
--- > select $ span $ text "foo"
+-- > select $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1626,13 +1781,31 @@
 {-# INLINE select #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
+-- | Combinator for the @\<slot>@ element.
+--
+-- Example:
+--
+-- > slot $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <slot><span>foo</span></slot>
+--
+slot :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+slot = Parent "slot" "<slot" "</slot>"
+{-# INLINE slot #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
 -- | Combinator for the @\<small>@ element.
 --
 -- Example:
 --
--- > small $ span $ text "foo"
+-- > small $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1644,31 +1817,30 @@
 {-# INLINE small #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
--- | Combinator for the @\<source>@ element.
+-- | Combinator for the @\<source />@ element.
 --
 -- Example:
 --
--- > source $ span $ text "foo"
+-- > source
 --
 -- Result:
 --
--- > <source><span>foo</span></source>
+-- > <source />
 --
-source :: Html  -- ^ Inner HTML.
-       -> Html  -- ^ Resulting HTML.
-source = Parent "source" "<source" "</source>"
+source :: Html  -- ^ Resulting HTML.
+source = Leaf "source" "<source" ">" ()
 {-# INLINE source #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<span>@ element.
 --
 -- Example:
 --
--- > span $ span $ text "foo"
+-- > span $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1680,13 +1852,13 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<strong>@ element.
 --
 -- Example:
 --
--- > strong $ span $ text "foo"
+-- > strong $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1698,13 +1870,13 @@
 {-# INLINE strong #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<style>@ element.
 --
 -- Example:
 --
--- > style $ span $ text "foo"
+-- > style $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1716,13 +1888,13 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sub>@ element.
 --
 -- Example:
 --
--- > sub $ span $ text "foo"
+-- > sub $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1734,13 +1906,13 @@
 {-# INLINE sub #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<summary>@ element.
 --
 -- Example:
 --
--- > summary $ span $ text "foo"
+-- > summary $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1752,13 +1924,13 @@
 {-# INLINE summary #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sup>@ element.
 --
 -- Example:
 --
--- > sup $ span $ text "foo"
+-- > sup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1770,13 +1942,13 @@
 {-# INLINE sup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<table>@ element.
 --
 -- Example:
 --
--- > table $ span $ text "foo"
+-- > table $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1788,13 +1960,13 @@
 {-# INLINE table #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tbody>@ element.
 --
 -- Example:
 --
--- > tbody $ span $ text "foo"
+-- > tbody $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1806,13 +1978,13 @@
 {-# INLINE tbody #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<td>@ element.
 --
 -- Example:
 --
--- > td $ span $ text "foo"
+-- > td $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1824,13 +1996,31 @@
 {-# INLINE td #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
+-- | Combinator for the @\<template>@ element.
+--
+-- Example:
+--
+-- > template $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <template><span>foo</span></template>
+--
+template :: Html  -- ^ Inner HTML.
+         -> Html  -- ^ Resulting HTML.
+template = Parent "template" "<template" "</template>"
+{-# INLINE template #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
 -- | Combinator for the @\<textarea>@ element.
 --
 -- Example:
 --
--- > textarea $ span $ text "foo"
+-- > textarea $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1842,13 +2032,13 @@
 {-# INLINE textarea #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tfoot>@ element.
 --
 -- Example:
 --
--- > tfoot $ span $ text "foo"
+-- > tfoot $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1860,13 +2050,13 @@
 {-# INLINE tfoot #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<th>@ element.
 --
 -- Example:
 --
--- > th $ span $ text "foo"
+-- > th $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1878,13 +2068,13 @@
 {-# INLINE th #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<thead>@ element.
 --
 -- Example:
 --
--- > thead $ span $ text "foo"
+-- > thead $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1896,13 +2086,13 @@
 {-# INLINE thead #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<time>@ element.
 --
 -- Example:
 --
--- > time $ span $ text "foo"
+-- > time $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1914,13 +2104,13 @@
 {-# INLINE time #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<title>@ element.
 --
 -- Example:
 --
--- > title $ span $ text "foo"
+-- > title $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1932,13 +2122,13 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tr>@ element.
 --
 -- Example:
 --
--- > tr $ span $ text "foo"
+-- > tr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1950,13 +2140,48 @@
 {-# INLINE tr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
+-- | Combinator for the @\<track />@ element.
+--
+-- Example:
+--
+-- > track
+--
+-- Result:
+--
+-- > <track />
+--
+track :: Html  -- ^ Resulting HTML.
+track = Leaf "track" "<track" ">" ()
+{-# INLINE track #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<u>@ element.
+--
+-- Example:
+--
+-- > u $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <u><span>foo</span></u>
+--
+u :: Html  -- ^ Inner HTML.
+  -> Html  -- ^ Resulting HTML.
+u = Parent "u" "<u" "</u>"
+{-# INLINE u #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
 -- | Combinator for the @\<ul>@ element.
 --
 -- Example:
 --
--- > ul $ span $ text "foo"
+-- > ul $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1968,13 +2193,13 @@
 {-# INLINE ul #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<var>@ element.
 --
 -- Example:
 --
--- > var $ span $ text "foo"
+-- > var $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1986,13 +2211,13 @@
 {-# INLINE var #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<video>@ element.
 --
 -- Example:
 --
--- > video $ span $ text "foo"
+-- > video $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -2002,3 +2227,20 @@
       -> Html  -- ^ Resulting HTML.
 video = Parent "video" "<video" "</video>"
 {-# INLINE video #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<wbr />@ element.
+--
+-- Example:
+--
+-- > wbr
+--
+-- Result:
+--
+-- > <wbr />
+--
+wbr :: Html  -- ^ Resulting HTML.
+wbr = Leaf "wbr" "<wbr" ">" ()
+{-# INLINE wbr #-}
diff --git a/src/Text/Blaze/Html5/Attributes.hs b/src/Text/Blaze/Html5/Attributes.hs
--- a/src/Text/Blaze/Html5/Attributes.hs
+++ b/src/Text/Blaze/Html5/Attributes.hs
@@ -1,5 +1,5 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:92
+-- src/Util/GenerateHtmlCombinators.hs:94
 --
 -- | This module exports combinators that provide you with the
 -- ability to set attributes on HTML elements.
@@ -32,6 +32,7 @@
     , defer
     , dir
     , disabled
+    , download
     , draggable
     , enctype
     , for
@@ -53,6 +54,8 @@
     , ismap
     , item
     , itemprop
+    , itemscope
+    , itemtype
     , keytype
     , label
     , lang
@@ -65,7 +68,9 @@
     , media
     , method
     , min
+    , minlength
     , multiple
+    , muted
     , name
     , novalidate
     , onbeforeonload
@@ -95,6 +100,7 @@
     , oninput
     , oninvalid
     , onkeydown
+    , onkeypress
     , onkeyup
     , onload
     , onloadeddata
@@ -137,13 +143,16 @@
     , pattern
     , ping
     , placeholder
+    , poster
     , preload
+    , property
     , pubdate
     , radiogroup
     , readonly
     , rel
     , required
     , reversed
+    , role
     , rows
     , rowspan
     , sandbox
@@ -175,14 +184,14 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:98
+-- src/Util/GenerateHtmlCombinators.hs:100
 --
 import Prelude ()
 
 import Text.Blaze.Internal (Attribute, AttributeValue, attribute)
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accept@ attribute.
 --
@@ -200,7 +209,7 @@
 {-# INLINE accept #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accept-charset@ attribute.
 --
@@ -218,7 +227,7 @@
 {-# INLINE acceptCharset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accesskey@ attribute.
 --
@@ -236,7 +245,7 @@
 {-# INLINE accesskey #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @action@ attribute.
 --
@@ -254,7 +263,7 @@
 {-# INLINE action #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @alt@ attribute.
 --
@@ -272,7 +281,7 @@
 {-# INLINE alt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @async@ attribute.
 --
@@ -290,7 +299,7 @@
 {-# INLINE async #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @autocomplete@ attribute.
 --
@@ -308,7 +317,7 @@
 {-# INLINE autocomplete #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @autofocus@ attribute.
 --
@@ -326,7 +335,7 @@
 {-# INLINE autofocus #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @autoplay@ attribute.
 --
@@ -344,7 +353,7 @@
 {-# INLINE autoplay #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @challenge@ attribute.
 --
@@ -362,7 +371,7 @@
 {-# INLINE challenge #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charset@ attribute.
 --
@@ -380,7 +389,7 @@
 {-# INLINE charset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @checked@ attribute.
 --
@@ -398,7 +407,7 @@
 {-# INLINE checked #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cite@ attribute.
 --
@@ -416,7 +425,7 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @class@ attribute.
 --
@@ -434,7 +443,7 @@
 {-# INLINE class_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cols@ attribute.
 --
@@ -452,7 +461,7 @@
 {-# INLINE cols #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @colspan@ attribute.
 --
@@ -470,7 +479,7 @@
 {-# INLINE colspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @content@ attribute.
 --
@@ -488,7 +497,7 @@
 {-# INLINE content #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @contenteditable@ attribute.
 --
@@ -506,7 +515,7 @@
 {-# INLINE contenteditable #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @contextmenu@ attribute.
 --
@@ -524,7 +533,7 @@
 {-# INLINE contextmenu #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @controls@ attribute.
 --
@@ -542,7 +551,7 @@
 {-# INLINE controls #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @coords@ attribute.
 --
@@ -560,7 +569,7 @@
 {-# INLINE coords #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @data@ attribute.
 --
@@ -578,7 +587,7 @@
 {-# INLINE data_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @datetime@ attribute.
 --
@@ -596,7 +605,7 @@
 {-# INLINE datetime #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @defer@ attribute.
 --
@@ -614,7 +623,7 @@
 {-# INLINE defer #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @dir@ attribute.
 --
@@ -632,7 +641,7 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @disabled@ attribute.
 --
@@ -650,8 +659,26 @@
 {-# INLINE disabled #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
+-- | Combinator for the @download@ attribute.
+--
+-- Example:
+--
+-- > div ! download "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div download="bar">Hello.</div>
+--
+download :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+download = attribute "download" " download=\""
+{-# INLINE download #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
 -- | Combinator for the @draggable@ attribute.
 --
 -- Example:
@@ -668,7 +695,7 @@
 {-# INLINE draggable #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @enctype@ attribute.
 --
@@ -686,7 +713,7 @@
 {-# INLINE enctype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @for@ attribute.
 --
@@ -704,7 +731,7 @@
 {-# INLINE for #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @form@ attribute.
 --
@@ -722,7 +749,7 @@
 {-# INLINE form #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @formaction@ attribute.
 --
@@ -740,7 +767,7 @@
 {-# INLINE formaction #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @formenctype@ attribute.
 --
@@ -758,7 +785,7 @@
 {-# INLINE formenctype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @formmethod@ attribute.
 --
@@ -776,7 +803,7 @@
 {-# INLINE formmethod #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @formnovalidate@ attribute.
 --
@@ -794,7 +821,7 @@
 {-# INLINE formnovalidate #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @formtarget@ attribute.
 --
@@ -812,7 +839,7 @@
 {-# INLINE formtarget #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @headers@ attribute.
 --
@@ -830,7 +857,7 @@
 {-# INLINE headers #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @height@ attribute.
 --
@@ -848,7 +875,7 @@
 {-# INLINE height #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hidden@ attribute.
 --
@@ -866,7 +893,7 @@
 {-# INLINE hidden #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @high@ attribute.
 --
@@ -884,7 +911,7 @@
 {-# INLINE high #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @href@ attribute.
 --
@@ -902,7 +929,7 @@
 {-# INLINE href #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hreflang@ attribute.
 --
@@ -920,7 +947,7 @@
 {-# INLINE hreflang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @http-equiv@ attribute.
 --
@@ -938,7 +965,7 @@
 {-# INLINE httpEquiv #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @icon@ attribute.
 --
@@ -956,7 +983,7 @@
 {-# INLINE icon #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @id@ attribute.
 --
@@ -974,7 +1001,7 @@
 {-# INLINE id #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ismap@ attribute.
 --
@@ -992,7 +1019,7 @@
 {-# INLINE ismap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @item@ attribute.
 --
@@ -1010,7 +1037,7 @@
 {-# INLINE item #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @itemprop@ attribute.
 --
@@ -1028,8 +1055,44 @@
 {-# INLINE itemprop #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
+-- | Combinator for the @itemscope@ attribute.
+--
+-- Example:
+--
+-- > div ! itemscope "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div itemscope="bar">Hello.</div>
+--
+itemscope :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+itemscope = attribute "itemscope" " itemscope=\""
+{-# INLINE itemscope #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @itemtype@ attribute.
+--
+-- Example:
+--
+-- > div ! itemtype "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div itemtype="bar">Hello.</div>
+--
+itemtype :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+itemtype = attribute "itemtype" " itemtype=\""
+{-# INLINE itemtype #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
 -- | Combinator for the @keytype@ attribute.
 --
 -- Example:
@@ -1046,7 +1109,7 @@
 {-# INLINE keytype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @label@ attribute.
 --
@@ -1064,7 +1127,7 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @lang@ attribute.
 --
@@ -1082,7 +1145,7 @@
 {-# INLINE lang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @list@ attribute.
 --
@@ -1100,7 +1163,7 @@
 {-# INLINE list #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @loop@ attribute.
 --
@@ -1118,7 +1181,7 @@
 {-# INLINE loop #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @low@ attribute.
 --
@@ -1136,7 +1199,7 @@
 {-# INLINE low #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @manifest@ attribute.
 --
@@ -1154,7 +1217,7 @@
 {-# INLINE manifest #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @max@ attribute.
 --
@@ -1172,7 +1235,7 @@
 {-# INLINE max #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @maxlength@ attribute.
 --
@@ -1190,7 +1253,7 @@
 {-# INLINE maxlength #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @media@ attribute.
 --
@@ -1208,7 +1271,7 @@
 {-# INLINE media #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @method@ attribute.
 --
@@ -1226,7 +1289,7 @@
 {-# INLINE method #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @min@ attribute.
 --
@@ -1244,8 +1307,26 @@
 {-# INLINE min #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
+-- | Combinator for the @minlength@ attribute.
+--
+-- Example:
+--
+-- > div ! minlength "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div minlength="bar">Hello.</div>
+--
+minlength :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+minlength = attribute "minlength" " minlength=\""
+{-# INLINE minlength #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
 -- | Combinator for the @multiple@ attribute.
 --
 -- Example:
@@ -1262,8 +1343,26 @@
 {-# INLINE multiple #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
+-- | Combinator for the @muted@ attribute.
+--
+-- Example:
+--
+-- > div ! muted "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div muted="bar">Hello.</div>
+--
+muted :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+muted = attribute "muted" " muted=\""
+{-# INLINE muted #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
 -- | Combinator for the @name@ attribute.
 --
 -- Example:
@@ -1280,7 +1379,7 @@
 {-# INLINE name #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @novalidate@ attribute.
 --
@@ -1298,7 +1397,7 @@
 {-# INLINE novalidate #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onbeforeonload@ attribute.
 --
@@ -1316,7 +1415,7 @@
 {-# INLINE onbeforeonload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onbeforeprint@ attribute.
 --
@@ -1334,7 +1433,7 @@
 {-# INLINE onbeforeprint #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onblur@ attribute.
 --
@@ -1352,7 +1451,7 @@
 {-# INLINE onblur #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @oncanplay@ attribute.
 --
@@ -1370,7 +1469,7 @@
 {-# INLINE oncanplay #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @oncanplaythrough@ attribute.
 --
@@ -1388,7 +1487,7 @@
 {-# INLINE oncanplaythrough #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onchange@ attribute.
 --
@@ -1406,7 +1505,7 @@
 {-# INLINE onchange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onclick@ attribute.
 --
@@ -1424,7 +1523,7 @@
 {-# INLINE onclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @oncontextmenu@ attribute.
 --
@@ -1442,7 +1541,7 @@
 {-# INLINE oncontextmenu #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondblclick@ attribute.
 --
@@ -1460,7 +1559,7 @@
 {-# INLINE ondblclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondrag@ attribute.
 --
@@ -1478,7 +1577,7 @@
 {-# INLINE ondrag #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondragend@ attribute.
 --
@@ -1496,7 +1595,7 @@
 {-# INLINE ondragend #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondragenter@ attribute.
 --
@@ -1514,7 +1613,7 @@
 {-# INLINE ondragenter #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondragleave@ attribute.
 --
@@ -1532,7 +1631,7 @@
 {-# INLINE ondragleave #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondragover@ attribute.
 --
@@ -1550,7 +1649,7 @@
 {-# INLINE ondragover #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondragstart@ attribute.
 --
@@ -1568,7 +1667,7 @@
 {-# INLINE ondragstart #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondrop@ attribute.
 --
@@ -1586,7 +1685,7 @@
 {-# INLINE ondrop #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondurationchange@ attribute.
 --
@@ -1604,7 +1703,7 @@
 {-# INLINE ondurationchange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onemptied@ attribute.
 --
@@ -1622,7 +1721,7 @@
 {-# INLINE onemptied #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onended@ attribute.
 --
@@ -1640,7 +1739,7 @@
 {-# INLINE onended #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onerror@ attribute.
 --
@@ -1658,7 +1757,7 @@
 {-# INLINE onerror #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onfocus@ attribute.
 --
@@ -1676,7 +1775,7 @@
 {-# INLINE onfocus #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onformchange@ attribute.
 --
@@ -1694,7 +1793,7 @@
 {-# INLINE onformchange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onforminput@ attribute.
 --
@@ -1712,7 +1811,7 @@
 {-# INLINE onforminput #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onhaschange@ attribute.
 --
@@ -1730,7 +1829,7 @@
 {-# INLINE onhaschange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @oninput@ attribute.
 --
@@ -1748,7 +1847,7 @@
 {-# INLINE oninput #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @oninvalid@ attribute.
 --
@@ -1766,7 +1865,7 @@
 {-# INLINE oninvalid #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeydown@ attribute.
 --
@@ -1784,8 +1883,26 @@
 {-# INLINE onkeydown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
+-- | Combinator for the @onkeypress@ attribute.
+--
+-- Example:
+--
+-- > div ! onkeypress "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onkeypress="bar">Hello.</div>
+--
+onkeypress :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+onkeypress = attribute "onkeypress" " onkeypress=\""
+{-# INLINE onkeypress #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
 -- | Combinator for the @onkeyup@ attribute.
 --
 -- Example:
@@ -1802,7 +1919,7 @@
 {-# INLINE onkeyup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onload@ attribute.
 --
@@ -1820,7 +1937,7 @@
 {-# INLINE onload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onloadeddata@ attribute.
 --
@@ -1838,7 +1955,7 @@
 {-# INLINE onloadeddata #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onloadedmetadata@ attribute.
 --
@@ -1856,7 +1973,7 @@
 {-# INLINE onloadedmetadata #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onloadstart@ attribute.
 --
@@ -1874,7 +1991,7 @@
 {-# INLINE onloadstart #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmessage@ attribute.
 --
@@ -1892,7 +2009,7 @@
 {-# INLINE onmessage #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousedown@ attribute.
 --
@@ -1910,7 +2027,7 @@
 {-# INLINE onmousedown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousemove@ attribute.
 --
@@ -1928,7 +2045,7 @@
 {-# INLINE onmousemove #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseout@ attribute.
 --
@@ -1946,7 +2063,7 @@
 {-# INLINE onmouseout #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseover@ attribute.
 --
@@ -1964,7 +2081,7 @@
 {-# INLINE onmouseover #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseup@ attribute.
 --
@@ -1982,7 +2099,7 @@
 {-# INLINE onmouseup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousewheel@ attribute.
 --
@@ -2000,7 +2117,7 @@
 {-# INLINE onmousewheel #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ononline@ attribute.
 --
@@ -2018,7 +2135,7 @@
 {-# INLINE ononline #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onpagehide@ attribute.
 --
@@ -2036,7 +2153,7 @@
 {-# INLINE onpagehide #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onpageshow@ attribute.
 --
@@ -2054,7 +2171,7 @@
 {-# INLINE onpageshow #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onpause@ attribute.
 --
@@ -2072,7 +2189,7 @@
 {-# INLINE onpause #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onplay@ attribute.
 --
@@ -2090,7 +2207,7 @@
 {-# INLINE onplay #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onplaying@ attribute.
 --
@@ -2108,7 +2225,7 @@
 {-# INLINE onplaying #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onprogress@ attribute.
 --
@@ -2126,7 +2243,7 @@
 {-# INLINE onprogress #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onpropstate@ attribute.
 --
@@ -2144,7 +2261,7 @@
 {-# INLINE onpropstate #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onratechange@ attribute.
 --
@@ -2162,7 +2279,7 @@
 {-# INLINE onratechange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onreadystatechange@ attribute.
 --
@@ -2180,7 +2297,7 @@
 {-# INLINE onreadystatechange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onredo@ attribute.
 --
@@ -2198,7 +2315,7 @@
 {-# INLINE onredo #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onresize@ attribute.
 --
@@ -2216,7 +2333,7 @@
 {-# INLINE onresize #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onscroll@ attribute.
 --
@@ -2234,7 +2351,7 @@
 {-# INLINE onscroll #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onseeked@ attribute.
 --
@@ -2252,7 +2369,7 @@
 {-# INLINE onseeked #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onseeking@ attribute.
 --
@@ -2270,7 +2387,7 @@
 {-# INLINE onseeking #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onselect@ attribute.
 --
@@ -2288,7 +2405,7 @@
 {-# INLINE onselect #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onstalled@ attribute.
 --
@@ -2306,7 +2423,7 @@
 {-# INLINE onstalled #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onstorage@ attribute.
 --
@@ -2324,7 +2441,7 @@
 {-# INLINE onstorage #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onsubmit@ attribute.
 --
@@ -2342,7 +2459,7 @@
 {-# INLINE onsubmit #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onsuspend@ attribute.
 --
@@ -2360,7 +2477,7 @@
 {-# INLINE onsuspend #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ontimeupdate@ attribute.
 --
@@ -2378,7 +2495,7 @@
 {-# INLINE ontimeupdate #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onundo@ attribute.
 --
@@ -2396,7 +2513,7 @@
 {-# INLINE onundo #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onunload@ attribute.
 --
@@ -2414,7 +2531,7 @@
 {-# INLINE onunload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onvolumechange@ attribute.
 --
@@ -2432,7 +2549,7 @@
 {-# INLINE onvolumechange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onwaiting@ attribute.
 --
@@ -2450,7 +2567,7 @@
 {-# INLINE onwaiting #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @open@ attribute.
 --
@@ -2468,7 +2585,7 @@
 {-# INLINE open #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @optimum@ attribute.
 --
@@ -2486,7 +2603,7 @@
 {-# INLINE optimum #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @pattern@ attribute.
 --
@@ -2504,7 +2621,7 @@
 {-# INLINE pattern #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ping@ attribute.
 --
@@ -2522,7 +2639,7 @@
 {-# INLINE ping #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @placeholder@ attribute.
 --
@@ -2540,8 +2657,26 @@
 {-# INLINE placeholder #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
+-- | Combinator for the @poster@ attribute.
+--
+-- Example:
+--
+-- > div ! poster "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div poster="bar">Hello.</div>
+--
+poster :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+poster = attribute "poster" " poster=\""
+{-# INLINE poster #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
 -- | Combinator for the @preload@ attribute.
 --
 -- Example:
@@ -2558,8 +2693,26 @@
 {-# INLINE preload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
+-- | Combinator for the @property@ attribute.
+--
+-- Example:
+--
+-- > div ! property "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div property="bar">Hello.</div>
+--
+property :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+property = attribute "property" " property=\""
+{-# INLINE property #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
 -- | Combinator for the @pubdate@ attribute.
 --
 -- Example:
@@ -2576,7 +2729,7 @@
 {-# INLINE pubdate #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @radiogroup@ attribute.
 --
@@ -2594,7 +2747,7 @@
 {-# INLINE radiogroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @readonly@ attribute.
 --
@@ -2612,7 +2765,7 @@
 {-# INLINE readonly #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rel@ attribute.
 --
@@ -2630,7 +2783,7 @@
 {-# INLINE rel #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @required@ attribute.
 --
@@ -2648,7 +2801,7 @@
 {-# INLINE required #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @reversed@ attribute.
 --
@@ -2666,8 +2819,26 @@
 {-# INLINE reversed #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
+-- | Combinator for the @role@ attribute.
+--
+-- Example:
+--
+-- > div ! role "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div role="bar">Hello.</div>
+--
+role :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+role = attribute "role" " role=\""
+{-# INLINE role #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
 -- | Combinator for the @rows@ attribute.
 --
 -- Example:
@@ -2684,7 +2855,7 @@
 {-# INLINE rows #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rowspan@ attribute.
 --
@@ -2702,7 +2873,7 @@
 {-# INLINE rowspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @sandbox@ attribute.
 --
@@ -2720,7 +2891,7 @@
 {-# INLINE sandbox #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scope@ attribute.
 --
@@ -2738,7 +2909,7 @@
 {-# INLINE scope #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scoped@ attribute.
 --
@@ -2756,7 +2927,7 @@
 {-# INLINE scoped #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @seamless@ attribute.
 --
@@ -2774,7 +2945,7 @@
 {-# INLINE seamless #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @selected@ attribute.
 --
@@ -2792,7 +2963,7 @@
 {-# INLINE selected #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @shape@ attribute.
 --
@@ -2810,7 +2981,7 @@
 {-# INLINE shape #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @size@ attribute.
 --
@@ -2828,7 +2999,7 @@
 {-# INLINE size #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @sizes@ attribute.
 --
@@ -2846,7 +3017,7 @@
 {-# INLINE sizes #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @span@ attribute.
 --
@@ -2864,7 +3035,7 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @spellcheck@ attribute.
 --
@@ -2882,7 +3053,7 @@
 {-# INLINE spellcheck #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @src@ attribute.
 --
@@ -2900,7 +3071,7 @@
 {-# INLINE src #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @srcdoc@ attribute.
 --
@@ -2918,7 +3089,7 @@
 {-# INLINE srcdoc #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @start@ attribute.
 --
@@ -2936,7 +3107,7 @@
 {-# INLINE start #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @step@ attribute.
 --
@@ -2954,7 +3125,7 @@
 {-# INLINE step #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @style@ attribute.
 --
@@ -2972,7 +3143,7 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @subject@ attribute.
 --
@@ -2990,7 +3161,7 @@
 {-# INLINE subject #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @summary@ attribute.
 --
@@ -3008,7 +3179,7 @@
 {-# INLINE summary #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @tabindex@ attribute.
 --
@@ -3026,7 +3197,7 @@
 {-# INLINE tabindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @target@ attribute.
 --
@@ -3044,7 +3215,7 @@
 {-# INLINE target #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @title@ attribute.
 --
@@ -3062,7 +3233,7 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @type@ attribute.
 --
@@ -3080,7 +3251,7 @@
 {-# INLINE type_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @usemap@ attribute.
 --
@@ -3098,7 +3269,7 @@
 {-# INLINE usemap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @value@ attribute.
 --
@@ -3116,7 +3287,7 @@
 {-# INLINE value #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @width@ attribute.
 --
@@ -3134,7 +3305,7 @@
 {-# INLINE width #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @wrap@ attribute.
 --
@@ -3152,7 +3323,7 @@
 {-# INLINE wrap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @xmlns@ attribute.
 --
diff --git a/src/Text/Blaze/Internal.hs b/src/Text/Blaze/Internal.hs
deleted file mode 100644
--- a/src/Text/Blaze/Internal.hs
+++ /dev/null
@@ -1,419 +0,0 @@
-{-# LANGUAGE OverloadedStrings, GeneralizedNewtypeDeriving, Rank2Types,
-             FlexibleInstances, ExistentialQuantification, DeriveDataTypeable #-}
--- | The BlazeHtml core, consisting of functions that offer the power to
--- generate custom HTML elements. It also offers user-centric functions, which
--- are exposed through 'Text.Blaze'.
---
--- While this module is exported, usage of it is not recommended, unless you
--- know what you are doing. This module might undergo changes at any time.
---
-module Text.Blaze.Internal
-    (
-      -- * Important types.
-      ChoiceString (..)
-    , StaticString (..)
-    , HtmlM (..)
-    , Html
-    , Tag
-    , Attribute
-    , AttributeValue
-
-      -- * Creating custom tags and attributes.
-    , attribute
-    , dataAttribute
-    , customAttribute
-
-      -- * Converting values to HTML.
-    , text
-    , preEscapedText
-    , lazyText
-    , preEscapedLazyText
-    , string
-    , preEscapedString
-    , unsafeByteString
-    , unsafeLazyByteString
-
-      -- * Converting values to tags.
-    , textTag
-    , stringTag
-
-      -- * Converting values to attribute values.
-    , textValue
-    , preEscapedTextValue
-    , lazyTextValue
-    , preEscapedLazyTextValue
-    , stringValue
-    , preEscapedStringValue
-    , unsafeByteStringValue
-    , unsafeLazyByteStringValue
-
-      -- * Setting attributes
-    , Attributable
-    , (!)
-
-      -- * Modifying HTML elements
-    , external
-    ) where
-
-import Data.Monoid (Monoid, mappend, mempty, mconcat)
-import Unsafe.Coerce (unsafeCoerce)
-
-import Data.ByteString.Char8 (ByteString)
-import Data.Text (Text)
-import Data.Typeable (Typeable)
-import GHC.Exts (IsString (..))
-import qualified Data.ByteString as B
-import qualified Data.ByteString.Lazy as BL
-import qualified Data.Text as T
-import qualified Data.Text.Encoding as T
-import qualified Data.Text.Lazy as LT
-
--- | A static string that supports efficient output to all possible backends.
---
-data StaticString = StaticString
-    { getString         :: String -> String  -- ^ Appending haskell string
-    , getUtf8ByteString :: B.ByteString      -- ^ UTF-8 encoded bytestring
-    , getText           :: Text              -- ^ Text value
-    }
-
--- 'StaticString's should only be converted from string literals, as far as I
--- can see.
---
-instance IsString StaticString where
-    fromString s = let t = T.pack s
-                   in StaticString (s ++) (T.encodeUtf8 t) t
-
--- | A string denoting input from different string representations.
---
-data ChoiceString
-    -- | Static data
-    = Static {-# UNPACK #-} !StaticString
-    -- | A Haskell String
-    | String String
-    -- | A Text value
-    | Text Text
-    -- | An encoded bytestring
-    | ByteString B.ByteString
-    -- | A pre-escaped string
-    | PreEscaped ChoiceString
-    -- | External data in style/script tags, should be checked for validity
-    | External ChoiceString
-    -- | Concatenation
-    | AppendChoiceString ChoiceString ChoiceString
-    -- | Empty string
-    | EmptyChoiceString
-
-instance Monoid ChoiceString where
-    mempty = EmptyChoiceString
-    {-# INLINE mempty #-}
-    mappend = AppendChoiceString
-    {-# INLINE mappend #-}
-
-instance IsString ChoiceString where
-    fromString = String
-    {-# INLINE fromString #-}
-
--- | The core HTML datatype.
---
-data HtmlM a
-    -- | Tag, open tag, end tag, content
-    = forall b. Parent StaticString StaticString StaticString (HtmlM b)
-    -- | Tag, open tag, end tag
-    | Leaf StaticString StaticString StaticString
-    -- | HTML content
-    | Content ChoiceString
-    -- | Concatenation of two HTML pieces
-    | forall b c. Append (HtmlM b) (HtmlM c)
-    -- | Add an attribute to the inner HTML. Raw key, key, value, HTML to
-    -- receive the attribute.
-    | AddAttribute StaticString StaticString ChoiceString (HtmlM a)
-    -- | Add a custom attribute to the inner HTML.
-    | AddCustomAttribute ChoiceString ChoiceString ChoiceString (HtmlM a)
-    -- | Empty HTML.
-    | Empty
-    deriving (Typeable)
-
--- | Simplification of the 'HtmlM' datatype.
---
-type Html = HtmlM ()
-
-instance Monoid a => Monoid (HtmlM a) where
-    mempty = Empty
-    {-# INLINE mempty #-}
-    mappend x y = Append x y
-    {-# INLINE mappend #-}
-    mconcat = foldr Append Empty
-    {-# INLINE mconcat #-}
-
-instance Functor HtmlM where
-    -- Safe because it does not contain a value anyway
-    fmap _ = unsafeCoerce
-
-instance Monad HtmlM where
-    return _ = Empty
-    {-# INLINE return #-}
-    (>>) = Append
-    {-# INLINE (>>) #-}
-    h1 >>= f = h1 >> f
-        (error "Text.Blaze.Internal.HtmlM: invalid use of monadic bind")
-    {-# INLINE (>>=) #-}
-
-instance IsString (HtmlM a) where
-    fromString = Content . fromString
-    {-# INLINE fromString #-}
-
--- | Type for an HTML tag. This can be seen as an internal string type used by
--- BlazeHtml.
---
-newtype Tag = Tag { unTag :: StaticString }
-    deriving (IsString)
-
--- | Type for an attribute.
---
-newtype Attribute = Attribute (forall a. HtmlM a -> HtmlM a)
-
-instance Monoid Attribute where
-    mempty                            = Attribute id
-    Attribute f `mappend` Attribute g = Attribute (g . f)
-
--- | The type for the value part of an attribute.
---
-newtype AttributeValue = AttributeValue { unAttributeValue :: ChoiceString }
-    deriving (IsString, Monoid)
-
--- | Create an HTML attribute that can be applied to an HTML element later using
--- the '!' operator.
---
-attribute :: Tag             -- ^ Raw key
-          -> Tag             -- ^ Shared key string for the HTML attribute.
-          -> AttributeValue  -- ^ Value for the HTML attribute.
-          -> Attribute       -- ^ Resulting HTML attribute.
-attribute rawKey key value = Attribute $
-    AddAttribute (unTag rawKey) (unTag key) (unAttributeValue value)
-{-# INLINE attribute #-}
-
--- | From HTML 5 onwards, the user is able to specify custom data attributes.
---
--- An example:
---
--- > <p data-foo="bar">Hello.</p>
---
--- We support this in BlazeHtml using this funcion. The above fragment could
--- be described using BlazeHtml with:
---
--- > p ! dataAttribute "foo" "bar" $ "Hello."
---
-dataAttribute :: Tag             -- ^ Name of the attribute.
-              -> AttributeValue  -- ^ Value for the attribute.
-              -> Attribute       -- ^ Resulting HTML attribute.
-dataAttribute tag value = Attribute $ AddCustomAttribute
-    (Static "data-" `mappend` Static (unTag tag))
-    (Static " data-" `mappend` Static (unTag tag) `mappend` Static "=\"")
-    (unAttributeValue value)
-{-# INLINE dataAttribute #-}
-
--- | Create a custom attribute. This is not specified in the HTML spec, but some
--- JavaScript libraries rely on it.
---
--- An example:
---
--- > <select dojoType="select">foo</select>
---
--- Can be produced using:
---
--- > select ! customAttribute "dojoType" "select" $ "foo"
---
-customAttribute :: Tag             -- ^ Name of the attribute
-                -> AttributeValue  -- ^ Value for the attribute
-                -> Attribute       -- ^ Resulting HTML attribtue
-customAttribute tag value = Attribute $ AddCustomAttribute
-    (Static $ unTag tag)
-    (Static " " `mappend` Static (unTag tag) `mappend` Static "=\"")
-    (unAttributeValue value)
-{-# INLINE customAttribute #-}
-
--- | Render text. Functions like these can be used to supply content in HTML.
---
-text :: Text  -- ^ Text to render.
-     -> Html  -- ^ Resulting HTML fragment.
-text = Content . Text
-{-# DEPRECATED text "Use Blaze.Html.toHtml" #-}
-{-# INLINE text #-}
-
--- | Render text without escaping.
---
-preEscapedText :: Text  -- ^ Text to insert
-               -> Html  -- ^ Resulting HTML fragment
-preEscapedText = Content . PreEscaped . Text
-{-# INLINE preEscapedText #-}
-
--- | A variant of 'text' for lazy 'LT.Text'.
---
-lazyText :: LT.Text  -- ^ Text to insert
-         -> Html     -- ^ Resulting HTML fragment
-lazyText = mconcat . map text . LT.toChunks
-{-# DEPRECATED lazyText "Use Blaze.Html.toHtml" #-}
-{-# INLINE lazyText #-}
-
--- | A variant of 'preEscapedText' for lazy 'LT.Text'
---
-preEscapedLazyText :: LT.Text  -- ^ Text to insert
-                   -> Html     -- ^ Resulting HTML fragment
-preEscapedLazyText = mconcat . map preEscapedText . LT.toChunks
-
--- | Create an HTML snippet from a 'String'.
---
-string :: String  -- ^ String to insert.
-       -> Html    -- ^ Resulting HTML fragment.
-string = Content . String
-{-# DEPRECATED string "Use Blaze.Html.toHtml" #-}
-{-# INLINE string #-}
-
--- | Create an HTML snippet from a 'String' without escaping
---
-preEscapedString :: String  -- ^ String to insert.
-                 -> Html    -- ^ Resulting HTML fragment.
-preEscapedString = Content . PreEscaped . String
-{-# INLINE preEscapedString #-}
-
--- | Insert a 'ByteString'. This is an unsafe operation:
---
--- * The 'ByteString' could have the wrong encoding.
---
--- * The 'ByteString' might contain illegal HTML characters (no escaping is
---   done).
---
-unsafeByteString :: ByteString  -- ^ Value to insert.
-                 -> Html        -- ^ Resulting HTML fragment.
-unsafeByteString = Content . ByteString
-{-# INLINE unsafeByteString #-}
-
--- | Insert a lazy 'BL.ByteString'. See 'unsafeByteString' for reasons why this
--- is an unsafe operation.
---
-unsafeLazyByteString :: BL.ByteString  -- ^ Value to insert
-                     -> Html           -- ^ Resulting HTML fragment
-unsafeLazyByteString = mconcat . map unsafeByteString . BL.toChunks
-{-# INLINE unsafeLazyByteString #-}
-
--- | Create a 'Tag' from some 'Text'.
---
-textTag :: Text  -- ^ Text to create a tag from
-        -> Tag   -- ^ Resulting tag
-textTag t = Tag $ StaticString (T.unpack t ++) (T.encodeUtf8 t) t
-
--- | Create a 'Tag' from a 'String'.
---
-stringTag :: String  -- ^ String to create a tag from
-          -> Tag     -- ^ Resulting tag
-stringTag = Tag . fromString
-
--- | Render an attribute value from 'Text'.
---
-textValue :: Text            -- ^ The actual value.
-          -> AttributeValue  -- ^ Resulting attribute value.
-textValue = AttributeValue . Text
-{-# DEPRECATED textValue "Use Blaze.Html.toValue" #-}
-{-# INLINE textValue #-}
-
--- | Render an attribute value from 'Text' without escaping.
---
-preEscapedTextValue :: Text            -- ^ The actual value
-                    -> AttributeValue  -- ^ Resulting attribute value
-preEscapedTextValue = AttributeValue . PreEscaped . Text
-{-# INLINE preEscapedTextValue #-}
-
--- | A variant of 'textValue' for lazy 'LT.Text'
---
-lazyTextValue :: LT.Text         -- ^ The actual value
-              -> AttributeValue  -- ^ Resulting attribute value
-lazyTextValue = mconcat . map textValue . LT.toChunks
-{-# DEPRECATED lazyTextValue "Use Blaze.Html.toValue" #-}
-{-# INLINE lazyTextValue #-}
-
--- | A variant of 'preEscapedTextValue' for lazy 'LT.Text'
---
-preEscapedLazyTextValue :: LT.Text         -- ^ The actual value
-                        -> AttributeValue  -- ^ Resulting attribute value
-preEscapedLazyTextValue = mconcat . map preEscapedTextValue . LT.toChunks
-{-# INLINE preEscapedLazyTextValue #-}
-
--- | Create an attribute value from a 'String'.
---
-stringValue :: String -> AttributeValue
-stringValue = AttributeValue . String
-{-# DEPRECATED stringValue "Use Blaze.Html.toValue" #-}
-{-# INLINE stringValue #-}
-
--- | Create an attribute value from a 'String' without escaping.
---
-preEscapedStringValue :: String -> AttributeValue
-preEscapedStringValue = AttributeValue . PreEscaped . String
-{-# INLINE preEscapedStringValue #-}
-
--- | Create an attribute value from a 'ByteString'. See 'unsafeByteString'
--- for reasons why this might not be a good idea.
---
-unsafeByteStringValue :: ByteString      -- ^ ByteString value
-                      -> AttributeValue  -- ^ Resulting attribute value
-unsafeByteStringValue = AttributeValue . ByteString
-{-# INLINE unsafeByteStringValue #-}
-
--- | Create an attribute value from a lazy 'BL.ByteString'. See
--- 'unsafeByteString' for reasons why this might not be a good idea.
---
-unsafeLazyByteStringValue :: BL.ByteString   -- ^ ByteString value
-                          -> AttributeValue  -- ^ Resulting attribute value
-unsafeLazyByteStringValue = mconcat . map unsafeByteStringValue . BL.toChunks
-{-# INLINE unsafeLazyByteStringValue #-}
-
--- | Used for applying attributes. You should not define your own instances of
--- this class.
-class Attributable h where
-    -- | Apply an attribute to an element.
-    --
-    -- Example:
-    --
-    -- > img ! src "foo.png"
-    --
-    -- Result:
-    --
-    -- > <img src="foo.png" />
-    --
-    -- This can be used on nested elements as well.
-    --
-    -- Example:
-    --
-    -- > p ! style "float: right" $ "Hello!"
-    --
-    -- Result:
-    --
-    -- > <p style="float: right">Hello!</p>
-    --
-    (!) :: h -> Attribute -> h
-
-instance Attributable (HtmlM a) where
-    h ! (Attribute f) = f h
-    {-# INLINE (!) #-}
-
-instance Attributable (HtmlM a -> HtmlM b) where
-    h ! f = (! f) . h
-    {-# INLINE (!) #-}
-
--- | Mark HTML as external data. External data can be:
---
--- * CSS data in a @<style>@ tag;
---
--- * Script data in a @<script>@ tag.
---
--- This function is applied automatically when using the @style@ or @script@
--- combinators.
---
-external :: HtmlM a -> HtmlM a
-external (Content x) = Content $ External x
-external (Append x y) = Append (external x) (external y)
-external (Parent x y z i) = Parent x y z $ external i
-external (AddAttribute x y z i) = AddAttribute x y z $ external i
-external (AddCustomAttribute x y z i) = AddCustomAttribute x y z $ external i
-external x = x
-{-# INLINE external #-}
diff --git a/src/Text/Blaze/Renderer/Pretty.hs b/src/Text/Blaze/Renderer/Pretty.hs
deleted file mode 100644
--- a/src/Text/Blaze/Renderer/Pretty.hs
+++ /dev/null
@@ -1,48 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ >= 704)
-{-# LANGUAGE Trustworthy #-}
-#endif
--- | A renderer that produces pretty HTML, mostly meant for debugging purposes.
---
-module Text.Blaze.Renderer.Pretty
-    ( renderHtml
-    ) where
-
-import Text.Blaze.Internal
-import Text.Blaze.Renderer.String (fromChoiceString)
-
--- | Render some 'Html' to an appending 'String'.
---
-renderString :: Html    -- ^ HTML to render
-             -> String  -- ^ String to append
-             -> String  -- ^ Resulting String
-renderString = go 0 id
-  where
-    go :: Int -> (String -> String) -> HtmlM b -> String -> String
-    go i attrs (Parent _ open close content) =
-        ind i . getString open . attrs . (">\n" ++) . go (inc i) id content
-              . ind i . getString close .  ('\n' :)
-    go i attrs (Leaf _ begin end) =
-        ind i . getString begin . attrs . getString end . ('\n' :)
-    go i attrs (AddAttribute _ key value h) = flip (go i) h $
-        getString key . fromChoiceString value . ('"' :) . attrs
-    go i attrs (AddCustomAttribute _ key value h) = flip (go i) h $
-        fromChoiceString key . fromChoiceString value . ('"' :) . attrs
-    go i _ (Content content) = ind i . fromChoiceString content . ('\n' :)
-    go i attrs (Append h1 h2) = go i attrs h1 . go i attrs h2
-    go _ _ Empty = id
-    {-# NOINLINE go #-}
-
-    -- Increase the indentation
-    inc = (+) 4
-
-    -- Produce appending indentation
-    ind i = (replicate i ' ' ++)
-{-# INLINE renderString #-}
-
--- | Render HTML to a lazy 'String'. The result is prettified.
---
-renderHtml :: Html    -- ^ HTML to render
-           -> String  -- ^ Resulting 'String'.
-renderHtml html = renderString html ""
-{-# INLINE renderHtml #-}
diff --git a/src/Text/Blaze/Renderer/String.hs b/src/Text/Blaze/Renderer/String.hs
deleted file mode 100644
--- a/src/Text/Blaze/Renderer/String.hs
+++ /dev/null
@@ -1,86 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ >= 704)
-{-# LANGUAGE Trustworthy #-}
-#endif
--- | A renderer that produces a native Haskell 'String', mostly meant for
--- debugging purposes.
---
-{-# LANGUAGE OverloadedStrings #-}
-module Text.Blaze.Renderer.String
-    ( fromChoiceString
-    , renderHtml
-    ) where
-
-import Data.List (isInfixOf)
-
-import qualified Data.ByteString.Char8 as SBC
-import qualified Data.Text as T
-import qualified Data.ByteString as S
-
-import Text.Blaze.Internal
-
--- | Escape HTML entities in a string
---
-escapeHtmlEntities :: String  -- ^ String to escape
-                   -> String  -- ^ String to append
-                   -> String  -- ^ Resulting string
-escapeHtmlEntities []     k = k
-escapeHtmlEntities (c:cs) k = case c of
-    '<'  -> '&' : 'l' : 't' : ';'             : escapeHtmlEntities cs k
-    '>'  -> '&' : 'g' : 't' : ';'             : escapeHtmlEntities cs k
-    '&'  -> '&' : 'a' : 'm' : 'p' : ';'       : escapeHtmlEntities cs k
-    '"'  -> '&' : 'q' : 'u' : 'o' : 't' : ';' : escapeHtmlEntities cs k
-    '\'' -> '&' : '#' : '3' : '9' : ';'       : escapeHtmlEntities cs k
-    x    -> x                                 : escapeHtmlEntities cs k
-
--- | Render a 'ChoiceString'.
---
-fromChoiceString :: ChoiceString  -- ^ String to render
-                 -> String        -- ^ String to append
-                 -> String        -- ^ Resulting string
-fromChoiceString (Static s)     = getString s
-fromChoiceString (String s)     = escapeHtmlEntities s
-fromChoiceString (Text s)       = escapeHtmlEntities $ T.unpack s
-fromChoiceString (ByteString s) = (SBC.unpack s ++)
-fromChoiceString (PreEscaped x) = case x of
-    String s -> (s ++)
-    Text   s -> (\k -> T.foldr (:) k s)
-    s        -> fromChoiceString s
-fromChoiceString (External x) = case x of
-    -- Check that the sequence "</" is *not* in the external data.
-    String s     -> if "</" `isInfixOf` s then id else (s ++)
-    Text   s     -> if "</" `T.isInfixOf` s then id else (\k -> T.foldr (:) k s)
-    ByteString s -> if "</" `S.isInfixOf` s then id else (SBC.unpack s ++)
-    s            -> fromChoiceString s
-fromChoiceString (AppendChoiceString x y) =
-    fromChoiceString x . fromChoiceString y
-fromChoiceString EmptyChoiceString = id
-{-# INLINE fromChoiceString #-}
-
--- | Render some 'Html' to an appending 'String'.
---
-renderString :: Html    -- ^ HTML to render
-             -> String  -- ^ String to append
-             -> String  -- ^ Resulting String
-renderString = go id 
-  where
-    go :: (String -> String) -> HtmlM b -> String -> String
-    go attrs (Parent _ open close content) =
-        getString open . attrs . ('>' :) . go id content . getString close
-    go attrs (Leaf _ begin end) = getString begin . attrs . getString end
-    go attrs (AddAttribute _ key value h) = flip go h $
-        getString key . fromChoiceString value . ('"' :) . attrs
-    go attrs (AddCustomAttribute _ key value h) = flip go h $
-        fromChoiceString key . fromChoiceString value . ('"' :) . attrs
-    go _ (Content content) = fromChoiceString content
-    go attrs (Append h1 h2) = go attrs h1 . go attrs h2
-    go _ Empty = id
-    {-# NOINLINE go #-}
-{-# INLINE renderString #-}
-
--- | Render HTML to a lazy 'String'.
---
-renderHtml :: Html    -- ^ HTML to render
-           -> String  -- ^ Resulting 'String'
-renderHtml html = renderString html ""
-{-# INLINE renderHtml #-}
diff --git a/src/Text/Blaze/Renderer/Text.hs b/src/Text/Blaze/Renderer/Text.hs
deleted file mode 100644
--- a/src/Text/Blaze/Renderer/Text.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ >= 704)
-{-# LANGUAGE Trustworthy #-}
-#endif
-{-# LANGUAGE OverloadedStrings #-}
--- | A renderer that produces a lazy 'L.Text' value, using the Text Builder.
---
-module Text.Blaze.Renderer.Text
-    ( renderHtmlBuilder
-    , renderHtmlBuilderWith
-    , renderHtml
-    , renderHtmlWith
-    ) where
-
-import Data.Monoid (mappend, mempty)
-import Data.List (isInfixOf)
-
-import Data.Text (Text)
-import qualified Data.Text as T
-import Data.Text.Encoding (decodeUtf8)
-import qualified Data.Text.Lazy as L
-import Data.ByteString (ByteString)
-import qualified Data.ByteString as S (isInfixOf)
-
-import Text.Blaze.Internal
-import Data.Text.Lazy.Builder (Builder)
-import qualified Data.Text.Lazy.Builder as B
-
--- | Escape HTML entities in a text value
---
-escapeHtmlEntities :: Text     -- ^ Text to escape
-                   -> Builder  -- ^ Resulting text builder
-escapeHtmlEntities = T.foldr escape mempty
-  where
-    escape :: Char -> Builder -> Builder
-    escape '<'  b = B.fromText "&lt;"   `mappend` b
-    escape '>'  b = B.fromText "&gt;"   `mappend` b
-    escape '&'  b = B.fromText "&amp;"  `mappend` b
-    escape '"'  b = B.fromText "&quot;" `mappend` b
-    escape '\'' b = B.fromText "&#39;"  `mappend` b
-    escape x    b = B.singleton x       `mappend` b
-
--- | Render a 'ChoiceString'. TODO: Optimization possibility, apply static
--- argument transformation.
---
-fromChoiceString :: (ByteString -> Text)  -- ^ Decoder for bytestrings
-                 -> ChoiceString          -- ^ String to render
-                 -> Builder               -- ^ Resulting builder
-fromChoiceString _ (Static s)     = B.fromText $ getText s
-fromChoiceString _ (String s)     = escapeHtmlEntities $ T.pack s
-fromChoiceString _ (Text s)       = escapeHtmlEntities s
-fromChoiceString d (ByteString s) = B.fromText $ d s
-fromChoiceString d (PreEscaped x) = case x of
-    String s -> B.fromText $ T.pack s
-    Text   s -> B.fromText s
-    s        -> fromChoiceString d s
-fromChoiceString d (External x) = case x of
-    -- Check that the sequence "</" is *not* in the external data.
-    String s     -> if "</" `isInfixOf` s then mempty else B.fromText (T.pack s)
-    Text   s     -> if "</" `T.isInfixOf` s then mempty else B.fromText s
-    ByteString s -> if "</" `S.isInfixOf` s then mempty else B.fromText (d s)
-    s            -> fromChoiceString d s
-fromChoiceString d (AppendChoiceString x y) =
-    fromChoiceString d x `mappend` fromChoiceString d y
-fromChoiceString _ EmptyChoiceString = mempty
-{-# INLINE fromChoiceString #-}
-
--- | Render HTML to a text builder
-renderHtmlBuilder :: Html
-                  -> Builder
-renderHtmlBuilder = renderHtmlBuilderWith decodeUtf8
-{-# INLINE renderHtmlBuilder #-}
-
--- | Render some 'Html' to a Text 'Builder'.
---
-renderHtmlBuilderWith :: (ByteString -> Text)  -- ^ Decoder for bytestrings
-                      -> Html                  -- ^ HTML to render
-                      -> Builder               -- ^ Resulting builder
-renderHtmlBuilderWith d = go mempty
-  where
-    go :: Builder -> HtmlM b -> Builder
-    go attrs (Parent _ open close content) =
-        B.fromText (getText open)
-            `mappend` attrs
-            `mappend` B.singleton '>'
-            `mappend` go mempty content
-            `mappend` B.fromText (getText close)
-    go attrs (Leaf _ begin end) =
-        B.fromText (getText begin)
-            `mappend` attrs
-            `mappend` B.fromText (getText end)
-    go attrs (AddAttribute _ key value h) =
-        go (B.fromText (getText key)
-            `mappend` fromChoiceString d value
-            `mappend` B.singleton '"'
-            `mappend` attrs) h
-    go attrs (AddCustomAttribute _ key value h) =
-        go (fromChoiceString d key
-            `mappend` fromChoiceString d value
-            `mappend` B.singleton '"'
-            `mappend` attrs) h
-    go _ (Content content)  = fromChoiceString d content
-    go attrs (Append h1 h2) = go attrs h1 `mappend` go attrs h2
-    go _ Empty              = mempty
-    {-# NOINLINE go #-}
-{-# INLINE renderHtmlBuilderWith #-}
-
--- | Render HTML to a lazy Text value. If there are any ByteString's in the
--- input HTML, this function will consider them as UTF-8 encoded values and
--- decode them that way.
---
-renderHtml :: Html    -- ^ HTML to render
-           -> L.Text  -- ^ Resulting 'L.Text'
-renderHtml = renderHtmlWith decodeUtf8
-{-# INLINE renderHtml #-}
-
--- | Render HTML to a lazy Text value. This function allows you to specify what
--- should happen with ByteString's in the input HTML. You can decode them or
--- drop them, this depends on the application...
---
-renderHtmlWith :: (ByteString -> Text)  -- ^ Decoder for ByteString's.
-               -> Html                  -- ^ HTML to render
-               -> L.Text                -- Resulting lazy text
-renderHtmlWith d = B.toLazyText . renderHtmlBuilderWith d
diff --git a/src/Text/Blaze/Renderer/Utf8.hs b/src/Text/Blaze/Renderer/Utf8.hs
deleted file mode 100644
--- a/src/Text/Blaze/Renderer/Utf8.hs
+++ /dev/null
@@ -1,95 +0,0 @@
-{-# LANGUAGE CPP #-}
-#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ >= 704)
-{-# LANGUAGE Trustworthy #-}
-#endif
-{-# LANGUAGE OverloadedStrings #-}
-module Text.Blaze.Renderer.Utf8
-    ( renderHtmlBuilder
-    , renderHtml
-    , renderHtmlToByteStringIO
-    ) where
-
-import Data.Monoid (mappend, mempty)
-import Data.List (isInfixOf)
-
-import qualified Data.ByteString.Lazy as L
-import qualified Data.Text as T (isInfixOf)
-import qualified Data.ByteString as S (ByteString, isInfixOf)
-
-import Text.Blaze.Internal
-import Blaze.ByteString.Builder (Builder)
-import qualified Blaze.ByteString.Builder           as B
-import qualified Blaze.ByteString.Builder.Html.Utf8 as B
-
--- | Render a 'ChoiceString'.
---
-fromChoiceString :: ChoiceString  -- ^ String to render
-                 -> Builder       -- ^ Resulting builder
-fromChoiceString (Static s)     = B.copyByteString $ getUtf8ByteString s
-fromChoiceString (String s)     = B.fromHtmlEscapedString s
-fromChoiceString (Text s)       = B.fromHtmlEscapedText s
-fromChoiceString (ByteString s) = B.fromByteString s
-fromChoiceString (PreEscaped x) = case x of
-    String s -> B.fromString s
-    Text   s -> B.fromText s
-    s        -> fromChoiceString s
-fromChoiceString (External x) = case x of
-    -- Check that the sequence "</" is *not* in the external data.
-    String s     -> if "</" `isInfixOf` s then mempty else B.fromString s
-    Text   s     -> if "</" `T.isInfixOf` s then mempty else B.fromText s
-    ByteString s -> if "</" `S.isInfixOf` s then mempty else B.fromByteString s
-    s            -> fromChoiceString s
-fromChoiceString (AppendChoiceString x y) =
-    fromChoiceString x `mappend` fromChoiceString y
-fromChoiceString EmptyChoiceString = mempty
-{-# INLINE fromChoiceString #-}
-
--- | Render some 'Html' to a 'Builder'.
---
-renderHtmlBuilder :: Html     -- ^ HTML to render
-                  -> Builder  -- ^ Resulting builder
-renderHtmlBuilder = go mempty
-  where
-    go :: Builder -> HtmlM b -> Builder
-    go attrs (Parent _ open close content) =
-        B.copyByteString (getUtf8ByteString open)
-            `mappend` attrs
-            `mappend` B.fromChar '>'
-            `mappend` go mempty content
-            `mappend` B.copyByteString (getUtf8ByteString close)
-    go attrs (Leaf _ begin end) =
-        B.copyByteString (getUtf8ByteString begin)
-            `mappend` attrs
-            `mappend` B.copyByteString (getUtf8ByteString end)
-    go attrs (AddAttribute _ key value h) =
-        go (B.copyByteString (getUtf8ByteString key)
-            `mappend` fromChoiceString value
-            `mappend` B.fromChar '"'
-            `mappend` attrs) h
-    go attrs (AddCustomAttribute _ key value h) =
-        go (fromChoiceString key
-            `mappend` fromChoiceString value
-            `mappend` B.fromChar '"'
-            `mappend` attrs) h
-    go _ (Content content)  = fromChoiceString content
-    go attrs (Append h1 h2) = go attrs h1 `mappend` go attrs h2
-    go _ Empty              = mempty
-    {-# NOINLINE go #-}
-{-# INLINE renderHtmlBuilder #-}
-
--- | Render HTML to a lazy UTF-8 encoded 'L.ByteString.'
---
-renderHtml :: Html          -- ^ HTML to render
-           -> L.ByteString  -- ^ Resulting 'L.ByteString'
-renderHtml = B.toLazyByteString . renderHtmlBuilder
-{-# INLINE renderHtml #-}
-
--- | Repeatedly render HTML to a buffer and process this buffer using the given
--- IO action.
---
-renderHtmlToByteStringIO :: (S.ByteString -> IO ())
-                                          -- ^ IO action to execute per rendered buffer
-                         -> Html          -- ^ HTML to render
-                         -> IO ()         -- ^ Resulting IO action
-renderHtmlToByteStringIO io = B.toByteStringIO io . renderHtmlBuilder
-{-# INLINE renderHtmlToByteStringIO #-}
diff --git a/src/Text/Blaze/XHtml1/FrameSet.hs b/src/Text/Blaze/XHtml1/FrameSet.hs
--- a/src/Text/Blaze/XHtml1/FrameSet.hs
+++ b/src/Text/Blaze/XHtml1/FrameSet.hs
@@ -1,11 +1,11 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:69
+-- src/Util/GenerateHtmlCombinators.hs:70
 --
 {-# LANGUAGE OverloadedStrings #-}
 -- | This module exports HTML combinators used to create documents.
 --
 module Text.Blaze.XHtml1.FrameSet
-    ( module Text.Blaze
+    ( module Text.Blaze.Html
     , docType
     , docTypeHtml
     , a
@@ -100,15 +100,16 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:77
+-- src/Util/GenerateHtmlCombinators.hs:78
 --
 import Prelude ((>>), (.))
 
 import Text.Blaze
 import Text.Blaze.Internal
+import Text.Blaze.Html
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:155
+-- src/Util/GenerateHtmlCombinators.hs:157
 --
 -- | Combinator for the document type. This should be placed at the top
 -- of every HTML page.
@@ -127,14 +128,14 @@
 {-# INLINE docType #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:176
+-- src/Util/GenerateHtmlCombinators.hs:178
 --
 -- | Combinator for the @\<html>@ element. This combinator will also
 -- insert the correct doctype.
 --
 -- Example:
 --
--- > docTypeHtml $ span $ text "foo"
+-- > docTypeHtml $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -148,13 +149,13 @@
 {-# INLINE docTypeHtml #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<a>@ element.
 --
 -- Example:
 --
--- > a $ span $ text "foo"
+-- > a $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -166,13 +167,13 @@
 {-# INLINE a #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<abbr>@ element.
 --
 -- Example:
 --
--- > abbr $ span $ text "foo"
+-- > abbr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -184,13 +185,13 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<acronym>@ element.
 --
 -- Example:
 --
--- > acronym $ span $ text "foo"
+-- > acronym $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -202,13 +203,13 @@
 {-# INLINE acronym #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<address>@ element.
 --
 -- Example:
 --
--- > address $ span $ text "foo"
+-- > address $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -220,13 +221,13 @@
 {-# INLINE address #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<applet>@ element.
 --
 -- Example:
 --
--- > applet $ span $ text "foo"
+-- > applet $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -238,7 +239,7 @@
 {-# INLINE applet #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<area />@ element.
 --
@@ -251,17 +252,17 @@
 -- > <area />
 --
 area :: Html  -- ^ Resulting HTML.
-area = Leaf "area" "<area" " />"
+area = Leaf "area" "<area" " />" ()
 {-# INLINE area #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<b>@ element.
 --
 -- Example:
 --
--- > b $ span $ text "foo"
+-- > b $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -273,7 +274,7 @@
 {-# INLINE b #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<basefont />@ element.
 --
@@ -286,17 +287,17 @@
 -- > <basefont />
 --
 basefont :: Html  -- ^ Resulting HTML.
-basefont = Leaf "basefont" "<basefont" " />"
+basefont = Leaf "basefont" "<basefont" " />" ()
 {-# INLINE basefont #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<bdo>@ element.
 --
 -- Example:
 --
--- > bdo $ span $ text "foo"
+-- > bdo $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -308,13 +309,13 @@
 {-# INLINE bdo #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<big>@ element.
 --
 -- Example:
 --
--- > big $ span $ text "foo"
+-- > big $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -326,13 +327,13 @@
 {-# INLINE big #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<blockquote>@ element.
 --
 -- Example:
 --
--- > blockquote $ span $ text "foo"
+-- > blockquote $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -344,13 +345,13 @@
 {-# INLINE blockquote #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<body>@ element.
 --
 -- Example:
 --
--- > body $ span $ text "foo"
+-- > body $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -362,7 +363,7 @@
 {-# INLINE body #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<br />@ element.
 --
@@ -375,17 +376,17 @@
 -- > <br />
 --
 br :: Html  -- ^ Resulting HTML.
-br = Leaf "br" "<br" " />"
+br = Leaf "br" "<br" " />" ()
 {-# INLINE br #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<button>@ element.
 --
 -- Example:
 --
--- > button $ span $ text "foo"
+-- > button $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -397,13 +398,13 @@
 {-# INLINE button #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<caption>@ element.
 --
 -- Example:
 --
--- > caption $ span $ text "foo"
+-- > caption $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -415,13 +416,13 @@
 {-# INLINE caption #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<center>@ element.
 --
 -- Example:
 --
--- > center $ span $ text "foo"
+-- > center $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -433,13 +434,13 @@
 {-# INLINE center #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<cite>@ element.
 --
 -- Example:
 --
--- > cite $ span $ text "foo"
+-- > cite $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -451,13 +452,13 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<code>@ element.
 --
 -- Example:
 --
--- > code $ span $ text "foo"
+-- > code $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -469,7 +470,7 @@
 {-# INLINE code #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<col />@ element.
 --
@@ -482,17 +483,17 @@
 -- > <col />
 --
 col :: Html  -- ^ Resulting HTML.
-col = Leaf "col" "<col" " />"
+col = Leaf "col" "<col" " />" ()
 {-# INLINE col #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<colgroup>@ element.
 --
 -- Example:
 --
--- > colgroup $ span $ text "foo"
+-- > colgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -504,13 +505,13 @@
 {-# INLINE colgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dd>@ element.
 --
 -- Example:
 --
--- > dd $ span $ text "foo"
+-- > dd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -522,13 +523,13 @@
 {-# INLINE dd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<del>@ element.
 --
 -- Example:
 --
--- > del $ span $ text "foo"
+-- > del $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -540,13 +541,13 @@
 {-# INLINE del #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dfn>@ element.
 --
 -- Example:
 --
--- > dfn $ span $ text "foo"
+-- > dfn $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -558,13 +559,13 @@
 {-# INLINE dfn #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dir>@ element.
 --
 -- Example:
 --
--- > dir $ span $ text "foo"
+-- > dir $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -576,13 +577,13 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<div>@ element.
 --
 -- Example:
 --
--- > div $ span $ text "foo"
+-- > div $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -594,13 +595,13 @@
 {-# INLINE div #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dl>@ element.
 --
 -- Example:
 --
--- > dl $ span $ text "foo"
+-- > dl $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -612,13 +613,13 @@
 {-# INLINE dl #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dt>@ element.
 --
 -- Example:
 --
--- > dt $ span $ text "foo"
+-- > dt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -630,13 +631,13 @@
 {-# INLINE dt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<em>@ element.
 --
 -- Example:
 --
--- > em $ span $ text "foo"
+-- > em $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -648,13 +649,13 @@
 {-# INLINE em #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<fieldset>@ element.
 --
 -- Example:
 --
--- > fieldset $ span $ text "foo"
+-- > fieldset $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -666,13 +667,13 @@
 {-# INLINE fieldset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<font>@ element.
 --
 -- Example:
 --
--- > font $ span $ text "foo"
+-- > font $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -684,13 +685,13 @@
 {-# INLINE font #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<form>@ element.
 --
 -- Example:
 --
--- > form $ span $ text "foo"
+-- > form $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -702,7 +703,7 @@
 {-# INLINE form #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<frame />@ element.
 --
@@ -715,17 +716,17 @@
 -- > <frame />
 --
 frame :: Html  -- ^ Resulting HTML.
-frame = Leaf "frame" "<frame" " />"
+frame = Leaf "frame" "<frame" " />" ()
 {-# INLINE frame #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<frameset>@ element.
 --
 -- Example:
 --
--- > frameset $ span $ text "foo"
+-- > frameset $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -737,13 +738,13 @@
 {-# INLINE frameset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h1>@ element.
 --
 -- Example:
 --
--- > h1 $ span $ text "foo"
+-- > h1 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -755,13 +756,13 @@
 {-# INLINE h1 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h2>@ element.
 --
 -- Example:
 --
--- > h2 $ span $ text "foo"
+-- > h2 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -773,13 +774,13 @@
 {-# INLINE h2 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h3>@ element.
 --
 -- Example:
 --
--- > h3 $ span $ text "foo"
+-- > h3 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -791,13 +792,13 @@
 {-# INLINE h3 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h4>@ element.
 --
 -- Example:
 --
--- > h4 $ span $ text "foo"
+-- > h4 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -809,13 +810,13 @@
 {-# INLINE h4 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h5>@ element.
 --
 -- Example:
 --
--- > h5 $ span $ text "foo"
+-- > h5 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -827,13 +828,13 @@
 {-# INLINE h5 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h6>@ element.
 --
 -- Example:
 --
--- > h6 $ span $ text "foo"
+-- > h6 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -845,13 +846,13 @@
 {-# INLINE h6 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<head>@ element.
 --
 -- Example:
 --
--- > head $ span $ text "foo"
+-- > head $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -863,7 +864,7 @@
 {-# INLINE head #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<hr />@ element.
 --
@@ -876,17 +877,17 @@
 -- > <hr />
 --
 hr :: Html  -- ^ Resulting HTML.
-hr = Leaf "hr" "<hr" " />"
+hr = Leaf "hr" "<hr" " />" ()
 {-# INLINE hr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<html>@ element.
 --
 -- Example:
 --
--- > html $ span $ text "foo"
+-- > html $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -898,13 +899,13 @@
 {-# INLINE html #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<i>@ element.
 --
 -- Example:
 --
--- > i $ span $ text "foo"
+-- > i $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -916,13 +917,13 @@
 {-# INLINE i #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<iframe>@ element.
 --
 -- Example:
 --
--- > iframe $ span $ text "foo"
+-- > iframe $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -934,7 +935,7 @@
 {-# INLINE iframe #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<img />@ element.
 --
@@ -947,11 +948,11 @@
 -- > <img />
 --
 img :: Html  -- ^ Resulting HTML.
-img = Leaf "img" "<img" " />"
+img = Leaf "img" "<img" " />" ()
 {-# INLINE img #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<input />@ element.
 --
@@ -964,17 +965,17 @@
 -- > <input />
 --
 input :: Html  -- ^ Resulting HTML.
-input = Leaf "input" "<input" " />"
+input = Leaf "input" "<input" " />" ()
 {-# INLINE input #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ins>@ element.
 --
 -- Example:
 --
--- > ins $ span $ text "foo"
+-- > ins $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -986,13 +987,13 @@
 {-# INLINE ins #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<isindex>@ element.
 --
 -- Example:
 --
--- > isindex $ span $ text "foo"
+-- > isindex $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1004,13 +1005,13 @@
 {-# INLINE isindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<kbd>@ element.
 --
 -- Example:
 --
--- > kbd $ span $ text "foo"
+-- > kbd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1022,13 +1023,13 @@
 {-# INLINE kbd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<label>@ element.
 --
 -- Example:
 --
--- > label $ span $ text "foo"
+-- > label $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1040,13 +1041,13 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<legend>@ element.
 --
 -- Example:
 --
--- > legend $ span $ text "foo"
+-- > legend $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1058,13 +1059,13 @@
 {-# INLINE legend #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<li>@ element.
 --
 -- Example:
 --
--- > li $ span $ text "foo"
+-- > li $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1076,7 +1077,7 @@
 {-# INLINE li #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<link />@ element.
 --
@@ -1089,17 +1090,17 @@
 -- > <link />
 --
 link :: Html  -- ^ Resulting HTML.
-link = Leaf "link" "<link" " />"
+link = Leaf "link" "<link" " />" ()
 {-# INLINE link #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<map>@ element.
 --
 -- Example:
 --
--- > map $ span $ text "foo"
+-- > map $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1111,13 +1112,13 @@
 {-# INLINE map #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<menu>@ element.
 --
 -- Example:
 --
--- > menu $ span $ text "foo"
+-- > menu $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1129,7 +1130,7 @@
 {-# INLINE menu #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<meta />@ element.
 --
@@ -1142,17 +1143,17 @@
 -- > <meta />
 --
 meta :: Html  -- ^ Resulting HTML.
-meta = Leaf "meta" "<meta" " />"
+meta = Leaf "meta" "<meta" " />" ()
 {-# INLINE meta #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noframes>@ element.
 --
 -- Example:
 --
--- > noframes $ span $ text "foo"
+-- > noframes $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1164,13 +1165,13 @@
 {-# INLINE noframes #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noscript>@ element.
 --
 -- Example:
 --
--- > noscript $ span $ text "foo"
+-- > noscript $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1182,13 +1183,13 @@
 {-# INLINE noscript #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<object>@ element.
 --
 -- Example:
 --
--- > object $ span $ text "foo"
+-- > object $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1200,13 +1201,13 @@
 {-# INLINE object #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ol>@ element.
 --
 -- Example:
 --
--- > ol $ span $ text "foo"
+-- > ol $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1218,13 +1219,13 @@
 {-# INLINE ol #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<optgroup>@ element.
 --
 -- Example:
 --
--- > optgroup $ span $ text "foo"
+-- > optgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1236,13 +1237,13 @@
 {-# INLINE optgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<option>@ element.
 --
 -- Example:
 --
--- > option $ span $ text "foo"
+-- > option $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1254,13 +1255,13 @@
 {-# INLINE option #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<p>@ element.
 --
 -- Example:
 --
--- > p $ span $ text "foo"
+-- > p $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1272,7 +1273,7 @@
 {-# INLINE p #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<param />@ element.
 --
@@ -1285,17 +1286,17 @@
 -- > <param />
 --
 param :: Html  -- ^ Resulting HTML.
-param = Leaf "param" "<param" " />"
+param = Leaf "param" "<param" " />" ()
 {-# INLINE param #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<pre>@ element.
 --
 -- Example:
 --
--- > pre $ span $ text "foo"
+-- > pre $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1307,13 +1308,13 @@
 {-# INLINE pre #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<q>@ element.
 --
 -- Example:
 --
--- > q $ span $ text "foo"
+-- > q $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1325,13 +1326,13 @@
 {-# INLINE q #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<s>@ element.
 --
 -- Example:
 --
--- > s $ span $ text "foo"
+-- > s $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1343,13 +1344,13 @@
 {-# INLINE s #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<samp>@ element.
 --
 -- Example:
 --
--- > samp $ span $ text "foo"
+-- > samp $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1361,13 +1362,13 @@
 {-# INLINE samp #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<script>@ element.
 --
 -- Example:
 --
--- > script $ span $ text "foo"
+-- > script $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1379,13 +1380,13 @@
 {-# INLINE script #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<select>@ element.
 --
 -- Example:
 --
--- > select $ span $ text "foo"
+-- > select $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1397,13 +1398,13 @@
 {-# INLINE select #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<small>@ element.
 --
 -- Example:
 --
--- > small $ span $ text "foo"
+-- > small $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1415,13 +1416,13 @@
 {-# INLINE small #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<span>@ element.
 --
 -- Example:
 --
--- > span $ span $ text "foo"
+-- > span $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1433,13 +1434,13 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<strong>@ element.
 --
 -- Example:
 --
--- > strong $ span $ text "foo"
+-- > strong $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1451,13 +1452,13 @@
 {-# INLINE strong #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<style>@ element.
 --
 -- Example:
 --
--- > style $ span $ text "foo"
+-- > style $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1469,13 +1470,13 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sub>@ element.
 --
 -- Example:
 --
--- > sub $ span $ text "foo"
+-- > sub $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1487,13 +1488,13 @@
 {-# INLINE sub #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sup>@ element.
 --
 -- Example:
 --
--- > sup $ span $ text "foo"
+-- > sup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1505,13 +1506,13 @@
 {-# INLINE sup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<table>@ element.
 --
 -- Example:
 --
--- > table $ span $ text "foo"
+-- > table $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1523,13 +1524,13 @@
 {-# INLINE table #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tbody>@ element.
 --
 -- Example:
 --
--- > tbody $ span $ text "foo"
+-- > tbody $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1541,13 +1542,13 @@
 {-# INLINE tbody #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<td>@ element.
 --
 -- Example:
 --
--- > td $ span $ text "foo"
+-- > td $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1559,13 +1560,13 @@
 {-# INLINE td #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<textarea>@ element.
 --
 -- Example:
 --
--- > textarea $ span $ text "foo"
+-- > textarea $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1577,13 +1578,13 @@
 {-# INLINE textarea #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tfoot>@ element.
 --
 -- Example:
 --
--- > tfoot $ span $ text "foo"
+-- > tfoot $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1595,13 +1596,13 @@
 {-# INLINE tfoot #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<th>@ element.
 --
 -- Example:
 --
--- > th $ span $ text "foo"
+-- > th $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1613,13 +1614,13 @@
 {-# INLINE th #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<thead>@ element.
 --
 -- Example:
 --
--- > thead $ span $ text "foo"
+-- > thead $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1631,13 +1632,13 @@
 {-# INLINE thead #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<title>@ element.
 --
 -- Example:
 --
--- > title $ span $ text "foo"
+-- > title $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1649,13 +1650,13 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tr>@ element.
 --
 -- Example:
 --
--- > tr $ span $ text "foo"
+-- > tr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1667,13 +1668,13 @@
 {-# INLINE tr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tt>@ element.
 --
 -- Example:
 --
--- > tt $ span $ text "foo"
+-- > tt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1685,13 +1686,13 @@
 {-# INLINE tt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<u>@ element.
 --
 -- Example:
 --
--- > u $ span $ text "foo"
+-- > u $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1703,13 +1704,13 @@
 {-# INLINE u #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ul>@ element.
 --
 -- Example:
 --
--- > ul $ span $ text "foo"
+-- > ul $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1721,13 +1722,13 @@
 {-# INLINE ul #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<var>@ element.
 --
 -- Example:
 --
--- > var $ span $ text "foo"
+-- > var $ span $ toHtml "foo"
 --
 -- Result:
 --
diff --git a/src/Text/Blaze/XHtml1/FrameSet/Attributes.hs b/src/Text/Blaze/XHtml1/FrameSet/Attributes.hs
--- a/src/Text/Blaze/XHtml1/FrameSet/Attributes.hs
+++ b/src/Text/Blaze/XHtml1/FrameSet/Attributes.hs
@@ -1,5 +1,5 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:92
+-- src/Util/GenerateHtmlCombinators.hs:94
 --
 -- | This module exports combinators that provide you with the
 -- ability to set attributes on HTML elements.
@@ -113,14 +113,14 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:98
+-- src/Util/GenerateHtmlCombinators.hs:100
 --
 import Prelude ()
 
 import Text.Blaze.Internal (Attribute, AttributeValue, attribute)
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @abbr@ attribute.
 --
@@ -138,7 +138,7 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accept@ attribute.
 --
@@ -156,7 +156,7 @@
 {-# INLINE accept #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accesskey@ attribute.
 --
@@ -174,7 +174,7 @@
 {-# INLINE accesskey #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @action@ attribute.
 --
@@ -192,7 +192,7 @@
 {-# INLINE action #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @align@ attribute.
 --
@@ -210,7 +210,7 @@
 {-# INLINE align #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @alt@ attribute.
 --
@@ -228,7 +228,7 @@
 {-# INLINE alt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @archive@ attribute.
 --
@@ -246,7 +246,7 @@
 {-# INLINE archive #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @axis@ attribute.
 --
@@ -264,7 +264,7 @@
 {-# INLINE axis #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @background@ attribute.
 --
@@ -282,7 +282,7 @@
 {-# INLINE background #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @bgcolor@ attribute.
 --
@@ -300,7 +300,7 @@
 {-# INLINE bgcolor #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @border@ attribute.
 --
@@ -318,7 +318,7 @@
 {-# INLINE border #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellpadding@ attribute.
 --
@@ -336,7 +336,7 @@
 {-# INLINE cellpadding #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellspacing@ attribute.
 --
@@ -354,7 +354,7 @@
 {-# INLINE cellspacing #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @char@ attribute.
 --
@@ -372,7 +372,7 @@
 {-# INLINE char #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charoff@ attribute.
 --
@@ -390,7 +390,7 @@
 {-# INLINE charoff #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charset@ attribute.
 --
@@ -408,7 +408,7 @@
 {-# INLINE charset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @checked@ attribute.
 --
@@ -426,7 +426,7 @@
 {-# INLINE checked #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cite@ attribute.
 --
@@ -444,7 +444,7 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @class@ attribute.
 --
@@ -462,7 +462,7 @@
 {-# INLINE class_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @classid@ attribute.
 --
@@ -480,7 +480,7 @@
 {-# INLINE classid #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @clear@ attribute.
 --
@@ -498,7 +498,7 @@
 {-# INLINE clear #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codebase@ attribute.
 --
@@ -516,7 +516,7 @@
 {-# INLINE codebase #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codetype@ attribute.
 --
@@ -534,7 +534,7 @@
 {-# INLINE codetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cols@ attribute.
 --
@@ -552,7 +552,7 @@
 {-# INLINE cols #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @colspan@ attribute.
 --
@@ -570,7 +570,7 @@
 {-# INLINE colspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @compact@ attribute.
 --
@@ -588,7 +588,7 @@
 {-# INLINE compact #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @content@ attribute.
 --
@@ -606,7 +606,7 @@
 {-# INLINE content #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @coords@ attribute.
 --
@@ -624,7 +624,7 @@
 {-# INLINE coords #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @data@ attribute.
 --
@@ -642,7 +642,7 @@
 {-# INLINE data_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @datetime@ attribute.
 --
@@ -660,7 +660,7 @@
 {-# INLINE datetime #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @declare@ attribute.
 --
@@ -678,7 +678,7 @@
 {-# INLINE declare #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @defer@ attribute.
 --
@@ -696,7 +696,7 @@
 {-# INLINE defer #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @dir@ attribute.
 --
@@ -714,7 +714,7 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @disabled@ attribute.
 --
@@ -732,7 +732,7 @@
 {-# INLINE disabled #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @enctype@ attribute.
 --
@@ -750,7 +750,7 @@
 {-# INLINE enctype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @for@ attribute.
 --
@@ -768,7 +768,7 @@
 {-# INLINE for #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @frame@ attribute.
 --
@@ -786,7 +786,7 @@
 {-# INLINE frame #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @frameborder@ attribute.
 --
@@ -804,7 +804,7 @@
 {-# INLINE frameborder #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @headers@ attribute.
 --
@@ -822,7 +822,7 @@
 {-# INLINE headers #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @height@ attribute.
 --
@@ -840,7 +840,7 @@
 {-# INLINE height #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @href@ attribute.
 --
@@ -858,7 +858,7 @@
 {-# INLINE href #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hreflang@ attribute.
 --
@@ -876,7 +876,7 @@
 {-# INLINE hreflang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hspace@ attribute.
 --
@@ -894,7 +894,7 @@
 {-# INLINE hspace #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @http-equiv@ attribute.
 --
@@ -912,7 +912,7 @@
 {-# INLINE httpEquiv #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @id@ attribute.
 --
@@ -930,7 +930,7 @@
 {-# INLINE id #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @label@ attribute.
 --
@@ -948,7 +948,7 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @lang@ attribute.
 --
@@ -966,7 +966,7 @@
 {-# INLINE lang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @language@ attribute.
 --
@@ -984,7 +984,7 @@
 {-# INLINE language #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @maxlength@ attribute.
 --
@@ -1002,7 +1002,7 @@
 {-# INLINE maxlength #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @media@ attribute.
 --
@@ -1020,7 +1020,7 @@
 {-# INLINE media #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @method@ attribute.
 --
@@ -1038,7 +1038,7 @@
 {-# INLINE method #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @multiple@ attribute.
 --
@@ -1056,7 +1056,7 @@
 {-# INLINE multiple #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @name@ attribute.
 --
@@ -1074,7 +1074,7 @@
 {-# INLINE name #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @nohref@ attribute.
 --
@@ -1092,7 +1092,7 @@
 {-# INLINE nohref #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @noshade@ attribute.
 --
@@ -1110,7 +1110,7 @@
 {-# INLINE noshade #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @nowrap@ attribute.
 --
@@ -1128,7 +1128,7 @@
 {-# INLINE nowrap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onabort@ attribute.
 --
@@ -1146,7 +1146,7 @@
 {-# INLINE onabort #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onblur@ attribute.
 --
@@ -1164,7 +1164,7 @@
 {-# INLINE onblur #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onchange@ attribute.
 --
@@ -1182,7 +1182,7 @@
 {-# INLINE onchange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onclick@ attribute.
 --
@@ -1200,7 +1200,7 @@
 {-# INLINE onclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondblclick@ attribute.
 --
@@ -1218,7 +1218,7 @@
 {-# INLINE ondblclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onfocus@ attribute.
 --
@@ -1236,7 +1236,7 @@
 {-# INLINE onfocus #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeydown@ attribute.
 --
@@ -1254,7 +1254,7 @@
 {-# INLINE onkeydown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeypress@ attribute.
 --
@@ -1272,7 +1272,7 @@
 {-# INLINE onkeypress #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeyup@ attribute.
 --
@@ -1290,7 +1290,7 @@
 {-# INLINE onkeyup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onload@ attribute.
 --
@@ -1308,7 +1308,7 @@
 {-# INLINE onload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousedown@ attribute.
 --
@@ -1326,7 +1326,7 @@
 {-# INLINE onmousedown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousemove@ attribute.
 --
@@ -1344,7 +1344,7 @@
 {-# INLINE onmousemove #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseout@ attribute.
 --
@@ -1362,7 +1362,7 @@
 {-# INLINE onmouseout #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseover@ attribute.
 --
@@ -1380,7 +1380,7 @@
 {-# INLINE onmouseover #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseup@ attribute.
 --
@@ -1398,7 +1398,7 @@
 {-# INLINE onmouseup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onreset@ attribute.
 --
@@ -1416,7 +1416,7 @@
 {-# INLINE onreset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onselect@ attribute.
 --
@@ -1434,7 +1434,7 @@
 {-# INLINE onselect #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onsubmit@ attribute.
 --
@@ -1452,7 +1452,7 @@
 {-# INLINE onsubmit #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onunload@ attribute.
 --
@@ -1470,7 +1470,7 @@
 {-# INLINE onunload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @profile@ attribute.
 --
@@ -1488,7 +1488,7 @@
 {-# INLINE profile #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @readonly@ attribute.
 --
@@ -1506,7 +1506,7 @@
 {-# INLINE readonly #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rel@ attribute.
 --
@@ -1524,7 +1524,7 @@
 {-# INLINE rel #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rev@ attribute.
 --
@@ -1542,7 +1542,7 @@
 {-# INLINE rev #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rows@ attribute.
 --
@@ -1560,7 +1560,7 @@
 {-# INLINE rows #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rowspan@ attribute.
 --
@@ -1578,7 +1578,7 @@
 {-# INLINE rowspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rules@ attribute.
 --
@@ -1596,7 +1596,7 @@
 {-# INLINE rules #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scheme@ attribute.
 --
@@ -1614,7 +1614,7 @@
 {-# INLINE scheme #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scope@ attribute.
 --
@@ -1632,7 +1632,7 @@
 {-# INLINE scope #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scrolling@ attribute.
 --
@@ -1650,7 +1650,7 @@
 {-# INLINE scrolling #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @selected@ attribute.
 --
@@ -1668,7 +1668,7 @@
 {-# INLINE selected #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @shape@ attribute.
 --
@@ -1686,7 +1686,7 @@
 {-# INLINE shape #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @size@ attribute.
 --
@@ -1704,7 +1704,7 @@
 {-# INLINE size #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @span@ attribute.
 --
@@ -1722,7 +1722,7 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @src@ attribute.
 --
@@ -1740,7 +1740,7 @@
 {-# INLINE src #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @standby@ attribute.
 --
@@ -1758,7 +1758,7 @@
 {-# INLINE standby #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @start@ attribute.
 --
@@ -1776,7 +1776,7 @@
 {-# INLINE start #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @style@ attribute.
 --
@@ -1794,7 +1794,7 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @summary@ attribute.
 --
@@ -1812,7 +1812,7 @@
 {-# INLINE summary #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @tabindex@ attribute.
 --
@@ -1830,7 +1830,7 @@
 {-# INLINE tabindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @target@ attribute.
 --
@@ -1848,7 +1848,7 @@
 {-# INLINE target #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @title@ attribute.
 --
@@ -1866,7 +1866,7 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @type@ attribute.
 --
@@ -1884,7 +1884,7 @@
 {-# INLINE type_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @usemap@ attribute.
 --
@@ -1902,7 +1902,7 @@
 {-# INLINE usemap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valign@ attribute.
 --
@@ -1920,7 +1920,7 @@
 {-# INLINE valign #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @value@ attribute.
 --
@@ -1938,7 +1938,7 @@
 {-# INLINE value #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valuetype@ attribute.
 --
@@ -1956,7 +1956,7 @@
 {-# INLINE valuetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @vspace@ attribute.
 --
@@ -1974,7 +1974,7 @@
 {-# INLINE vspace #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @width@ attribute.
 --
diff --git a/src/Text/Blaze/XHtml1/Strict.hs b/src/Text/Blaze/XHtml1/Strict.hs
--- a/src/Text/Blaze/XHtml1/Strict.hs
+++ b/src/Text/Blaze/XHtml1/Strict.hs
@@ -1,11 +1,11 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:69
+-- src/Util/GenerateHtmlCombinators.hs:70
 --
 {-# LANGUAGE OverloadedStrings #-}
 -- | This module exports HTML combinators used to create documents.
 --
 module Text.Blaze.XHtml1.Strict
-    ( module Text.Blaze
+    ( module Text.Blaze.Html
     , docType
     , docTypeHtml
     , a
@@ -87,15 +87,16 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:77
+-- src/Util/GenerateHtmlCombinators.hs:78
 --
 import Prelude ((>>), (.))
 
 import Text.Blaze
 import Text.Blaze.Internal
+import Text.Blaze.Html
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:155
+-- src/Util/GenerateHtmlCombinators.hs:157
 --
 -- | Combinator for the document type. This should be placed at the top
 -- of every HTML page.
@@ -114,14 +115,14 @@
 {-# INLINE docType #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:176
+-- src/Util/GenerateHtmlCombinators.hs:178
 --
 -- | Combinator for the @\<html>@ element. This combinator will also
 -- insert the correct doctype.
 --
 -- Example:
 --
--- > docTypeHtml $ span $ text "foo"
+-- > docTypeHtml $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -135,13 +136,13 @@
 {-# INLINE docTypeHtml #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<a>@ element.
 --
 -- Example:
 --
--- > a $ span $ text "foo"
+-- > a $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -153,13 +154,13 @@
 {-# INLINE a #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<abbr>@ element.
 --
 -- Example:
 --
--- > abbr $ span $ text "foo"
+-- > abbr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -171,13 +172,13 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<acronym>@ element.
 --
 -- Example:
 --
--- > acronym $ span $ text "foo"
+-- > acronym $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -189,13 +190,13 @@
 {-# INLINE acronym #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<address>@ element.
 --
 -- Example:
 --
--- > address $ span $ text "foo"
+-- > address $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -207,7 +208,7 @@
 {-# INLINE address #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<area />@ element.
 --
@@ -220,17 +221,17 @@
 -- > <area />
 --
 area :: Html  -- ^ Resulting HTML.
-area = Leaf "area" "<area" " />"
+area = Leaf "area" "<area" " />" ()
 {-# INLINE area #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<b>@ element.
 --
 -- Example:
 --
--- > b $ span $ text "foo"
+-- > b $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -242,13 +243,13 @@
 {-# INLINE b #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<bdo>@ element.
 --
 -- Example:
 --
--- > bdo $ span $ text "foo"
+-- > bdo $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -260,13 +261,13 @@
 {-# INLINE bdo #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<big>@ element.
 --
 -- Example:
 --
--- > big $ span $ text "foo"
+-- > big $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -278,13 +279,13 @@
 {-# INLINE big #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<blockquote>@ element.
 --
 -- Example:
 --
--- > blockquote $ span $ text "foo"
+-- > blockquote $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -296,13 +297,13 @@
 {-# INLINE blockquote #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<body>@ element.
 --
 -- Example:
 --
--- > body $ span $ text "foo"
+-- > body $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -314,7 +315,7 @@
 {-# INLINE body #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<br />@ element.
 --
@@ -327,17 +328,17 @@
 -- > <br />
 --
 br :: Html  -- ^ Resulting HTML.
-br = Leaf "br" "<br" " />"
+br = Leaf "br" "<br" " />" ()
 {-# INLINE br #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<button>@ element.
 --
 -- Example:
 --
--- > button $ span $ text "foo"
+-- > button $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -349,13 +350,13 @@
 {-# INLINE button #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<caption>@ element.
 --
 -- Example:
 --
--- > caption $ span $ text "foo"
+-- > caption $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -367,13 +368,13 @@
 {-# INLINE caption #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<cite>@ element.
 --
 -- Example:
 --
--- > cite $ span $ text "foo"
+-- > cite $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -385,13 +386,13 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<code>@ element.
 --
 -- Example:
 --
--- > code $ span $ text "foo"
+-- > code $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -403,7 +404,7 @@
 {-# INLINE code #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<col />@ element.
 --
@@ -416,17 +417,17 @@
 -- > <col />
 --
 col :: Html  -- ^ Resulting HTML.
-col = Leaf "col" "<col" " />"
+col = Leaf "col" "<col" " />" ()
 {-# INLINE col #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<colgroup>@ element.
 --
 -- Example:
 --
--- > colgroup $ span $ text "foo"
+-- > colgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -438,13 +439,13 @@
 {-# INLINE colgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dd>@ element.
 --
 -- Example:
 --
--- > dd $ span $ text "foo"
+-- > dd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -456,13 +457,13 @@
 {-# INLINE dd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<del>@ element.
 --
 -- Example:
 --
--- > del $ span $ text "foo"
+-- > del $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -474,13 +475,13 @@
 {-# INLINE del #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dfn>@ element.
 --
 -- Example:
 --
--- > dfn $ span $ text "foo"
+-- > dfn $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -492,13 +493,13 @@
 {-# INLINE dfn #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<div>@ element.
 --
 -- Example:
 --
--- > div $ span $ text "foo"
+-- > div $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -510,13 +511,13 @@
 {-# INLINE div #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dl>@ element.
 --
 -- Example:
 --
--- > dl $ span $ text "foo"
+-- > dl $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -528,13 +529,13 @@
 {-# INLINE dl #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dt>@ element.
 --
 -- Example:
 --
--- > dt $ span $ text "foo"
+-- > dt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -546,13 +547,13 @@
 {-# INLINE dt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<em>@ element.
 --
 -- Example:
 --
--- > em $ span $ text "foo"
+-- > em $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -564,13 +565,13 @@
 {-# INLINE em #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<fieldset>@ element.
 --
 -- Example:
 --
--- > fieldset $ span $ text "foo"
+-- > fieldset $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -582,13 +583,13 @@
 {-# INLINE fieldset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<form>@ element.
 --
 -- Example:
 --
--- > form $ span $ text "foo"
+-- > form $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -600,13 +601,13 @@
 {-# INLINE form #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h1>@ element.
 --
 -- Example:
 --
--- > h1 $ span $ text "foo"
+-- > h1 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -618,13 +619,13 @@
 {-# INLINE h1 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h2>@ element.
 --
 -- Example:
 --
--- > h2 $ span $ text "foo"
+-- > h2 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -636,13 +637,13 @@
 {-# INLINE h2 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h3>@ element.
 --
 -- Example:
 --
--- > h3 $ span $ text "foo"
+-- > h3 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -654,13 +655,13 @@
 {-# INLINE h3 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h4>@ element.
 --
 -- Example:
 --
--- > h4 $ span $ text "foo"
+-- > h4 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -672,13 +673,13 @@
 {-# INLINE h4 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h5>@ element.
 --
 -- Example:
 --
--- > h5 $ span $ text "foo"
+-- > h5 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -690,13 +691,13 @@
 {-# INLINE h5 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h6>@ element.
 --
 -- Example:
 --
--- > h6 $ span $ text "foo"
+-- > h6 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -708,13 +709,13 @@
 {-# INLINE h6 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<head>@ element.
 --
 -- Example:
 --
--- > head $ span $ text "foo"
+-- > head $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -726,7 +727,7 @@
 {-# INLINE head #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<hr />@ element.
 --
@@ -739,17 +740,17 @@
 -- > <hr />
 --
 hr :: Html  -- ^ Resulting HTML.
-hr = Leaf "hr" "<hr" " />"
+hr = Leaf "hr" "<hr" " />" ()
 {-# INLINE hr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<html>@ element.
 --
 -- Example:
 --
--- > html $ span $ text "foo"
+-- > html $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -761,13 +762,13 @@
 {-# INLINE html #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<i>@ element.
 --
 -- Example:
 --
--- > i $ span $ text "foo"
+-- > i $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -779,7 +780,7 @@
 {-# INLINE i #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<img />@ element.
 --
@@ -792,11 +793,11 @@
 -- > <img />
 --
 img :: Html  -- ^ Resulting HTML.
-img = Leaf "img" "<img" " />"
+img = Leaf "img" "<img" " />" ()
 {-# INLINE img #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<input />@ element.
 --
@@ -809,17 +810,17 @@
 -- > <input />
 --
 input :: Html  -- ^ Resulting HTML.
-input = Leaf "input" "<input" " />"
+input = Leaf "input" "<input" " />" ()
 {-# INLINE input #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ins>@ element.
 --
 -- Example:
 --
--- > ins $ span $ text "foo"
+-- > ins $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -831,13 +832,13 @@
 {-# INLINE ins #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<kbd>@ element.
 --
 -- Example:
 --
--- > kbd $ span $ text "foo"
+-- > kbd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -849,13 +850,13 @@
 {-# INLINE kbd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<label>@ element.
 --
 -- Example:
 --
--- > label $ span $ text "foo"
+-- > label $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -867,13 +868,13 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<legend>@ element.
 --
 -- Example:
 --
--- > legend $ span $ text "foo"
+-- > legend $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -885,13 +886,13 @@
 {-# INLINE legend #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<li>@ element.
 --
 -- Example:
 --
--- > li $ span $ text "foo"
+-- > li $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -903,7 +904,7 @@
 {-# INLINE li #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<link />@ element.
 --
@@ -916,17 +917,17 @@
 -- > <link />
 --
 link :: Html  -- ^ Resulting HTML.
-link = Leaf "link" "<link" " />"
+link = Leaf "link" "<link" " />" ()
 {-# INLINE link #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<map>@ element.
 --
 -- Example:
 --
--- > map $ span $ text "foo"
+-- > map $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -938,7 +939,7 @@
 {-# INLINE map #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<meta />@ element.
 --
@@ -951,17 +952,17 @@
 -- > <meta />
 --
 meta :: Html  -- ^ Resulting HTML.
-meta = Leaf "meta" "<meta" " />"
+meta = Leaf "meta" "<meta" " />" ()
 {-# INLINE meta #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noscript>@ element.
 --
 -- Example:
 --
--- > noscript $ span $ text "foo"
+-- > noscript $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -973,13 +974,13 @@
 {-# INLINE noscript #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<object>@ element.
 --
 -- Example:
 --
--- > object $ span $ text "foo"
+-- > object $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -991,13 +992,13 @@
 {-# INLINE object #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ol>@ element.
 --
 -- Example:
 --
--- > ol $ span $ text "foo"
+-- > ol $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1009,13 +1010,13 @@
 {-# INLINE ol #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<optgroup>@ element.
 --
 -- Example:
 --
--- > optgroup $ span $ text "foo"
+-- > optgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1027,13 +1028,13 @@
 {-# INLINE optgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<option>@ element.
 --
 -- Example:
 --
--- > option $ span $ text "foo"
+-- > option $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1045,13 +1046,13 @@
 {-# INLINE option #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<p>@ element.
 --
 -- Example:
 --
--- > p $ span $ text "foo"
+-- > p $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1063,7 +1064,7 @@
 {-# INLINE p #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<param />@ element.
 --
@@ -1076,17 +1077,17 @@
 -- > <param />
 --
 param :: Html  -- ^ Resulting HTML.
-param = Leaf "param" "<param" " />"
+param = Leaf "param" "<param" " />" ()
 {-# INLINE param #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<pre>@ element.
 --
 -- Example:
 --
--- > pre $ span $ text "foo"
+-- > pre $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1098,13 +1099,13 @@
 {-# INLINE pre #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<q>@ element.
 --
 -- Example:
 --
--- > q $ span $ text "foo"
+-- > q $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1116,13 +1117,13 @@
 {-# INLINE q #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<samp>@ element.
 --
 -- Example:
 --
--- > samp $ span $ text "foo"
+-- > samp $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1134,13 +1135,13 @@
 {-# INLINE samp #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<script>@ element.
 --
 -- Example:
 --
--- > script $ span $ text "foo"
+-- > script $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1152,13 +1153,13 @@
 {-# INLINE script #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<select>@ element.
 --
 -- Example:
 --
--- > select $ span $ text "foo"
+-- > select $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1170,13 +1171,13 @@
 {-# INLINE select #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<small>@ element.
 --
 -- Example:
 --
--- > small $ span $ text "foo"
+-- > small $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1188,13 +1189,13 @@
 {-# INLINE small #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<span>@ element.
 --
 -- Example:
 --
--- > span $ span $ text "foo"
+-- > span $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1206,13 +1207,13 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<strong>@ element.
 --
 -- Example:
 --
--- > strong $ span $ text "foo"
+-- > strong $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1224,13 +1225,13 @@
 {-# INLINE strong #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<style>@ element.
 --
 -- Example:
 --
--- > style $ span $ text "foo"
+-- > style $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1242,13 +1243,13 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sub>@ element.
 --
 -- Example:
 --
--- > sub $ span $ text "foo"
+-- > sub $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1260,13 +1261,13 @@
 {-# INLINE sub #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sup>@ element.
 --
 -- Example:
 --
--- > sup $ span $ text "foo"
+-- > sup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1278,13 +1279,13 @@
 {-# INLINE sup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<table>@ element.
 --
 -- Example:
 --
--- > table $ span $ text "foo"
+-- > table $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1296,13 +1297,13 @@
 {-# INLINE table #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tbody>@ element.
 --
 -- Example:
 --
--- > tbody $ span $ text "foo"
+-- > tbody $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1314,13 +1315,13 @@
 {-# INLINE tbody #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<td>@ element.
 --
 -- Example:
 --
--- > td $ span $ text "foo"
+-- > td $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1332,13 +1333,13 @@
 {-# INLINE td #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<textarea>@ element.
 --
 -- Example:
 --
--- > textarea $ span $ text "foo"
+-- > textarea $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1350,13 +1351,13 @@
 {-# INLINE textarea #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tfoot>@ element.
 --
 -- Example:
 --
--- > tfoot $ span $ text "foo"
+-- > tfoot $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1368,13 +1369,13 @@
 {-# INLINE tfoot #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<th>@ element.
 --
 -- Example:
 --
--- > th $ span $ text "foo"
+-- > th $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1386,13 +1387,13 @@
 {-# INLINE th #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<thead>@ element.
 --
 -- Example:
 --
--- > thead $ span $ text "foo"
+-- > thead $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1404,13 +1405,13 @@
 {-# INLINE thead #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<title>@ element.
 --
 -- Example:
 --
--- > title $ span $ text "foo"
+-- > title $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1422,13 +1423,13 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tr>@ element.
 --
 -- Example:
 --
--- > tr $ span $ text "foo"
+-- > tr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1440,13 +1441,13 @@
 {-# INLINE tr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tt>@ element.
 --
 -- Example:
 --
--- > tt $ span $ text "foo"
+-- > tt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1458,13 +1459,13 @@
 {-# INLINE tt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ul>@ element.
 --
 -- Example:
 --
--- > ul $ span $ text "foo"
+-- > ul $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1476,13 +1477,13 @@
 {-# INLINE ul #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<var>@ element.
 --
 -- Example:
 --
--- > var $ span $ text "foo"
+-- > var $ span $ toHtml "foo"
 --
 -- Result:
 --
diff --git a/src/Text/Blaze/XHtml1/Strict/Attributes.hs b/src/Text/Blaze/XHtml1/Strict/Attributes.hs
--- a/src/Text/Blaze/XHtml1/Strict/Attributes.hs
+++ b/src/Text/Blaze/XHtml1/Strict/Attributes.hs
@@ -1,5 +1,5 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:92
+-- src/Util/GenerateHtmlCombinators.hs:94
 --
 -- | This module exports combinators that provide you with the
 -- ability to set attributes on HTML elements.
@@ -100,14 +100,14 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:98
+-- src/Util/GenerateHtmlCombinators.hs:100
 --
 import Prelude ()
 
 import Text.Blaze.Internal (Attribute, AttributeValue, attribute)
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @abbr@ attribute.
 --
@@ -125,7 +125,7 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accept@ attribute.
 --
@@ -143,7 +143,7 @@
 {-# INLINE accept #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accesskey@ attribute.
 --
@@ -161,7 +161,7 @@
 {-# INLINE accesskey #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @action@ attribute.
 --
@@ -179,7 +179,7 @@
 {-# INLINE action #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @align@ attribute.
 --
@@ -197,7 +197,7 @@
 {-# INLINE align #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @alt@ attribute.
 --
@@ -215,7 +215,7 @@
 {-# INLINE alt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @archive@ attribute.
 --
@@ -233,7 +233,7 @@
 {-# INLINE archive #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @axis@ attribute.
 --
@@ -251,7 +251,7 @@
 {-# INLINE axis #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @border@ attribute.
 --
@@ -269,7 +269,7 @@
 {-# INLINE border #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellpadding@ attribute.
 --
@@ -287,7 +287,7 @@
 {-# INLINE cellpadding #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellspacing@ attribute.
 --
@@ -305,7 +305,7 @@
 {-# INLINE cellspacing #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @char@ attribute.
 --
@@ -323,7 +323,7 @@
 {-# INLINE char #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charoff@ attribute.
 --
@@ -341,7 +341,7 @@
 {-# INLINE charoff #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charset@ attribute.
 --
@@ -359,7 +359,7 @@
 {-# INLINE charset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @checked@ attribute.
 --
@@ -377,7 +377,7 @@
 {-# INLINE checked #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cite@ attribute.
 --
@@ -395,7 +395,7 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @class@ attribute.
 --
@@ -413,7 +413,7 @@
 {-# INLINE class_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @classid@ attribute.
 --
@@ -431,7 +431,7 @@
 {-# INLINE classid #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codebase@ attribute.
 --
@@ -449,7 +449,7 @@
 {-# INLINE codebase #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codetype@ attribute.
 --
@@ -467,7 +467,7 @@
 {-# INLINE codetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cols@ attribute.
 --
@@ -485,7 +485,7 @@
 {-# INLINE cols #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @colspan@ attribute.
 --
@@ -503,7 +503,7 @@
 {-# INLINE colspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @content@ attribute.
 --
@@ -521,7 +521,7 @@
 {-# INLINE content #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @coords@ attribute.
 --
@@ -539,7 +539,7 @@
 {-# INLINE coords #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @data@ attribute.
 --
@@ -557,7 +557,7 @@
 {-# INLINE data_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @datetime@ attribute.
 --
@@ -575,7 +575,7 @@
 {-# INLINE datetime #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @declare@ attribute.
 --
@@ -593,7 +593,7 @@
 {-# INLINE declare #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @defer@ attribute.
 --
@@ -611,7 +611,7 @@
 {-# INLINE defer #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @dir@ attribute.
 --
@@ -629,7 +629,7 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @disabled@ attribute.
 --
@@ -647,7 +647,7 @@
 {-# INLINE disabled #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @enctype@ attribute.
 --
@@ -665,7 +665,7 @@
 {-# INLINE enctype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @for@ attribute.
 --
@@ -683,7 +683,7 @@
 {-# INLINE for #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @frame@ attribute.
 --
@@ -701,7 +701,7 @@
 {-# INLINE frame #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @headers@ attribute.
 --
@@ -719,7 +719,7 @@
 {-# INLINE headers #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @height@ attribute.
 --
@@ -737,7 +737,7 @@
 {-# INLINE height #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @href@ attribute.
 --
@@ -755,7 +755,7 @@
 {-# INLINE href #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hreflang@ attribute.
 --
@@ -773,7 +773,7 @@
 {-# INLINE hreflang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @http-equiv@ attribute.
 --
@@ -791,7 +791,7 @@
 {-# INLINE httpEquiv #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @id@ attribute.
 --
@@ -809,7 +809,7 @@
 {-# INLINE id #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @label@ attribute.
 --
@@ -827,7 +827,7 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @lang@ attribute.
 --
@@ -845,7 +845,7 @@
 {-# INLINE lang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @maxlength@ attribute.
 --
@@ -863,7 +863,7 @@
 {-# INLINE maxlength #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @media@ attribute.
 --
@@ -881,7 +881,7 @@
 {-# INLINE media #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @method@ attribute.
 --
@@ -899,7 +899,7 @@
 {-# INLINE method #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @multiple@ attribute.
 --
@@ -917,7 +917,7 @@
 {-# INLINE multiple #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @name@ attribute.
 --
@@ -935,7 +935,7 @@
 {-# INLINE name #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @nohref@ attribute.
 --
@@ -953,7 +953,7 @@
 {-# INLINE nohref #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onabort@ attribute.
 --
@@ -971,7 +971,7 @@
 {-# INLINE onabort #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onblur@ attribute.
 --
@@ -989,7 +989,7 @@
 {-# INLINE onblur #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onchange@ attribute.
 --
@@ -1007,7 +1007,7 @@
 {-# INLINE onchange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onclick@ attribute.
 --
@@ -1025,7 +1025,7 @@
 {-# INLINE onclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondblclick@ attribute.
 --
@@ -1043,7 +1043,7 @@
 {-# INLINE ondblclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onfocus@ attribute.
 --
@@ -1061,7 +1061,7 @@
 {-# INLINE onfocus #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeydown@ attribute.
 --
@@ -1079,7 +1079,7 @@
 {-# INLINE onkeydown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeypress@ attribute.
 --
@@ -1097,7 +1097,7 @@
 {-# INLINE onkeypress #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeyup@ attribute.
 --
@@ -1115,7 +1115,7 @@
 {-# INLINE onkeyup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onload@ attribute.
 --
@@ -1133,7 +1133,7 @@
 {-# INLINE onload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousedown@ attribute.
 --
@@ -1151,7 +1151,7 @@
 {-# INLINE onmousedown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousemove@ attribute.
 --
@@ -1169,7 +1169,7 @@
 {-# INLINE onmousemove #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseout@ attribute.
 --
@@ -1187,7 +1187,7 @@
 {-# INLINE onmouseout #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseover@ attribute.
 --
@@ -1205,7 +1205,7 @@
 {-# INLINE onmouseover #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseup@ attribute.
 --
@@ -1223,7 +1223,7 @@
 {-# INLINE onmouseup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onreset@ attribute.
 --
@@ -1241,7 +1241,7 @@
 {-# INLINE onreset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onselect@ attribute.
 --
@@ -1259,7 +1259,7 @@
 {-# INLINE onselect #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onsubmit@ attribute.
 --
@@ -1277,7 +1277,7 @@
 {-# INLINE onsubmit #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onunload@ attribute.
 --
@@ -1295,7 +1295,7 @@
 {-# INLINE onunload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @profile@ attribute.
 --
@@ -1313,7 +1313,7 @@
 {-# INLINE profile #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @readonly@ attribute.
 --
@@ -1331,7 +1331,7 @@
 {-# INLINE readonly #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rel@ attribute.
 --
@@ -1349,7 +1349,7 @@
 {-# INLINE rel #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rev@ attribute.
 --
@@ -1367,7 +1367,7 @@
 {-# INLINE rev #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rows@ attribute.
 --
@@ -1385,7 +1385,7 @@
 {-# INLINE rows #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rowspan@ attribute.
 --
@@ -1403,7 +1403,7 @@
 {-# INLINE rowspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rules@ attribute.
 --
@@ -1421,7 +1421,7 @@
 {-# INLINE rules #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scheme@ attribute.
 --
@@ -1439,7 +1439,7 @@
 {-# INLINE scheme #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scope@ attribute.
 --
@@ -1457,7 +1457,7 @@
 {-# INLINE scope #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @selected@ attribute.
 --
@@ -1475,7 +1475,7 @@
 {-# INLINE selected #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @shape@ attribute.
 --
@@ -1493,7 +1493,7 @@
 {-# INLINE shape #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @size@ attribute.
 --
@@ -1511,7 +1511,7 @@
 {-# INLINE size #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @span@ attribute.
 --
@@ -1529,7 +1529,7 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @src@ attribute.
 --
@@ -1547,7 +1547,7 @@
 {-# INLINE src #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @standby@ attribute.
 --
@@ -1565,7 +1565,7 @@
 {-# INLINE standby #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @style@ attribute.
 --
@@ -1583,7 +1583,7 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @summary@ attribute.
 --
@@ -1601,7 +1601,7 @@
 {-# INLINE summary #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @tabindex@ attribute.
 --
@@ -1619,7 +1619,7 @@
 {-# INLINE tabindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @title@ attribute.
 --
@@ -1637,7 +1637,7 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @type@ attribute.
 --
@@ -1655,7 +1655,7 @@
 {-# INLINE type_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @usemap@ attribute.
 --
@@ -1673,7 +1673,7 @@
 {-# INLINE usemap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valign@ attribute.
 --
@@ -1691,7 +1691,7 @@
 {-# INLINE valign #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @value@ attribute.
 --
@@ -1709,7 +1709,7 @@
 {-# INLINE value #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valuetype@ attribute.
 --
@@ -1727,7 +1727,7 @@
 {-# INLINE valuetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @width@ attribute.
 --
diff --git a/src/Text/Blaze/XHtml1/Transitional.hs b/src/Text/Blaze/XHtml1/Transitional.hs
--- a/src/Text/Blaze/XHtml1/Transitional.hs
+++ b/src/Text/Blaze/XHtml1/Transitional.hs
@@ -1,11 +1,11 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:69
+-- src/Util/GenerateHtmlCombinators.hs:70
 --
 {-# LANGUAGE OverloadedStrings #-}
 -- | This module exports HTML combinators used to create documents.
 --
 module Text.Blaze.XHtml1.Transitional
-    ( module Text.Blaze
+    ( module Text.Blaze.Html
     , docType
     , docTypeHtml
     , a
@@ -98,15 +98,16 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:77
+-- src/Util/GenerateHtmlCombinators.hs:78
 --
 import Prelude ((>>), (.))
 
 import Text.Blaze
 import Text.Blaze.Internal
+import Text.Blaze.Html
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:155
+-- src/Util/GenerateHtmlCombinators.hs:157
 --
 -- | Combinator for the document type. This should be placed at the top
 -- of every HTML page.
@@ -125,14 +126,14 @@
 {-# INLINE docType #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:176
+-- src/Util/GenerateHtmlCombinators.hs:178
 --
 -- | Combinator for the @\<html>@ element. This combinator will also
 -- insert the correct doctype.
 --
 -- Example:
 --
--- > docTypeHtml $ span $ text "foo"
+-- > docTypeHtml $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -146,13 +147,13 @@
 {-# INLINE docTypeHtml #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<a>@ element.
 --
 -- Example:
 --
--- > a $ span $ text "foo"
+-- > a $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -164,13 +165,13 @@
 {-# INLINE a #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<abbr>@ element.
 --
 -- Example:
 --
--- > abbr $ span $ text "foo"
+-- > abbr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -182,13 +183,13 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<acronym>@ element.
 --
 -- Example:
 --
--- > acronym $ span $ text "foo"
+-- > acronym $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -200,13 +201,13 @@
 {-# INLINE acronym #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<address>@ element.
 --
 -- Example:
 --
--- > address $ span $ text "foo"
+-- > address $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -218,13 +219,13 @@
 {-# INLINE address #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<applet>@ element.
 --
 -- Example:
 --
--- > applet $ span $ text "foo"
+-- > applet $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -236,7 +237,7 @@
 {-# INLINE applet #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<area />@ element.
 --
@@ -249,17 +250,17 @@
 -- > <area />
 --
 area :: Html  -- ^ Resulting HTML.
-area = Leaf "area" "<area" " />"
+area = Leaf "area" "<area" " />" ()
 {-# INLINE area #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<b>@ element.
 --
 -- Example:
 --
--- > b $ span $ text "foo"
+-- > b $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -271,7 +272,7 @@
 {-# INLINE b #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<basefont />@ element.
 --
@@ -284,17 +285,17 @@
 -- > <basefont />
 --
 basefont :: Html  -- ^ Resulting HTML.
-basefont = Leaf "basefont" "<basefont" " />"
+basefont = Leaf "basefont" "<basefont" " />" ()
 {-# INLINE basefont #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<bdo>@ element.
 --
 -- Example:
 --
--- > bdo $ span $ text "foo"
+-- > bdo $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -306,13 +307,13 @@
 {-# INLINE bdo #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<big>@ element.
 --
 -- Example:
 --
--- > big $ span $ text "foo"
+-- > big $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -324,13 +325,13 @@
 {-# INLINE big #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<blockquote>@ element.
 --
 -- Example:
 --
--- > blockquote $ span $ text "foo"
+-- > blockquote $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -342,13 +343,13 @@
 {-# INLINE blockquote #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<body>@ element.
 --
 -- Example:
 --
--- > body $ span $ text "foo"
+-- > body $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -360,7 +361,7 @@
 {-# INLINE body #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<br />@ element.
 --
@@ -373,17 +374,17 @@
 -- > <br />
 --
 br :: Html  -- ^ Resulting HTML.
-br = Leaf "br" "<br" " />"
+br = Leaf "br" "<br" " />" ()
 {-# INLINE br #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<button>@ element.
 --
 -- Example:
 --
--- > button $ span $ text "foo"
+-- > button $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -395,13 +396,13 @@
 {-# INLINE button #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<caption>@ element.
 --
 -- Example:
 --
--- > caption $ span $ text "foo"
+-- > caption $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -413,13 +414,13 @@
 {-# INLINE caption #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<center>@ element.
 --
 -- Example:
 --
--- > center $ span $ text "foo"
+-- > center $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -431,13 +432,13 @@
 {-# INLINE center #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<cite>@ element.
 --
 -- Example:
 --
--- > cite $ span $ text "foo"
+-- > cite $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -449,13 +450,13 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<code>@ element.
 --
 -- Example:
 --
--- > code $ span $ text "foo"
+-- > code $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -467,7 +468,7 @@
 {-# INLINE code #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<col />@ element.
 --
@@ -480,17 +481,17 @@
 -- > <col />
 --
 col :: Html  -- ^ Resulting HTML.
-col = Leaf "col" "<col" " />"
+col = Leaf "col" "<col" " />" ()
 {-# INLINE col #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<colgroup>@ element.
 --
 -- Example:
 --
--- > colgroup $ span $ text "foo"
+-- > colgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -502,13 +503,13 @@
 {-# INLINE colgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dd>@ element.
 --
 -- Example:
 --
--- > dd $ span $ text "foo"
+-- > dd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -520,13 +521,13 @@
 {-# INLINE dd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<del>@ element.
 --
 -- Example:
 --
--- > del $ span $ text "foo"
+-- > del $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -538,13 +539,13 @@
 {-# INLINE del #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dfn>@ element.
 --
 -- Example:
 --
--- > dfn $ span $ text "foo"
+-- > dfn $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -556,13 +557,13 @@
 {-# INLINE dfn #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dir>@ element.
 --
 -- Example:
 --
--- > dir $ span $ text "foo"
+-- > dir $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -574,13 +575,13 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<div>@ element.
 --
 -- Example:
 --
--- > div $ span $ text "foo"
+-- > div $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -592,13 +593,13 @@
 {-# INLINE div #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dl>@ element.
 --
 -- Example:
 --
--- > dl $ span $ text "foo"
+-- > dl $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -610,13 +611,13 @@
 {-# INLINE dl #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<dt>@ element.
 --
 -- Example:
 --
--- > dt $ span $ text "foo"
+-- > dt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -628,13 +629,13 @@
 {-# INLINE dt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<em>@ element.
 --
 -- Example:
 --
--- > em $ span $ text "foo"
+-- > em $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -646,13 +647,13 @@
 {-# INLINE em #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<fieldset>@ element.
 --
 -- Example:
 --
--- > fieldset $ span $ text "foo"
+-- > fieldset $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -664,13 +665,13 @@
 {-# INLINE fieldset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<font>@ element.
 --
 -- Example:
 --
--- > font $ span $ text "foo"
+-- > font $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -682,13 +683,13 @@
 {-# INLINE font #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<form>@ element.
 --
 -- Example:
 --
--- > form $ span $ text "foo"
+-- > form $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -700,13 +701,13 @@
 {-# INLINE form #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h1>@ element.
 --
 -- Example:
 --
--- > h1 $ span $ text "foo"
+-- > h1 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -718,13 +719,13 @@
 {-# INLINE h1 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h2>@ element.
 --
 -- Example:
 --
--- > h2 $ span $ text "foo"
+-- > h2 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -736,13 +737,13 @@
 {-# INLINE h2 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h3>@ element.
 --
 -- Example:
 --
--- > h3 $ span $ text "foo"
+-- > h3 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -754,13 +755,13 @@
 {-# INLINE h3 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h4>@ element.
 --
 -- Example:
 --
--- > h4 $ span $ text "foo"
+-- > h4 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -772,13 +773,13 @@
 {-# INLINE h4 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h5>@ element.
 --
 -- Example:
 --
--- > h5 $ span $ text "foo"
+-- > h5 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -790,13 +791,13 @@
 {-# INLINE h5 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<h6>@ element.
 --
 -- Example:
 --
--- > h6 $ span $ text "foo"
+-- > h6 $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -808,13 +809,13 @@
 {-# INLINE h6 #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<head>@ element.
 --
 -- Example:
 --
--- > head $ span $ text "foo"
+-- > head $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -826,7 +827,7 @@
 {-# INLINE head #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<hr />@ element.
 --
@@ -839,17 +840,17 @@
 -- > <hr />
 --
 hr :: Html  -- ^ Resulting HTML.
-hr = Leaf "hr" "<hr" " />"
+hr = Leaf "hr" "<hr" " />" ()
 {-# INLINE hr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<html>@ element.
 --
 -- Example:
 --
--- > html $ span $ text "foo"
+-- > html $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -861,13 +862,13 @@
 {-# INLINE html #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<i>@ element.
 --
 -- Example:
 --
--- > i $ span $ text "foo"
+-- > i $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -879,13 +880,13 @@
 {-# INLINE i #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<iframe>@ element.
 --
 -- Example:
 --
--- > iframe $ span $ text "foo"
+-- > iframe $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -897,7 +898,7 @@
 {-# INLINE iframe #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<img />@ element.
 --
@@ -910,11 +911,11 @@
 -- > <img />
 --
 img :: Html  -- ^ Resulting HTML.
-img = Leaf "img" "<img" " />"
+img = Leaf "img" "<img" " />" ()
 {-# INLINE img #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<input />@ element.
 --
@@ -927,17 +928,17 @@
 -- > <input />
 --
 input :: Html  -- ^ Resulting HTML.
-input = Leaf "input" "<input" " />"
+input = Leaf "input" "<input" " />" ()
 {-# INLINE input #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ins>@ element.
 --
 -- Example:
 --
--- > ins $ span $ text "foo"
+-- > ins $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -949,13 +950,13 @@
 {-# INLINE ins #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<isindex>@ element.
 --
 -- Example:
 --
--- > isindex $ span $ text "foo"
+-- > isindex $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -967,13 +968,13 @@
 {-# INLINE isindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<kbd>@ element.
 --
 -- Example:
 --
--- > kbd $ span $ text "foo"
+-- > kbd $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -985,13 +986,13 @@
 {-# INLINE kbd #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<label>@ element.
 --
 -- Example:
 --
--- > label $ span $ text "foo"
+-- > label $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1003,13 +1004,13 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<legend>@ element.
 --
 -- Example:
 --
--- > legend $ span $ text "foo"
+-- > legend $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1021,13 +1022,13 @@
 {-# INLINE legend #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<li>@ element.
 --
 -- Example:
 --
--- > li $ span $ text "foo"
+-- > li $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1039,7 +1040,7 @@
 {-# INLINE li #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<link />@ element.
 --
@@ -1052,17 +1053,17 @@
 -- > <link />
 --
 link :: Html  -- ^ Resulting HTML.
-link = Leaf "link" "<link" " />"
+link = Leaf "link" "<link" " />" ()
 {-# INLINE link #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<map>@ element.
 --
 -- Example:
 --
--- > map $ span $ text "foo"
+-- > map $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1074,13 +1075,13 @@
 {-# INLINE map #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<menu>@ element.
 --
 -- Example:
 --
--- > menu $ span $ text "foo"
+-- > menu $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1092,7 +1093,7 @@
 {-# INLINE menu #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<meta />@ element.
 --
@@ -1105,17 +1106,17 @@
 -- > <meta />
 --
 meta :: Html  -- ^ Resulting HTML.
-meta = Leaf "meta" "<meta" " />"
+meta = Leaf "meta" "<meta" " />" ()
 {-# INLINE meta #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noframes>@ element.
 --
 -- Example:
 --
--- > noframes $ span $ text "foo"
+-- > noframes $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1127,13 +1128,13 @@
 {-# INLINE noframes #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<noscript>@ element.
 --
 -- Example:
 --
--- > noscript $ span $ text "foo"
+-- > noscript $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1145,13 +1146,13 @@
 {-# INLINE noscript #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<object>@ element.
 --
 -- Example:
 --
--- > object $ span $ text "foo"
+-- > object $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1163,13 +1164,13 @@
 {-# INLINE object #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ol>@ element.
 --
 -- Example:
 --
--- > ol $ span $ text "foo"
+-- > ol $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1181,13 +1182,13 @@
 {-# INLINE ol #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<optgroup>@ element.
 --
 -- Example:
 --
--- > optgroup $ span $ text "foo"
+-- > optgroup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1199,13 +1200,13 @@
 {-# INLINE optgroup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<option>@ element.
 --
 -- Example:
 --
--- > option $ span $ text "foo"
+-- > option $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1217,13 +1218,13 @@
 {-# INLINE option #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<p>@ element.
 --
 -- Example:
 --
--- > p $ span $ text "foo"
+-- > p $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1235,7 +1236,7 @@
 {-# INLINE p #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:225
+-- src/Util/GenerateHtmlCombinators.hs:227
 --
 -- | Combinator for the @\<param />@ element.
 --
@@ -1248,17 +1249,17 @@
 -- > <param />
 --
 param :: Html  -- ^ Resulting HTML.
-param = Leaf "param" "<param" " />"
+param = Leaf "param" "<param" " />" ()
 {-# INLINE param #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<pre>@ element.
 --
 -- Example:
 --
--- > pre $ span $ text "foo"
+-- > pre $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1270,13 +1271,13 @@
 {-# INLINE pre #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<q>@ element.
 --
 -- Example:
 --
--- > q $ span $ text "foo"
+-- > q $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1288,13 +1289,13 @@
 {-# INLINE q #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<s>@ element.
 --
 -- Example:
 --
--- > s $ span $ text "foo"
+-- > s $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1306,13 +1307,13 @@
 {-# INLINE s #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<samp>@ element.
 --
 -- Example:
 --
--- > samp $ span $ text "foo"
+-- > samp $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1324,13 +1325,13 @@
 {-# INLINE samp #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<script>@ element.
 --
 -- Example:
 --
--- > script $ span $ text "foo"
+-- > script $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1342,13 +1343,13 @@
 {-# INLINE script #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<select>@ element.
 --
 -- Example:
 --
--- > select $ span $ text "foo"
+-- > select $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1360,13 +1361,13 @@
 {-# INLINE select #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<small>@ element.
 --
 -- Example:
 --
--- > small $ span $ text "foo"
+-- > small $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1378,13 +1379,13 @@
 {-# INLINE small #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<span>@ element.
 --
 -- Example:
 --
--- > span $ span $ text "foo"
+-- > span $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1396,13 +1397,13 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<strong>@ element.
 --
 -- Example:
 --
--- > strong $ span $ text "foo"
+-- > strong $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1414,13 +1415,13 @@
 {-# INLINE strong #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<style>@ element.
 --
 -- Example:
 --
--- > style $ span $ text "foo"
+-- > style $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1432,13 +1433,13 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sub>@ element.
 --
 -- Example:
 --
--- > sub $ span $ text "foo"
+-- > sub $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1450,13 +1451,13 @@
 {-# INLINE sub #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<sup>@ element.
 --
 -- Example:
 --
--- > sup $ span $ text "foo"
+-- > sup $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1468,13 +1469,13 @@
 {-# INLINE sup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<table>@ element.
 --
 -- Example:
 --
--- > table $ span $ text "foo"
+-- > table $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1486,13 +1487,13 @@
 {-# INLINE table #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tbody>@ element.
 --
 -- Example:
 --
--- > tbody $ span $ text "foo"
+-- > tbody $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1504,13 +1505,13 @@
 {-# INLINE tbody #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<td>@ element.
 --
 -- Example:
 --
--- > td $ span $ text "foo"
+-- > td $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1522,13 +1523,13 @@
 {-# INLINE td #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<textarea>@ element.
 --
 -- Example:
 --
--- > textarea $ span $ text "foo"
+-- > textarea $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1540,13 +1541,13 @@
 {-# INLINE textarea #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tfoot>@ element.
 --
 -- Example:
 --
--- > tfoot $ span $ text "foo"
+-- > tfoot $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1558,13 +1559,13 @@
 {-# INLINE tfoot #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<th>@ element.
 --
 -- Example:
 --
--- > th $ span $ text "foo"
+-- > th $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1576,13 +1577,13 @@
 {-# INLINE th #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<thead>@ element.
 --
 -- Example:
 --
--- > thead $ span $ text "foo"
+-- > thead $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1594,13 +1595,13 @@
 {-# INLINE thead #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<title>@ element.
 --
 -- Example:
 --
--- > title $ span $ text "foo"
+-- > title $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1612,13 +1613,13 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tr>@ element.
 --
 -- Example:
 --
--- > tr $ span $ text "foo"
+-- > tr $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1630,13 +1631,13 @@
 {-# INLINE tr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<tt>@ element.
 --
 -- Example:
 --
--- > tt $ span $ text "foo"
+-- > tt $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1648,13 +1649,13 @@
 {-# INLINE tt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<u>@ element.
 --
 -- Example:
 --
--- > u $ span $ text "foo"
+-- > u $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1666,13 +1667,13 @@
 {-# INLINE u #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<ul>@ element.
 --
 -- Example:
 --
--- > ul $ span $ text "foo"
+-- > ul $ span $ toHtml "foo"
 --
 -- Result:
 --
@@ -1684,13 +1685,13 @@
 {-# INLINE ul #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:198
+-- src/Util/GenerateHtmlCombinators.hs:200
 --
 -- | Combinator for the @\<var>@ element.
 --
 -- Example:
 --
--- > var $ span $ text "foo"
+-- > var $ span $ toHtml "foo"
 --
 -- Result:
 --
diff --git a/src/Text/Blaze/XHtml1/Transitional/Attributes.hs b/src/Text/Blaze/XHtml1/Transitional/Attributes.hs
--- a/src/Text/Blaze/XHtml1/Transitional/Attributes.hs
+++ b/src/Text/Blaze/XHtml1/Transitional/Attributes.hs
@@ -1,5 +1,5 @@
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:92
+-- src/Util/GenerateHtmlCombinators.hs:94
 --
 -- | This module exports combinators that provide you with the
 -- ability to set attributes on HTML elements.
@@ -111,14 +111,14 @@
     ) where
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:98
+-- src/Util/GenerateHtmlCombinators.hs:100
 --
 import Prelude ()
 
 import Text.Blaze.Internal (Attribute, AttributeValue, attribute)
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @abbr@ attribute.
 --
@@ -136,7 +136,7 @@
 {-# INLINE abbr #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accept@ attribute.
 --
@@ -154,7 +154,7 @@
 {-# INLINE accept #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @accesskey@ attribute.
 --
@@ -172,7 +172,7 @@
 {-# INLINE accesskey #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @action@ attribute.
 --
@@ -190,7 +190,7 @@
 {-# INLINE action #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @align@ attribute.
 --
@@ -208,7 +208,7 @@
 {-# INLINE align #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @alt@ attribute.
 --
@@ -226,7 +226,7 @@
 {-# INLINE alt #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @archive@ attribute.
 --
@@ -244,7 +244,7 @@
 {-# INLINE archive #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @axis@ attribute.
 --
@@ -262,7 +262,7 @@
 {-# INLINE axis #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @background@ attribute.
 --
@@ -280,7 +280,7 @@
 {-# INLINE background #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @bgcolor@ attribute.
 --
@@ -298,7 +298,7 @@
 {-# INLINE bgcolor #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @border@ attribute.
 --
@@ -316,7 +316,7 @@
 {-# INLINE border #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellpadding@ attribute.
 --
@@ -334,7 +334,7 @@
 {-# INLINE cellpadding #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cellspacing@ attribute.
 --
@@ -352,7 +352,7 @@
 {-# INLINE cellspacing #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @char@ attribute.
 --
@@ -370,7 +370,7 @@
 {-# INLINE char #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charoff@ attribute.
 --
@@ -388,7 +388,7 @@
 {-# INLINE charoff #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @charset@ attribute.
 --
@@ -406,7 +406,7 @@
 {-# INLINE charset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @checked@ attribute.
 --
@@ -424,7 +424,7 @@
 {-# INLINE checked #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cite@ attribute.
 --
@@ -442,7 +442,7 @@
 {-# INLINE cite #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @class@ attribute.
 --
@@ -460,7 +460,7 @@
 {-# INLINE class_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @classid@ attribute.
 --
@@ -478,7 +478,7 @@
 {-# INLINE classid #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @clear@ attribute.
 --
@@ -496,7 +496,7 @@
 {-# INLINE clear #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codebase@ attribute.
 --
@@ -514,7 +514,7 @@
 {-# INLINE codebase #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @codetype@ attribute.
 --
@@ -532,7 +532,7 @@
 {-# INLINE codetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @cols@ attribute.
 --
@@ -550,7 +550,7 @@
 {-# INLINE cols #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @colspan@ attribute.
 --
@@ -568,7 +568,7 @@
 {-# INLINE colspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @compact@ attribute.
 --
@@ -586,7 +586,7 @@
 {-# INLINE compact #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @content@ attribute.
 --
@@ -604,7 +604,7 @@
 {-# INLINE content #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @coords@ attribute.
 --
@@ -622,7 +622,7 @@
 {-# INLINE coords #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @data@ attribute.
 --
@@ -640,7 +640,7 @@
 {-# INLINE data_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @datetime@ attribute.
 --
@@ -658,7 +658,7 @@
 {-# INLINE datetime #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @declare@ attribute.
 --
@@ -676,7 +676,7 @@
 {-# INLINE declare #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @defer@ attribute.
 --
@@ -694,7 +694,7 @@
 {-# INLINE defer #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @dir@ attribute.
 --
@@ -712,7 +712,7 @@
 {-# INLINE dir #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @disabled@ attribute.
 --
@@ -730,7 +730,7 @@
 {-# INLINE disabled #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @enctype@ attribute.
 --
@@ -748,7 +748,7 @@
 {-# INLINE enctype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @for@ attribute.
 --
@@ -766,7 +766,7 @@
 {-# INLINE for #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @frame@ attribute.
 --
@@ -784,7 +784,7 @@
 {-# INLINE frame #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @headers@ attribute.
 --
@@ -802,7 +802,7 @@
 {-# INLINE headers #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @height@ attribute.
 --
@@ -820,7 +820,7 @@
 {-# INLINE height #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @href@ attribute.
 --
@@ -838,7 +838,7 @@
 {-# INLINE href #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hreflang@ attribute.
 --
@@ -856,7 +856,7 @@
 {-# INLINE hreflang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @hspace@ attribute.
 --
@@ -874,7 +874,7 @@
 {-# INLINE hspace #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @http-equiv@ attribute.
 --
@@ -892,7 +892,7 @@
 {-# INLINE httpEquiv #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @id@ attribute.
 --
@@ -910,7 +910,7 @@
 {-# INLINE id #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @label@ attribute.
 --
@@ -928,7 +928,7 @@
 {-# INLINE label #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @lang@ attribute.
 --
@@ -946,7 +946,7 @@
 {-# INLINE lang #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @language@ attribute.
 --
@@ -964,7 +964,7 @@
 {-# INLINE language #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @maxlength@ attribute.
 --
@@ -982,7 +982,7 @@
 {-# INLINE maxlength #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @media@ attribute.
 --
@@ -1000,7 +1000,7 @@
 {-# INLINE media #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @method@ attribute.
 --
@@ -1018,7 +1018,7 @@
 {-# INLINE method #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @multiple@ attribute.
 --
@@ -1036,7 +1036,7 @@
 {-# INLINE multiple #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @name@ attribute.
 --
@@ -1054,7 +1054,7 @@
 {-# INLINE name #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @nohref@ attribute.
 --
@@ -1072,7 +1072,7 @@
 {-# INLINE nohref #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @noshade@ attribute.
 --
@@ -1090,7 +1090,7 @@
 {-# INLINE noshade #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @nowrap@ attribute.
 --
@@ -1108,7 +1108,7 @@
 {-# INLINE nowrap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onabort@ attribute.
 --
@@ -1126,7 +1126,7 @@
 {-# INLINE onabort #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onblur@ attribute.
 --
@@ -1144,7 +1144,7 @@
 {-# INLINE onblur #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onchange@ attribute.
 --
@@ -1162,7 +1162,7 @@
 {-# INLINE onchange #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onclick@ attribute.
 --
@@ -1180,7 +1180,7 @@
 {-# INLINE onclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @ondblclick@ attribute.
 --
@@ -1198,7 +1198,7 @@
 {-# INLINE ondblclick #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onfocus@ attribute.
 --
@@ -1216,7 +1216,7 @@
 {-# INLINE onfocus #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeydown@ attribute.
 --
@@ -1234,7 +1234,7 @@
 {-# INLINE onkeydown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeypress@ attribute.
 --
@@ -1252,7 +1252,7 @@
 {-# INLINE onkeypress #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onkeyup@ attribute.
 --
@@ -1270,7 +1270,7 @@
 {-# INLINE onkeyup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onload@ attribute.
 --
@@ -1288,7 +1288,7 @@
 {-# INLINE onload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousedown@ attribute.
 --
@@ -1306,7 +1306,7 @@
 {-# INLINE onmousedown #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmousemove@ attribute.
 --
@@ -1324,7 +1324,7 @@
 {-# INLINE onmousemove #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseout@ attribute.
 --
@@ -1342,7 +1342,7 @@
 {-# INLINE onmouseout #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseover@ attribute.
 --
@@ -1360,7 +1360,7 @@
 {-# INLINE onmouseover #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onmouseup@ attribute.
 --
@@ -1378,7 +1378,7 @@
 {-# INLINE onmouseup #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onreset@ attribute.
 --
@@ -1396,7 +1396,7 @@
 {-# INLINE onreset #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onselect@ attribute.
 --
@@ -1414,7 +1414,7 @@
 {-# INLINE onselect #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onsubmit@ attribute.
 --
@@ -1432,7 +1432,7 @@
 {-# INLINE onsubmit #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @onunload@ attribute.
 --
@@ -1450,7 +1450,7 @@
 {-# INLINE onunload #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @profile@ attribute.
 --
@@ -1468,7 +1468,7 @@
 {-# INLINE profile #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @readonly@ attribute.
 --
@@ -1486,7 +1486,7 @@
 {-# INLINE readonly #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rel@ attribute.
 --
@@ -1504,7 +1504,7 @@
 {-# INLINE rel #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rev@ attribute.
 --
@@ -1522,7 +1522,7 @@
 {-# INLINE rev #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rows@ attribute.
 --
@@ -1540,7 +1540,7 @@
 {-# INLINE rows #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rowspan@ attribute.
 --
@@ -1558,7 +1558,7 @@
 {-# INLINE rowspan #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @rules@ attribute.
 --
@@ -1576,7 +1576,7 @@
 {-# INLINE rules #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scheme@ attribute.
 --
@@ -1594,7 +1594,7 @@
 {-# INLINE scheme #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @scope@ attribute.
 --
@@ -1612,7 +1612,7 @@
 {-# INLINE scope #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @selected@ attribute.
 --
@@ -1630,7 +1630,7 @@
 {-# INLINE selected #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @shape@ attribute.
 --
@@ -1648,7 +1648,7 @@
 {-# INLINE shape #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @size@ attribute.
 --
@@ -1666,7 +1666,7 @@
 {-# INLINE size #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @span@ attribute.
 --
@@ -1684,7 +1684,7 @@
 {-# INLINE span #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @src@ attribute.
 --
@@ -1702,7 +1702,7 @@
 {-# INLINE src #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @standby@ attribute.
 --
@@ -1720,7 +1720,7 @@
 {-# INLINE standby #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @start@ attribute.
 --
@@ -1738,7 +1738,7 @@
 {-# INLINE start #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @style@ attribute.
 --
@@ -1756,7 +1756,7 @@
 {-# INLINE style #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @summary@ attribute.
 --
@@ -1774,7 +1774,7 @@
 {-# INLINE summary #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @tabindex@ attribute.
 --
@@ -1792,7 +1792,7 @@
 {-# INLINE tabindex #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @target@ attribute.
 --
@@ -1810,7 +1810,7 @@
 {-# INLINE target #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @title@ attribute.
 --
@@ -1828,7 +1828,7 @@
 {-# INLINE title #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @type@ attribute.
 --
@@ -1846,7 +1846,7 @@
 {-# INLINE type_ #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @usemap@ attribute.
 --
@@ -1864,7 +1864,7 @@
 {-# INLINE usemap #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valign@ attribute.
 --
@@ -1882,7 +1882,7 @@
 {-# INLINE valign #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @value@ attribute.
 --
@@ -1900,7 +1900,7 @@
 {-# INLINE value #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @valuetype@ attribute.
 --
@@ -1918,7 +1918,7 @@
 {-# INLINE valuetype #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @vspace@ attribute.
 --
@@ -1936,7 +1936,7 @@
 {-# INLINE vspace #-}
 
 -- WARNING: The next block of code was automatically generated by
--- src/Util/GenerateHtmlCombinators.hs:248
+-- src/Util/GenerateHtmlCombinators.hs:250
 --
 -- | Combinator for the @width@ attribute.
 --
diff --git a/src/Text/Blaze/XHtml5.hs b/src/Text/Blaze/XHtml5.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Blaze/XHtml5.hs
@@ -0,0 +1,2246 @@
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:70
+--
+{-# LANGUAGE OverloadedStrings #-}
+-- | This module exports HTML combinators used to create documents.
+--
+module Text.Blaze.XHtml5
+    ( module Text.Blaze.Html
+    , docType
+    , docTypeHtml
+    , a
+    , abbr
+    , address
+    , area
+    , article
+    , aside
+    , audio
+    , b
+    , base
+    , bdi
+    , bdo
+    , blockquote
+    , body
+    , br
+    , button
+    , canvas
+    , caption
+    , cite
+    , code
+    , col
+    , colgroup
+    , command
+    , data_
+    , datalist
+    , dd
+    , del
+    , details
+    , dfn
+    , dialog
+    , div
+    , dl
+    , dt
+    , em
+    , embed
+    , fieldset
+    , figcaption
+    , figure
+    , footer
+    , form
+    , h1
+    , h2
+    , h3
+    , h4
+    , h5
+    , h6
+    , head
+    , header
+    , hgroup
+    , hr
+    , html
+    , i
+    , iframe
+    , img
+    , input
+    , ins
+    , kbd
+    , keygen
+    , label
+    , legend
+    , li
+    , link
+    , main
+    , map
+    , mark
+    , menu
+    , menuitem
+    , meta
+    , meter
+    , nav
+    , noscript
+    , object
+    , ol
+    , optgroup
+    , option
+    , output
+    , p
+    , param
+    , picture
+    , pre
+    , progress
+    , q
+    , rp
+    , rt
+    , ruby
+    , s
+    , samp
+    , script
+    , search
+    , section
+    , select
+    , slot
+    , small
+    , source
+    , span
+    , strong
+    , style
+    , sub
+    , summary
+    , sup
+    , table
+    , tbody
+    , td
+    , template
+    , textarea
+    , tfoot
+    , th
+    , thead
+    , time
+    , title
+    , tr
+    , track
+    , u
+    , ul
+    , var
+    , video
+    , wbr
+    ) where
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:78
+--
+import Prelude ((>>), (.))
+
+import Text.Blaze
+import Text.Blaze.Internal
+import Text.Blaze.Html
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:157
+--
+-- | Combinator for the document type. This should be placed at the top
+-- of every HTML page.
+--
+-- Example:
+--
+-- > docType
+--
+-- Result:
+--
+-- > <!DOCTYPE html>
+--
+docType :: Html  -- ^ The document type HTML.
+docType = preEscapedText "<!DOCTYPE html>\n"
+{-# INLINE docType #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:178
+--
+-- | Combinator for the @\<html>@ element. This combinator will also
+-- insert the correct doctype.
+--
+-- Example:
+--
+-- > docTypeHtml $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <!DOCTYPE html>
+-- > <html><span>foo</span></html>
+--
+docTypeHtml :: Html  -- ^ Inner HTML.
+            -> Html  -- ^ Resulting HTML.
+docTypeHtml inner = docType >> html inner
+{-# INLINE docTypeHtml #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<a>@ element.
+--
+-- Example:
+--
+-- > a $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <a><span>foo</span></a>
+--
+a :: Html  -- ^ Inner HTML.
+  -> Html  -- ^ Resulting HTML.
+a = Parent "a" "<a" "</a>"
+{-# INLINE a #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<abbr>@ element.
+--
+-- Example:
+--
+-- > abbr $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <abbr><span>foo</span></abbr>
+--
+abbr :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+abbr = Parent "abbr" "<abbr" "</abbr>"
+{-# INLINE abbr #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<address>@ element.
+--
+-- Example:
+--
+-- > address $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <address><span>foo</span></address>
+--
+address :: Html  -- ^ Inner HTML.
+        -> Html  -- ^ Resulting HTML.
+address = Parent "address" "<address" "</address>"
+{-# INLINE address #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<area />@ element.
+--
+-- Example:
+--
+-- > area
+--
+-- Result:
+--
+-- > <area />
+--
+area :: Html  -- ^ Resulting HTML.
+area = Leaf "area" "<area" " />" ()
+{-# INLINE area #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<article>@ element.
+--
+-- Example:
+--
+-- > article $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <article><span>foo</span></article>
+--
+article :: Html  -- ^ Inner HTML.
+        -> Html  -- ^ Resulting HTML.
+article = Parent "article" "<article" "</article>"
+{-# INLINE article #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<aside>@ element.
+--
+-- Example:
+--
+-- > aside $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <aside><span>foo</span></aside>
+--
+aside :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+aside = Parent "aside" "<aside" "</aside>"
+{-# INLINE aside #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<audio>@ element.
+--
+-- Example:
+--
+-- > audio $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <audio><span>foo</span></audio>
+--
+audio :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+audio = Parent "audio" "<audio" "</audio>"
+{-# INLINE audio #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<b>@ element.
+--
+-- Example:
+--
+-- > b $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <b><span>foo</span></b>
+--
+b :: Html  -- ^ Inner HTML.
+  -> Html  -- ^ Resulting HTML.
+b = Parent "b" "<b" "</b>"
+{-# INLINE b #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<base />@ element.
+--
+-- Example:
+--
+-- > base
+--
+-- Result:
+--
+-- > <base />
+--
+base :: Html  -- ^ Resulting HTML.
+base = Leaf "base" "<base" " />" ()
+{-# INLINE base #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<bdi>@ element.
+--
+-- Example:
+--
+-- > bdi $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <bdi><span>foo</span></bdi>
+--
+bdi :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+bdi = Parent "bdi" "<bdi" "</bdi>"
+{-# INLINE bdi #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<bdo>@ element.
+--
+-- Example:
+--
+-- > bdo $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <bdo><span>foo</span></bdo>
+--
+bdo :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+bdo = Parent "bdo" "<bdo" "</bdo>"
+{-# INLINE bdo #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<blockquote>@ element.
+--
+-- Example:
+--
+-- > blockquote $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <blockquote><span>foo</span></blockquote>
+--
+blockquote :: Html  -- ^ Inner HTML.
+           -> Html  -- ^ Resulting HTML.
+blockquote = Parent "blockquote" "<blockquote" "</blockquote>"
+{-# INLINE blockquote #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<body>@ element.
+--
+-- Example:
+--
+-- > body $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <body><span>foo</span></body>
+--
+body :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+body = Parent "body" "<body" "</body>"
+{-# INLINE body #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<br />@ element.
+--
+-- Example:
+--
+-- > br
+--
+-- Result:
+--
+-- > <br />
+--
+br :: Html  -- ^ Resulting HTML.
+br = Leaf "br" "<br" " />" ()
+{-# INLINE br #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<button>@ element.
+--
+-- Example:
+--
+-- > button $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <button><span>foo</span></button>
+--
+button :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+button = Parent "button" "<button" "</button>"
+{-# INLINE button #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<canvas>@ element.
+--
+-- Example:
+--
+-- > canvas $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <canvas><span>foo</span></canvas>
+--
+canvas :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+canvas = Parent "canvas" "<canvas" "</canvas>"
+{-# INLINE canvas #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<caption>@ element.
+--
+-- Example:
+--
+-- > caption $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <caption><span>foo</span></caption>
+--
+caption :: Html  -- ^ Inner HTML.
+        -> Html  -- ^ Resulting HTML.
+caption = Parent "caption" "<caption" "</caption>"
+{-# INLINE caption #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<cite>@ element.
+--
+-- Example:
+--
+-- > cite $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <cite><span>foo</span></cite>
+--
+cite :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+cite = Parent "cite" "<cite" "</cite>"
+{-# INLINE cite #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<code>@ element.
+--
+-- Example:
+--
+-- > code $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <code><span>foo</span></code>
+--
+code :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+code = Parent "code" "<code" "</code>"
+{-# INLINE code #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<col />@ element.
+--
+-- Example:
+--
+-- > col
+--
+-- Result:
+--
+-- > <col />
+--
+col :: Html  -- ^ Resulting HTML.
+col = Leaf "col" "<col" " />" ()
+{-# INLINE col #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<colgroup>@ element.
+--
+-- Example:
+--
+-- > colgroup $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <colgroup><span>foo</span></colgroup>
+--
+colgroup :: Html  -- ^ Inner HTML.
+         -> Html  -- ^ Resulting HTML.
+colgroup = Parent "colgroup" "<colgroup" "</colgroup>"
+{-# INLINE colgroup #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<command>@ element.
+--
+-- Example:
+--
+-- > command $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <command><span>foo</span></command>
+--
+command :: Html  -- ^ Inner HTML.
+        -> Html  -- ^ Resulting HTML.
+command = Parent "command" "<command" "</command>"
+{-# INLINE command #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<data>@ element.
+--
+-- Example:
+--
+-- > data_ $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <data><span>foo</span></data>
+--
+data_ :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+data_ = Parent "data" "<data" "</data>"
+{-# INLINE data_ #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<datalist>@ element.
+--
+-- Example:
+--
+-- > datalist $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <datalist><span>foo</span></datalist>
+--
+datalist :: Html  -- ^ Inner HTML.
+         -> Html  -- ^ Resulting HTML.
+datalist = Parent "datalist" "<datalist" "</datalist>"
+{-# INLINE datalist #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<dd>@ element.
+--
+-- Example:
+--
+-- > dd $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <dd><span>foo</span></dd>
+--
+dd :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+dd = Parent "dd" "<dd" "</dd>"
+{-# INLINE dd #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<del>@ element.
+--
+-- Example:
+--
+-- > del $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <del><span>foo</span></del>
+--
+del :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+del = Parent "del" "<del" "</del>"
+{-# INLINE del #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<details>@ element.
+--
+-- Example:
+--
+-- > details $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <details><span>foo</span></details>
+--
+details :: Html  -- ^ Inner HTML.
+        -> Html  -- ^ Resulting HTML.
+details = Parent "details" "<details" "</details>"
+{-# INLINE details #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<dfn>@ element.
+--
+-- Example:
+--
+-- > dfn $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <dfn><span>foo</span></dfn>
+--
+dfn :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+dfn = Parent "dfn" "<dfn" "</dfn>"
+{-# INLINE dfn #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<dialog>@ element.
+--
+-- Example:
+--
+-- > dialog $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <dialog><span>foo</span></dialog>
+--
+dialog :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+dialog = Parent "dialog" "<dialog" "</dialog>"
+{-# INLINE dialog #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<div>@ element.
+--
+-- Example:
+--
+-- > div $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <div><span>foo</span></div>
+--
+div :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+div = Parent "div" "<div" "</div>"
+{-# INLINE div #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<dl>@ element.
+--
+-- Example:
+--
+-- > dl $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <dl><span>foo</span></dl>
+--
+dl :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+dl = Parent "dl" "<dl" "</dl>"
+{-# INLINE dl #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<dt>@ element.
+--
+-- Example:
+--
+-- > dt $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <dt><span>foo</span></dt>
+--
+dt :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+dt = Parent "dt" "<dt" "</dt>"
+{-# INLINE dt #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<em>@ element.
+--
+-- Example:
+--
+-- > em $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <em><span>foo</span></em>
+--
+em :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+em = Parent "em" "<em" "</em>"
+{-# INLINE em #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<embed />@ element.
+--
+-- Example:
+--
+-- > embed
+--
+-- Result:
+--
+-- > <embed />
+--
+embed :: Html  -- ^ Resulting HTML.
+embed = Leaf "embed" "<embed" " />" ()
+{-# INLINE embed #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<fieldset>@ element.
+--
+-- Example:
+--
+-- > fieldset $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <fieldset><span>foo</span></fieldset>
+--
+fieldset :: Html  -- ^ Inner HTML.
+         -> Html  -- ^ Resulting HTML.
+fieldset = Parent "fieldset" "<fieldset" "</fieldset>"
+{-# INLINE fieldset #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<figcaption>@ element.
+--
+-- Example:
+--
+-- > figcaption $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <figcaption><span>foo</span></figcaption>
+--
+figcaption :: Html  -- ^ Inner HTML.
+           -> Html  -- ^ Resulting HTML.
+figcaption = Parent "figcaption" "<figcaption" "</figcaption>"
+{-# INLINE figcaption #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<figure>@ element.
+--
+-- Example:
+--
+-- > figure $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <figure><span>foo</span></figure>
+--
+figure :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+figure = Parent "figure" "<figure" "</figure>"
+{-# INLINE figure #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<footer>@ element.
+--
+-- Example:
+--
+-- > footer $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <footer><span>foo</span></footer>
+--
+footer :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+footer = Parent "footer" "<footer" "</footer>"
+{-# INLINE footer #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<form>@ element.
+--
+-- Example:
+--
+-- > form $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <form><span>foo</span></form>
+--
+form :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+form = Parent "form" "<form" "</form>"
+{-# INLINE form #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<h1>@ element.
+--
+-- Example:
+--
+-- > h1 $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <h1><span>foo</span></h1>
+--
+h1 :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+h1 = Parent "h1" "<h1" "</h1>"
+{-# INLINE h1 #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<h2>@ element.
+--
+-- Example:
+--
+-- > h2 $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <h2><span>foo</span></h2>
+--
+h2 :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+h2 = Parent "h2" "<h2" "</h2>"
+{-# INLINE h2 #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<h3>@ element.
+--
+-- Example:
+--
+-- > h3 $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <h3><span>foo</span></h3>
+--
+h3 :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+h3 = Parent "h3" "<h3" "</h3>"
+{-# INLINE h3 #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<h4>@ element.
+--
+-- Example:
+--
+-- > h4 $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <h4><span>foo</span></h4>
+--
+h4 :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+h4 = Parent "h4" "<h4" "</h4>"
+{-# INLINE h4 #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<h5>@ element.
+--
+-- Example:
+--
+-- > h5 $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <h5><span>foo</span></h5>
+--
+h5 :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+h5 = Parent "h5" "<h5" "</h5>"
+{-# INLINE h5 #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<h6>@ element.
+--
+-- Example:
+--
+-- > h6 $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <h6><span>foo</span></h6>
+--
+h6 :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+h6 = Parent "h6" "<h6" "</h6>"
+{-# INLINE h6 #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<head>@ element.
+--
+-- Example:
+--
+-- > head $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <head><span>foo</span></head>
+--
+head :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+head = Parent "head" "<head" "</head>"
+{-# INLINE head #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<header>@ element.
+--
+-- Example:
+--
+-- > header $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <header><span>foo</span></header>
+--
+header :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+header = Parent "header" "<header" "</header>"
+{-# INLINE header #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<hgroup>@ element.
+--
+-- Example:
+--
+-- > hgroup $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <hgroup><span>foo</span></hgroup>
+--
+hgroup :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+hgroup = Parent "hgroup" "<hgroup" "</hgroup>"
+{-# INLINE hgroup #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<hr />@ element.
+--
+-- Example:
+--
+-- > hr
+--
+-- Result:
+--
+-- > <hr />
+--
+hr :: Html  -- ^ Resulting HTML.
+hr = Leaf "hr" "<hr" " />" ()
+{-# INLINE hr #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<html>@ element.
+--
+-- Example:
+--
+-- > html $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <html><span>foo</span></html>
+--
+html :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+html = Parent "html" "<html" "</html>"
+{-# INLINE html #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<i>@ element.
+--
+-- Example:
+--
+-- > i $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <i><span>foo</span></i>
+--
+i :: Html  -- ^ Inner HTML.
+  -> Html  -- ^ Resulting HTML.
+i = Parent "i" "<i" "</i>"
+{-# INLINE i #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<iframe>@ element.
+--
+-- Example:
+--
+-- > iframe $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <iframe><span>foo</span></iframe>
+--
+iframe :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+iframe = Parent "iframe" "<iframe" "</iframe>"
+{-# INLINE iframe #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<img />@ element.
+--
+-- Example:
+--
+-- > img
+--
+-- Result:
+--
+-- > <img />
+--
+img :: Html  -- ^ Resulting HTML.
+img = Leaf "img" "<img" " />" ()
+{-# INLINE img #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<input />@ element.
+--
+-- Example:
+--
+-- > input
+--
+-- Result:
+--
+-- > <input />
+--
+input :: Html  -- ^ Resulting HTML.
+input = Leaf "input" "<input" " />" ()
+{-# INLINE input #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<ins>@ element.
+--
+-- Example:
+--
+-- > ins $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <ins><span>foo</span></ins>
+--
+ins :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+ins = Parent "ins" "<ins" "</ins>"
+{-# INLINE ins #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<kbd>@ element.
+--
+-- Example:
+--
+-- > kbd $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <kbd><span>foo</span></kbd>
+--
+kbd :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+kbd = Parent "kbd" "<kbd" "</kbd>"
+{-# INLINE kbd #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<keygen />@ element.
+--
+-- Example:
+--
+-- > keygen
+--
+-- Result:
+--
+-- > <keygen />
+--
+keygen :: Html  -- ^ Resulting HTML.
+keygen = Leaf "keygen" "<keygen" " />" ()
+{-# INLINE keygen #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<label>@ element.
+--
+-- Example:
+--
+-- > label $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <label><span>foo</span></label>
+--
+label :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+label = Parent "label" "<label" "</label>"
+{-# INLINE label #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<legend>@ element.
+--
+-- Example:
+--
+-- > legend $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <legend><span>foo</span></legend>
+--
+legend :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+legend = Parent "legend" "<legend" "</legend>"
+{-# INLINE legend #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<li>@ element.
+--
+-- Example:
+--
+-- > li $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <li><span>foo</span></li>
+--
+li :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+li = Parent "li" "<li" "</li>"
+{-# INLINE li #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<link />@ element.
+--
+-- Example:
+--
+-- > link
+--
+-- Result:
+--
+-- > <link />
+--
+link :: Html  -- ^ Resulting HTML.
+link = Leaf "link" "<link" " />" ()
+{-# INLINE link #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<main>@ element.
+--
+-- Example:
+--
+-- > main $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <main><span>foo</span></main>
+--
+main :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+main = Parent "main" "<main" "</main>"
+{-# INLINE main #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<map>@ element.
+--
+-- Example:
+--
+-- > map $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <map><span>foo</span></map>
+--
+map :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+map = Parent "map" "<map" "</map>"
+{-# INLINE map #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<mark>@ element.
+--
+-- Example:
+--
+-- > mark $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <mark><span>foo</span></mark>
+--
+mark :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+mark = Parent "mark" "<mark" "</mark>"
+{-# INLINE mark #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<menu>@ element.
+--
+-- Example:
+--
+-- > menu $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <menu><span>foo</span></menu>
+--
+menu :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+menu = Parent "menu" "<menu" "</menu>"
+{-# INLINE menu #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<menuitem />@ element.
+--
+-- Example:
+--
+-- > menuitem
+--
+-- Result:
+--
+-- > <menuitem />
+--
+menuitem :: Html  -- ^ Resulting HTML.
+menuitem = Leaf "menuitem" "<menuitem" " />" ()
+{-# INLINE menuitem #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<meta />@ element.
+--
+-- Example:
+--
+-- > meta
+--
+-- Result:
+--
+-- > <meta />
+--
+meta :: Html  -- ^ Resulting HTML.
+meta = Leaf "meta" "<meta" " />" ()
+{-# INLINE meta #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<meter>@ element.
+--
+-- Example:
+--
+-- > meter $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <meter><span>foo</span></meter>
+--
+meter :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+meter = Parent "meter" "<meter" "</meter>"
+{-# INLINE meter #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<nav>@ element.
+--
+-- Example:
+--
+-- > nav $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <nav><span>foo</span></nav>
+--
+nav :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+nav = Parent "nav" "<nav" "</nav>"
+{-# INLINE nav #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<noscript>@ element.
+--
+-- Example:
+--
+-- > noscript $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <noscript><span>foo</span></noscript>
+--
+noscript :: Html  -- ^ Inner HTML.
+         -> Html  -- ^ Resulting HTML.
+noscript = Parent "noscript" "<noscript" "</noscript>"
+{-# INLINE noscript #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<object>@ element.
+--
+-- Example:
+--
+-- > object $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <object><span>foo</span></object>
+--
+object :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+object = Parent "object" "<object" "</object>"
+{-# INLINE object #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<ol>@ element.
+--
+-- Example:
+--
+-- > ol $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <ol><span>foo</span></ol>
+--
+ol :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+ol = Parent "ol" "<ol" "</ol>"
+{-# INLINE ol #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<optgroup>@ element.
+--
+-- Example:
+--
+-- > optgroup $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <optgroup><span>foo</span></optgroup>
+--
+optgroup :: Html  -- ^ Inner HTML.
+         -> Html  -- ^ Resulting HTML.
+optgroup = Parent "optgroup" "<optgroup" "</optgroup>"
+{-# INLINE optgroup #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<option>@ element.
+--
+-- Example:
+--
+-- > option $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <option><span>foo</span></option>
+--
+option :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+option = Parent "option" "<option" "</option>"
+{-# INLINE option #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<output>@ element.
+--
+-- Example:
+--
+-- > output $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <output><span>foo</span></output>
+--
+output :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+output = Parent "output" "<output" "</output>"
+{-# INLINE output #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<p>@ element.
+--
+-- Example:
+--
+-- > p $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <p><span>foo</span></p>
+--
+p :: Html  -- ^ Inner HTML.
+  -> Html  -- ^ Resulting HTML.
+p = Parent "p" "<p" "</p>"
+{-# INLINE p #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<param />@ element.
+--
+-- Example:
+--
+-- > param
+--
+-- Result:
+--
+-- > <param />
+--
+param :: Html  -- ^ Resulting HTML.
+param = Leaf "param" "<param" " />" ()
+{-# INLINE param #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<picture>@ element.
+--
+-- Example:
+--
+-- > picture $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <picture><span>foo</span></picture>
+--
+picture :: Html  -- ^ Inner HTML.
+        -> Html  -- ^ Resulting HTML.
+picture = Parent "picture" "<picture" "</picture>"
+{-# INLINE picture #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<pre>@ element.
+--
+-- Example:
+--
+-- > pre $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <pre><span>foo</span></pre>
+--
+pre :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+pre = Parent "pre" "<pre" "</pre>"
+{-# INLINE pre #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<progress>@ element.
+--
+-- Example:
+--
+-- > progress $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <progress><span>foo</span></progress>
+--
+progress :: Html  -- ^ Inner HTML.
+         -> Html  -- ^ Resulting HTML.
+progress = Parent "progress" "<progress" "</progress>"
+{-# INLINE progress #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<q>@ element.
+--
+-- Example:
+--
+-- > q $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <q><span>foo</span></q>
+--
+q :: Html  -- ^ Inner HTML.
+  -> Html  -- ^ Resulting HTML.
+q = Parent "q" "<q" "</q>"
+{-# INLINE q #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<rp>@ element.
+--
+-- Example:
+--
+-- > rp $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <rp><span>foo</span></rp>
+--
+rp :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+rp = Parent "rp" "<rp" "</rp>"
+{-# INLINE rp #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<rt>@ element.
+--
+-- Example:
+--
+-- > rt $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <rt><span>foo</span></rt>
+--
+rt :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+rt = Parent "rt" "<rt" "</rt>"
+{-# INLINE rt #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<ruby>@ element.
+--
+-- Example:
+--
+-- > ruby $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <ruby><span>foo</span></ruby>
+--
+ruby :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+ruby = Parent "ruby" "<ruby" "</ruby>"
+{-# INLINE ruby #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<s>@ element.
+--
+-- Example:
+--
+-- > s $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <s><span>foo</span></s>
+--
+s :: Html  -- ^ Inner HTML.
+  -> Html  -- ^ Resulting HTML.
+s = Parent "s" "<s" "</s>"
+{-# INLINE s #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<samp>@ element.
+--
+-- Example:
+--
+-- > samp $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <samp><span>foo</span></samp>
+--
+samp :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+samp = Parent "samp" "<samp" "</samp>"
+{-# INLINE samp #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<script>@ element.
+--
+-- Example:
+--
+-- > script $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <script><span>foo</span></script>
+--
+script :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+script = Parent "script" "<script" "</script>" . external
+{-# INLINE script #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<search>@ element.
+--
+-- Example:
+--
+-- > search $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <search><span>foo</span></search>
+--
+search :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+search = Parent "search" "<search" "</search>"
+{-# INLINE search #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<section>@ element.
+--
+-- Example:
+--
+-- > section $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <section><span>foo</span></section>
+--
+section :: Html  -- ^ Inner HTML.
+        -> Html  -- ^ Resulting HTML.
+section = Parent "section" "<section" "</section>"
+{-# INLINE section #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<select>@ element.
+--
+-- Example:
+--
+-- > select $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <select><span>foo</span></select>
+--
+select :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+select = Parent "select" "<select" "</select>"
+{-# INLINE select #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<slot>@ element.
+--
+-- Example:
+--
+-- > slot $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <slot><span>foo</span></slot>
+--
+slot :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+slot = Parent "slot" "<slot" "</slot>"
+{-# INLINE slot #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<small>@ element.
+--
+-- Example:
+--
+-- > small $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <small><span>foo</span></small>
+--
+small :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+small = Parent "small" "<small" "</small>"
+{-# INLINE small #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<source />@ element.
+--
+-- Example:
+--
+-- > source
+--
+-- Result:
+--
+-- > <source />
+--
+source :: Html  -- ^ Resulting HTML.
+source = Leaf "source" "<source" " />" ()
+{-# INLINE source #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<span>@ element.
+--
+-- Example:
+--
+-- > span $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <span><span>foo</span></span>
+--
+span :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+span = Parent "span" "<span" "</span>"
+{-# INLINE span #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<strong>@ element.
+--
+-- Example:
+--
+-- > strong $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <strong><span>foo</span></strong>
+--
+strong :: Html  -- ^ Inner HTML.
+       -> Html  -- ^ Resulting HTML.
+strong = Parent "strong" "<strong" "</strong>"
+{-# INLINE strong #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<style>@ element.
+--
+-- Example:
+--
+-- > style $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <style><span>foo</span></style>
+--
+style :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+style = Parent "style" "<style" "</style>" . external
+{-# INLINE style #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<sub>@ element.
+--
+-- Example:
+--
+-- > sub $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <sub><span>foo</span></sub>
+--
+sub :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+sub = Parent "sub" "<sub" "</sub>"
+{-# INLINE sub #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<summary>@ element.
+--
+-- Example:
+--
+-- > summary $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <summary><span>foo</span></summary>
+--
+summary :: Html  -- ^ Inner HTML.
+        -> Html  -- ^ Resulting HTML.
+summary = Parent "summary" "<summary" "</summary>"
+{-# INLINE summary #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<sup>@ element.
+--
+-- Example:
+--
+-- > sup $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <sup><span>foo</span></sup>
+--
+sup :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+sup = Parent "sup" "<sup" "</sup>"
+{-# INLINE sup #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<table>@ element.
+--
+-- Example:
+--
+-- > table $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <table><span>foo</span></table>
+--
+table :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+table = Parent "table" "<table" "</table>"
+{-# INLINE table #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<tbody>@ element.
+--
+-- Example:
+--
+-- > tbody $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <tbody><span>foo</span></tbody>
+--
+tbody :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+tbody = Parent "tbody" "<tbody" "</tbody>"
+{-# INLINE tbody #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<td>@ element.
+--
+-- Example:
+--
+-- > td $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <td><span>foo</span></td>
+--
+td :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+td = Parent "td" "<td" "</td>"
+{-# INLINE td #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<template>@ element.
+--
+-- Example:
+--
+-- > template $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <template><span>foo</span></template>
+--
+template :: Html  -- ^ Inner HTML.
+         -> Html  -- ^ Resulting HTML.
+template = Parent "template" "<template" "</template>"
+{-# INLINE template #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<textarea>@ element.
+--
+-- Example:
+--
+-- > textarea $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <textarea><span>foo</span></textarea>
+--
+textarea :: Html  -- ^ Inner HTML.
+         -> Html  -- ^ Resulting HTML.
+textarea = Parent "textarea" "<textarea" "</textarea>"
+{-# INLINE textarea #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<tfoot>@ element.
+--
+-- Example:
+--
+-- > tfoot $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <tfoot><span>foo</span></tfoot>
+--
+tfoot :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+tfoot = Parent "tfoot" "<tfoot" "</tfoot>"
+{-# INLINE tfoot #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<th>@ element.
+--
+-- Example:
+--
+-- > th $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <th><span>foo</span></th>
+--
+th :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+th = Parent "th" "<th" "</th>"
+{-# INLINE th #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<thead>@ element.
+--
+-- Example:
+--
+-- > thead $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <thead><span>foo</span></thead>
+--
+thead :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+thead = Parent "thead" "<thead" "</thead>"
+{-# INLINE thead #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<time>@ element.
+--
+-- Example:
+--
+-- > time $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <time><span>foo</span></time>
+--
+time :: Html  -- ^ Inner HTML.
+     -> Html  -- ^ Resulting HTML.
+time = Parent "time" "<time" "</time>"
+{-# INLINE time #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<title>@ element.
+--
+-- Example:
+--
+-- > title $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <title><span>foo</span></title>
+--
+title :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+title = Parent "title" "<title" "</title>"
+{-# INLINE title #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<tr>@ element.
+--
+-- Example:
+--
+-- > tr $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <tr><span>foo</span></tr>
+--
+tr :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+tr = Parent "tr" "<tr" "</tr>"
+{-# INLINE tr #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<track />@ element.
+--
+-- Example:
+--
+-- > track
+--
+-- Result:
+--
+-- > <track />
+--
+track :: Html  -- ^ Resulting HTML.
+track = Leaf "track" "<track" " />" ()
+{-# INLINE track #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<u>@ element.
+--
+-- Example:
+--
+-- > u $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <u><span>foo</span></u>
+--
+u :: Html  -- ^ Inner HTML.
+  -> Html  -- ^ Resulting HTML.
+u = Parent "u" "<u" "</u>"
+{-# INLINE u #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<ul>@ element.
+--
+-- Example:
+--
+-- > ul $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <ul><span>foo</span></ul>
+--
+ul :: Html  -- ^ Inner HTML.
+   -> Html  -- ^ Resulting HTML.
+ul = Parent "ul" "<ul" "</ul>"
+{-# INLINE ul #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<var>@ element.
+--
+-- Example:
+--
+-- > var $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <var><span>foo</span></var>
+--
+var :: Html  -- ^ Inner HTML.
+    -> Html  -- ^ Resulting HTML.
+var = Parent "var" "<var" "</var>"
+{-# INLINE var #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:200
+--
+-- | Combinator for the @\<video>@ element.
+--
+-- Example:
+--
+-- > video $ span $ toHtml "foo"
+--
+-- Result:
+--
+-- > <video><span>foo</span></video>
+--
+video :: Html  -- ^ Inner HTML.
+      -> Html  -- ^ Resulting HTML.
+video = Parent "video" "<video" "</video>"
+{-# INLINE video #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:227
+--
+-- | Combinator for the @\<wbr />@ element.
+--
+-- Example:
+--
+-- > wbr
+--
+-- Result:
+--
+-- > <wbr />
+--
+wbr :: Html  -- ^ Resulting HTML.
+wbr = Leaf "wbr" "<wbr" " />" ()
+{-# INLINE wbr #-}
diff --git a/src/Text/Blaze/XHtml5/Attributes.hs b/src/Text/Blaze/XHtml5/Attributes.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Blaze/XHtml5/Attributes.hs
@@ -0,0 +1,3341 @@
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:94
+--
+-- | This module exports combinators that provide you with the
+-- ability to set attributes on HTML elements.
+--
+{-# LANGUAGE OverloadedStrings #-}
+module Text.Blaze.XHtml5.Attributes
+    ( accept
+    , acceptCharset
+    , accesskey
+    , action
+    , alt
+    , async
+    , autocomplete
+    , autofocus
+    , autoplay
+    , challenge
+    , charset
+    , checked
+    , cite
+    , class_
+    , cols
+    , colspan
+    , content
+    , contenteditable
+    , contextmenu
+    , controls
+    , coords
+    , data_
+    , datetime
+    , defer
+    , dir
+    , disabled
+    , download
+    , draggable
+    , enctype
+    , for
+    , form
+    , formaction
+    , formenctype
+    , formmethod
+    , formnovalidate
+    , formtarget
+    , headers
+    , height
+    , hidden
+    , high
+    , href
+    , hreflang
+    , httpEquiv
+    , icon
+    , id
+    , ismap
+    , item
+    , itemprop
+    , itemscope
+    , itemtype
+    , keytype
+    , label
+    , lang
+    , list
+    , loop
+    , low
+    , manifest
+    , max
+    , maxlength
+    , media
+    , method
+    , min
+    , minlength
+    , multiple
+    , muted
+    , name
+    , novalidate
+    , onbeforeonload
+    , onbeforeprint
+    , onblur
+    , oncanplay
+    , oncanplaythrough
+    , onchange
+    , onclick
+    , oncontextmenu
+    , ondblclick
+    , ondrag
+    , ondragend
+    , ondragenter
+    , ondragleave
+    , ondragover
+    , ondragstart
+    , ondrop
+    , ondurationchange
+    , onemptied
+    , onended
+    , onerror
+    , onfocus
+    , onformchange
+    , onforminput
+    , onhaschange
+    , oninput
+    , oninvalid
+    , onkeydown
+    , onkeypress
+    , onkeyup
+    , onload
+    , onloadeddata
+    , onloadedmetadata
+    , onloadstart
+    , onmessage
+    , onmousedown
+    , onmousemove
+    , onmouseout
+    , onmouseover
+    , onmouseup
+    , onmousewheel
+    , ononline
+    , onpagehide
+    , onpageshow
+    , onpause
+    , onplay
+    , onplaying
+    , onprogress
+    , onpropstate
+    , onratechange
+    , onreadystatechange
+    , onredo
+    , onresize
+    , onscroll
+    , onseeked
+    , onseeking
+    , onselect
+    , onstalled
+    , onstorage
+    , onsubmit
+    , onsuspend
+    , ontimeupdate
+    , onundo
+    , onunload
+    , onvolumechange
+    , onwaiting
+    , open
+    , optimum
+    , pattern
+    , ping
+    , placeholder
+    , poster
+    , preload
+    , property
+    , pubdate
+    , radiogroup
+    , readonly
+    , rel
+    , required
+    , reversed
+    , role
+    , rows
+    , rowspan
+    , sandbox
+    , scope
+    , scoped
+    , seamless
+    , selected
+    , shape
+    , size
+    , sizes
+    , span
+    , spellcheck
+    , src
+    , srcdoc
+    , start
+    , step
+    , style
+    , subject
+    , summary
+    , tabindex
+    , target
+    , title
+    , type_
+    , usemap
+    , value
+    , width
+    , wrap
+    , xmlns
+    ) where
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:100
+--
+import Prelude ()
+
+import Text.Blaze.Internal (Attribute, AttributeValue, attribute)
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @accept@ attribute.
+--
+-- Example:
+--
+-- > div ! accept "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div accept="bar">Hello.</div>
+--
+accept :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+accept = attribute "accept" " accept=\""
+{-# INLINE accept #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @accept-charset@ attribute.
+--
+-- Example:
+--
+-- > div ! acceptCharset "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div accept-charset="bar">Hello.</div>
+--
+acceptCharset :: AttributeValue  -- ^ Attribute value.
+              -> Attribute       -- ^ Resulting attribute.
+acceptCharset = attribute "accept-charset" " accept-charset=\""
+{-# INLINE acceptCharset #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @accesskey@ attribute.
+--
+-- Example:
+--
+-- > div ! accesskey "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div accesskey="bar">Hello.</div>
+--
+accesskey :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+accesskey = attribute "accesskey" " accesskey=\""
+{-# INLINE accesskey #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @action@ attribute.
+--
+-- Example:
+--
+-- > div ! action "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div action="bar">Hello.</div>
+--
+action :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+action = attribute "action" " action=\""
+{-# INLINE action #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @alt@ attribute.
+--
+-- Example:
+--
+-- > div ! alt "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div alt="bar">Hello.</div>
+--
+alt :: AttributeValue  -- ^ Attribute value.
+    -> Attribute       -- ^ Resulting attribute.
+alt = attribute "alt" " alt=\""
+{-# INLINE alt #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @async@ attribute.
+--
+-- Example:
+--
+-- > div ! async "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div async="bar">Hello.</div>
+--
+async :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+async = attribute "async" " async=\""
+{-# INLINE async #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @autocomplete@ attribute.
+--
+-- Example:
+--
+-- > div ! autocomplete "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div autocomplete="bar">Hello.</div>
+--
+autocomplete :: AttributeValue  -- ^ Attribute value.
+             -> Attribute       -- ^ Resulting attribute.
+autocomplete = attribute "autocomplete" " autocomplete=\""
+{-# INLINE autocomplete #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @autofocus@ attribute.
+--
+-- Example:
+--
+-- > div ! autofocus "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div autofocus="bar">Hello.</div>
+--
+autofocus :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+autofocus = attribute "autofocus" " autofocus=\""
+{-# INLINE autofocus #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @autoplay@ attribute.
+--
+-- Example:
+--
+-- > div ! autoplay "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div autoplay="bar">Hello.</div>
+--
+autoplay :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+autoplay = attribute "autoplay" " autoplay=\""
+{-# INLINE autoplay #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @challenge@ attribute.
+--
+-- Example:
+--
+-- > div ! challenge "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div challenge="bar">Hello.</div>
+--
+challenge :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+challenge = attribute "challenge" " challenge=\""
+{-# INLINE challenge #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @charset@ attribute.
+--
+-- Example:
+--
+-- > div ! charset "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div charset="bar">Hello.</div>
+--
+charset :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+charset = attribute "charset" " charset=\""
+{-# INLINE charset #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @checked@ attribute.
+--
+-- Example:
+--
+-- > div ! checked "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div checked="bar">Hello.</div>
+--
+checked :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+checked = attribute "checked" " checked=\""
+{-# INLINE checked #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @cite@ attribute.
+--
+-- Example:
+--
+-- > div ! cite "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div cite="bar">Hello.</div>
+--
+cite :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+cite = attribute "cite" " cite=\""
+{-# INLINE cite #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @class@ attribute.
+--
+-- Example:
+--
+-- > div ! class_ "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div class="bar">Hello.</div>
+--
+class_ :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+class_ = attribute "class" " class=\""
+{-# INLINE class_ #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @cols@ attribute.
+--
+-- Example:
+--
+-- > div ! cols "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div cols="bar">Hello.</div>
+--
+cols :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+cols = attribute "cols" " cols=\""
+{-# INLINE cols #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @colspan@ attribute.
+--
+-- Example:
+--
+-- > div ! colspan "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div colspan="bar">Hello.</div>
+--
+colspan :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+colspan = attribute "colspan" " colspan=\""
+{-# INLINE colspan #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @content@ attribute.
+--
+-- Example:
+--
+-- > div ! content "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div content="bar">Hello.</div>
+--
+content :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+content = attribute "content" " content=\""
+{-# INLINE content #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @contenteditable@ attribute.
+--
+-- Example:
+--
+-- > div ! contenteditable "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div contenteditable="bar">Hello.</div>
+--
+contenteditable :: AttributeValue  -- ^ Attribute value.
+                -> Attribute       -- ^ Resulting attribute.
+contenteditable = attribute "contenteditable" " contenteditable=\""
+{-# INLINE contenteditable #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @contextmenu@ attribute.
+--
+-- Example:
+--
+-- > div ! contextmenu "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div contextmenu="bar">Hello.</div>
+--
+contextmenu :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+contextmenu = attribute "contextmenu" " contextmenu=\""
+{-# INLINE contextmenu #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @controls@ attribute.
+--
+-- Example:
+--
+-- > div ! controls "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div controls="bar">Hello.</div>
+--
+controls :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+controls = attribute "controls" " controls=\""
+{-# INLINE controls #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @coords@ attribute.
+--
+-- Example:
+--
+-- > div ! coords "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div coords="bar">Hello.</div>
+--
+coords :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+coords = attribute "coords" " coords=\""
+{-# INLINE coords #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @data@ attribute.
+--
+-- Example:
+--
+-- > div ! data_ "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div data="bar">Hello.</div>
+--
+data_ :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+data_ = attribute "data" " data=\""
+{-# INLINE data_ #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @datetime@ attribute.
+--
+-- Example:
+--
+-- > div ! datetime "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div datetime="bar">Hello.</div>
+--
+datetime :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+datetime = attribute "datetime" " datetime=\""
+{-# INLINE datetime #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @defer@ attribute.
+--
+-- Example:
+--
+-- > div ! defer "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div defer="bar">Hello.</div>
+--
+defer :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+defer = attribute "defer" " defer=\""
+{-# INLINE defer #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @dir@ attribute.
+--
+-- Example:
+--
+-- > div ! dir "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div dir="bar">Hello.</div>
+--
+dir :: AttributeValue  -- ^ Attribute value.
+    -> Attribute       -- ^ Resulting attribute.
+dir = attribute "dir" " dir=\""
+{-# INLINE dir #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @disabled@ attribute.
+--
+-- Example:
+--
+-- > div ! disabled "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div disabled="bar">Hello.</div>
+--
+disabled :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+disabled = attribute "disabled" " disabled=\""
+{-# INLINE disabled #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @download@ attribute.
+--
+-- Example:
+--
+-- > div ! download "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div download="bar">Hello.</div>
+--
+download :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+download = attribute "download" " download=\""
+{-# INLINE download #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @draggable@ attribute.
+--
+-- Example:
+--
+-- > div ! draggable "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div draggable="bar">Hello.</div>
+--
+draggable :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+draggable = attribute "draggable" " draggable=\""
+{-# INLINE draggable #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @enctype@ attribute.
+--
+-- Example:
+--
+-- > div ! enctype "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div enctype="bar">Hello.</div>
+--
+enctype :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+enctype = attribute "enctype" " enctype=\""
+{-# INLINE enctype #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @for@ attribute.
+--
+-- Example:
+--
+-- > div ! for "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div for="bar">Hello.</div>
+--
+for :: AttributeValue  -- ^ Attribute value.
+    -> Attribute       -- ^ Resulting attribute.
+for = attribute "for" " for=\""
+{-# INLINE for #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @form@ attribute.
+--
+-- Example:
+--
+-- > div ! form "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div form="bar">Hello.</div>
+--
+form :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+form = attribute "form" " form=\""
+{-# INLINE form #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @formaction@ attribute.
+--
+-- Example:
+--
+-- > div ! formaction "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div formaction="bar">Hello.</div>
+--
+formaction :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+formaction = attribute "formaction" " formaction=\""
+{-# INLINE formaction #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @formenctype@ attribute.
+--
+-- Example:
+--
+-- > div ! formenctype "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div formenctype="bar">Hello.</div>
+--
+formenctype :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+formenctype = attribute "formenctype" " formenctype=\""
+{-# INLINE formenctype #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @formmethod@ attribute.
+--
+-- Example:
+--
+-- > div ! formmethod "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div formmethod="bar">Hello.</div>
+--
+formmethod :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+formmethod = attribute "formmethod" " formmethod=\""
+{-# INLINE formmethod #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @formnovalidate@ attribute.
+--
+-- Example:
+--
+-- > div ! formnovalidate "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div formnovalidate="bar">Hello.</div>
+--
+formnovalidate :: AttributeValue  -- ^ Attribute value.
+               -> Attribute       -- ^ Resulting attribute.
+formnovalidate = attribute "formnovalidate" " formnovalidate=\""
+{-# INLINE formnovalidate #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @formtarget@ attribute.
+--
+-- Example:
+--
+-- > div ! formtarget "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div formtarget="bar">Hello.</div>
+--
+formtarget :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+formtarget = attribute "formtarget" " formtarget=\""
+{-# INLINE formtarget #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @headers@ attribute.
+--
+-- Example:
+--
+-- > div ! headers "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div headers="bar">Hello.</div>
+--
+headers :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+headers = attribute "headers" " headers=\""
+{-# INLINE headers #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @height@ attribute.
+--
+-- Example:
+--
+-- > div ! height "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div height="bar">Hello.</div>
+--
+height :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+height = attribute "height" " height=\""
+{-# INLINE height #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @hidden@ attribute.
+--
+-- Example:
+--
+-- > div ! hidden "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div hidden="bar">Hello.</div>
+--
+hidden :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+hidden = attribute "hidden" " hidden=\""
+{-# INLINE hidden #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @high@ attribute.
+--
+-- Example:
+--
+-- > div ! high "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div high="bar">Hello.</div>
+--
+high :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+high = attribute "high" " high=\""
+{-# INLINE high #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @href@ attribute.
+--
+-- Example:
+--
+-- > div ! href "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div href="bar">Hello.</div>
+--
+href :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+href = attribute "href" " href=\""
+{-# INLINE href #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @hreflang@ attribute.
+--
+-- Example:
+--
+-- > div ! hreflang "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div hreflang="bar">Hello.</div>
+--
+hreflang :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+hreflang = attribute "hreflang" " hreflang=\""
+{-# INLINE hreflang #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @http-equiv@ attribute.
+--
+-- Example:
+--
+-- > div ! httpEquiv "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div http-equiv="bar">Hello.</div>
+--
+httpEquiv :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+httpEquiv = attribute "http-equiv" " http-equiv=\""
+{-# INLINE httpEquiv #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @icon@ attribute.
+--
+-- Example:
+--
+-- > div ! icon "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div icon="bar">Hello.</div>
+--
+icon :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+icon = attribute "icon" " icon=\""
+{-# INLINE icon #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @id@ attribute.
+--
+-- Example:
+--
+-- > div ! id "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div id="bar">Hello.</div>
+--
+id :: AttributeValue  -- ^ Attribute value.
+   -> Attribute       -- ^ Resulting attribute.
+id = attribute "id" " id=\""
+{-# INLINE id #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ismap@ attribute.
+--
+-- Example:
+--
+-- > div ! ismap "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ismap="bar">Hello.</div>
+--
+ismap :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+ismap = attribute "ismap" " ismap=\""
+{-# INLINE ismap #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @item@ attribute.
+--
+-- Example:
+--
+-- > div ! item "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div item="bar">Hello.</div>
+--
+item :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+item = attribute "item" " item=\""
+{-# INLINE item #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @itemprop@ attribute.
+--
+-- Example:
+--
+-- > div ! itemprop "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div itemprop="bar">Hello.</div>
+--
+itemprop :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+itemprop = attribute "itemprop" " itemprop=\""
+{-# INLINE itemprop #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @itemscope@ attribute.
+--
+-- Example:
+--
+-- > div ! itemscope "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div itemscope="bar">Hello.</div>
+--
+itemscope :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+itemscope = attribute "itemscope" " itemscope=\""
+{-# INLINE itemscope #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @itemtype@ attribute.
+--
+-- Example:
+--
+-- > div ! itemtype "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div itemtype="bar">Hello.</div>
+--
+itemtype :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+itemtype = attribute "itemtype" " itemtype=\""
+{-# INLINE itemtype #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @keytype@ attribute.
+--
+-- Example:
+--
+-- > div ! keytype "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div keytype="bar">Hello.</div>
+--
+keytype :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+keytype = attribute "keytype" " keytype=\""
+{-# INLINE keytype #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @label@ attribute.
+--
+-- Example:
+--
+-- > div ! label "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div label="bar">Hello.</div>
+--
+label :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+label = attribute "label" " label=\""
+{-# INLINE label #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @lang@ attribute.
+--
+-- Example:
+--
+-- > div ! lang "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div lang="bar">Hello.</div>
+--
+lang :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+lang = attribute "lang" " lang=\""
+{-# INLINE lang #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @list@ attribute.
+--
+-- Example:
+--
+-- > div ! list "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div list="bar">Hello.</div>
+--
+list :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+list = attribute "list" " list=\""
+{-# INLINE list #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @loop@ attribute.
+--
+-- Example:
+--
+-- > div ! loop "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div loop="bar">Hello.</div>
+--
+loop :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+loop = attribute "loop" " loop=\""
+{-# INLINE loop #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @low@ attribute.
+--
+-- Example:
+--
+-- > div ! low "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div low="bar">Hello.</div>
+--
+low :: AttributeValue  -- ^ Attribute value.
+    -> Attribute       -- ^ Resulting attribute.
+low = attribute "low" " low=\""
+{-# INLINE low #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @manifest@ attribute.
+--
+-- Example:
+--
+-- > div ! manifest "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div manifest="bar">Hello.</div>
+--
+manifest :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+manifest = attribute "manifest" " manifest=\""
+{-# INLINE manifest #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @max@ attribute.
+--
+-- Example:
+--
+-- > div ! max "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div max="bar">Hello.</div>
+--
+max :: AttributeValue  -- ^ Attribute value.
+    -> Attribute       -- ^ Resulting attribute.
+max = attribute "max" " max=\""
+{-# INLINE max #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @maxlength@ attribute.
+--
+-- Example:
+--
+-- > div ! maxlength "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div maxlength="bar">Hello.</div>
+--
+maxlength :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+maxlength = attribute "maxlength" " maxlength=\""
+{-# INLINE maxlength #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @media@ attribute.
+--
+-- Example:
+--
+-- > div ! media "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div media="bar">Hello.</div>
+--
+media :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+media = attribute "media" " media=\""
+{-# INLINE media #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @method@ attribute.
+--
+-- Example:
+--
+-- > div ! method "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div method="bar">Hello.</div>
+--
+method :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+method = attribute "method" " method=\""
+{-# INLINE method #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @min@ attribute.
+--
+-- Example:
+--
+-- > div ! min "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div min="bar">Hello.</div>
+--
+min :: AttributeValue  -- ^ Attribute value.
+    -> Attribute       -- ^ Resulting attribute.
+min = attribute "min" " min=\""
+{-# INLINE min #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @minlength@ attribute.
+--
+-- Example:
+--
+-- > div ! minlength "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div minlength="bar">Hello.</div>
+--
+minlength :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+minlength = attribute "minlength" " minlength=\""
+{-# INLINE minlength #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @multiple@ attribute.
+--
+-- Example:
+--
+-- > div ! multiple "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div multiple="bar">Hello.</div>
+--
+multiple :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+multiple = attribute "multiple" " multiple=\""
+{-# INLINE multiple #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @muted@ attribute.
+--
+-- Example:
+--
+-- > div ! muted "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div muted="bar">Hello.</div>
+--
+muted :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+muted = attribute "muted" " muted=\""
+{-# INLINE muted #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @name@ attribute.
+--
+-- Example:
+--
+-- > div ! name "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div name="bar">Hello.</div>
+--
+name :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+name = attribute "name" " name=\""
+{-# INLINE name #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @novalidate@ attribute.
+--
+-- Example:
+--
+-- > div ! novalidate "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div novalidate="bar">Hello.</div>
+--
+novalidate :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+novalidate = attribute "novalidate" " novalidate=\""
+{-# INLINE novalidate #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onbeforeonload@ attribute.
+--
+-- Example:
+--
+-- > div ! onbeforeonload "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onbeforeonload="bar">Hello.</div>
+--
+onbeforeonload :: AttributeValue  -- ^ Attribute value.
+               -> Attribute       -- ^ Resulting attribute.
+onbeforeonload = attribute "onbeforeonload" " onbeforeonload=\""
+{-# INLINE onbeforeonload #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onbeforeprint@ attribute.
+--
+-- Example:
+--
+-- > div ! onbeforeprint "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onbeforeprint="bar">Hello.</div>
+--
+onbeforeprint :: AttributeValue  -- ^ Attribute value.
+              -> Attribute       -- ^ Resulting attribute.
+onbeforeprint = attribute "onbeforeprint" " onbeforeprint=\""
+{-# INLINE onbeforeprint #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onblur@ attribute.
+--
+-- Example:
+--
+-- > div ! onblur "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onblur="bar">Hello.</div>
+--
+onblur :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+onblur = attribute "onblur" " onblur=\""
+{-# INLINE onblur #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @oncanplay@ attribute.
+--
+-- Example:
+--
+-- > div ! oncanplay "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div oncanplay="bar">Hello.</div>
+--
+oncanplay :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+oncanplay = attribute "oncanplay" " oncanplay=\""
+{-# INLINE oncanplay #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @oncanplaythrough@ attribute.
+--
+-- Example:
+--
+-- > div ! oncanplaythrough "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div oncanplaythrough="bar">Hello.</div>
+--
+oncanplaythrough :: AttributeValue  -- ^ Attribute value.
+                 -> Attribute       -- ^ Resulting attribute.
+oncanplaythrough = attribute "oncanplaythrough" " oncanplaythrough=\""
+{-# INLINE oncanplaythrough #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onchange@ attribute.
+--
+-- Example:
+--
+-- > div ! onchange "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onchange="bar">Hello.</div>
+--
+onchange :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+onchange = attribute "onchange" " onchange=\""
+{-# INLINE onchange #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onclick@ attribute.
+--
+-- Example:
+--
+-- > div ! onclick "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onclick="bar">Hello.</div>
+--
+onclick :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+onclick = attribute "onclick" " onclick=\""
+{-# INLINE onclick #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @oncontextmenu@ attribute.
+--
+-- Example:
+--
+-- > div ! oncontextmenu "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div oncontextmenu="bar">Hello.</div>
+--
+oncontextmenu :: AttributeValue  -- ^ Attribute value.
+              -> Attribute       -- ^ Resulting attribute.
+oncontextmenu = attribute "oncontextmenu" " oncontextmenu=\""
+{-# INLINE oncontextmenu #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ondblclick@ attribute.
+--
+-- Example:
+--
+-- > div ! ondblclick "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ondblclick="bar">Hello.</div>
+--
+ondblclick :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+ondblclick = attribute "ondblclick" " ondblclick=\""
+{-# INLINE ondblclick #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ondrag@ attribute.
+--
+-- Example:
+--
+-- > div ! ondrag "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ondrag="bar">Hello.</div>
+--
+ondrag :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+ondrag = attribute "ondrag" " ondrag=\""
+{-# INLINE ondrag #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ondragend@ attribute.
+--
+-- Example:
+--
+-- > div ! ondragend "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ondragend="bar">Hello.</div>
+--
+ondragend :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+ondragend = attribute "ondragend" " ondragend=\""
+{-# INLINE ondragend #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ondragenter@ attribute.
+--
+-- Example:
+--
+-- > div ! ondragenter "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ondragenter="bar">Hello.</div>
+--
+ondragenter :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+ondragenter = attribute "ondragenter" " ondragenter=\""
+{-# INLINE ondragenter #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ondragleave@ attribute.
+--
+-- Example:
+--
+-- > div ! ondragleave "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ondragleave="bar">Hello.</div>
+--
+ondragleave :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+ondragleave = attribute "ondragleave" " ondragleave=\""
+{-# INLINE ondragleave #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ondragover@ attribute.
+--
+-- Example:
+--
+-- > div ! ondragover "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ondragover="bar">Hello.</div>
+--
+ondragover :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+ondragover = attribute "ondragover" " ondragover=\""
+{-# INLINE ondragover #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ondragstart@ attribute.
+--
+-- Example:
+--
+-- > div ! ondragstart "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ondragstart="bar">Hello.</div>
+--
+ondragstart :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+ondragstart = attribute "ondragstart" " ondragstart=\""
+{-# INLINE ondragstart #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ondrop@ attribute.
+--
+-- Example:
+--
+-- > div ! ondrop "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ondrop="bar">Hello.</div>
+--
+ondrop :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+ondrop = attribute "ondrop" " ondrop=\""
+{-# INLINE ondrop #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ondurationchange@ attribute.
+--
+-- Example:
+--
+-- > div ! ondurationchange "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ondurationchange="bar">Hello.</div>
+--
+ondurationchange :: AttributeValue  -- ^ Attribute value.
+                 -> Attribute       -- ^ Resulting attribute.
+ondurationchange = attribute "ondurationchange" " ondurationchange=\""
+{-# INLINE ondurationchange #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onemptied@ attribute.
+--
+-- Example:
+--
+-- > div ! onemptied "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onemptied="bar">Hello.</div>
+--
+onemptied :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+onemptied = attribute "onemptied" " onemptied=\""
+{-# INLINE onemptied #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onended@ attribute.
+--
+-- Example:
+--
+-- > div ! onended "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onended="bar">Hello.</div>
+--
+onended :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+onended = attribute "onended" " onended=\""
+{-# INLINE onended #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onerror@ attribute.
+--
+-- Example:
+--
+-- > div ! onerror "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onerror="bar">Hello.</div>
+--
+onerror :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+onerror = attribute "onerror" " onerror=\""
+{-# INLINE onerror #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onfocus@ attribute.
+--
+-- Example:
+--
+-- > div ! onfocus "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onfocus="bar">Hello.</div>
+--
+onfocus :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+onfocus = attribute "onfocus" " onfocus=\""
+{-# INLINE onfocus #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onformchange@ attribute.
+--
+-- Example:
+--
+-- > div ! onformchange "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onformchange="bar">Hello.</div>
+--
+onformchange :: AttributeValue  -- ^ Attribute value.
+             -> Attribute       -- ^ Resulting attribute.
+onformchange = attribute "onformchange" " onformchange=\""
+{-# INLINE onformchange #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onforminput@ attribute.
+--
+-- Example:
+--
+-- > div ! onforminput "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onforminput="bar">Hello.</div>
+--
+onforminput :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+onforminput = attribute "onforminput" " onforminput=\""
+{-# INLINE onforminput #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onhaschange@ attribute.
+--
+-- Example:
+--
+-- > div ! onhaschange "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onhaschange="bar">Hello.</div>
+--
+onhaschange :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+onhaschange = attribute "onhaschange" " onhaschange=\""
+{-# INLINE onhaschange #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @oninput@ attribute.
+--
+-- Example:
+--
+-- > div ! oninput "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div oninput="bar">Hello.</div>
+--
+oninput :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+oninput = attribute "oninput" " oninput=\""
+{-# INLINE oninput #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @oninvalid@ attribute.
+--
+-- Example:
+--
+-- > div ! oninvalid "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div oninvalid="bar">Hello.</div>
+--
+oninvalid :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+oninvalid = attribute "oninvalid" " oninvalid=\""
+{-# INLINE oninvalid #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onkeydown@ attribute.
+--
+-- Example:
+--
+-- > div ! onkeydown "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onkeydown="bar">Hello.</div>
+--
+onkeydown :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+onkeydown = attribute "onkeydown" " onkeydown=\""
+{-# INLINE onkeydown #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onkeypress@ attribute.
+--
+-- Example:
+--
+-- > div ! onkeypress "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onkeypress="bar">Hello.</div>
+--
+onkeypress :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+onkeypress = attribute "onkeypress" " onkeypress=\""
+{-# INLINE onkeypress #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onkeyup@ attribute.
+--
+-- Example:
+--
+-- > div ! onkeyup "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onkeyup="bar">Hello.</div>
+--
+onkeyup :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+onkeyup = attribute "onkeyup" " onkeyup=\""
+{-# INLINE onkeyup #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onload@ attribute.
+--
+-- Example:
+--
+-- > div ! onload "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onload="bar">Hello.</div>
+--
+onload :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+onload = attribute "onload" " onload=\""
+{-# INLINE onload #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onloadeddata@ attribute.
+--
+-- Example:
+--
+-- > div ! onloadeddata "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onloadeddata="bar">Hello.</div>
+--
+onloadeddata :: AttributeValue  -- ^ Attribute value.
+             -> Attribute       -- ^ Resulting attribute.
+onloadeddata = attribute "onloadeddata" " onloadeddata=\""
+{-# INLINE onloadeddata #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onloadedmetadata@ attribute.
+--
+-- Example:
+--
+-- > div ! onloadedmetadata "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onloadedmetadata="bar">Hello.</div>
+--
+onloadedmetadata :: AttributeValue  -- ^ Attribute value.
+                 -> Attribute       -- ^ Resulting attribute.
+onloadedmetadata = attribute "onloadedmetadata" " onloadedmetadata=\""
+{-# INLINE onloadedmetadata #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onloadstart@ attribute.
+--
+-- Example:
+--
+-- > div ! onloadstart "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onloadstart="bar">Hello.</div>
+--
+onloadstart :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+onloadstart = attribute "onloadstart" " onloadstart=\""
+{-# INLINE onloadstart #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onmessage@ attribute.
+--
+-- Example:
+--
+-- > div ! onmessage "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onmessage="bar">Hello.</div>
+--
+onmessage :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+onmessage = attribute "onmessage" " onmessage=\""
+{-# INLINE onmessage #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onmousedown@ attribute.
+--
+-- Example:
+--
+-- > div ! onmousedown "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onmousedown="bar">Hello.</div>
+--
+onmousedown :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+onmousedown = attribute "onmousedown" " onmousedown=\""
+{-# INLINE onmousedown #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onmousemove@ attribute.
+--
+-- Example:
+--
+-- > div ! onmousemove "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onmousemove="bar">Hello.</div>
+--
+onmousemove :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+onmousemove = attribute "onmousemove" " onmousemove=\""
+{-# INLINE onmousemove #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onmouseout@ attribute.
+--
+-- Example:
+--
+-- > div ! onmouseout "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onmouseout="bar">Hello.</div>
+--
+onmouseout :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+onmouseout = attribute "onmouseout" " onmouseout=\""
+{-# INLINE onmouseout #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onmouseover@ attribute.
+--
+-- Example:
+--
+-- > div ! onmouseover "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onmouseover="bar">Hello.</div>
+--
+onmouseover :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+onmouseover = attribute "onmouseover" " onmouseover=\""
+{-# INLINE onmouseover #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onmouseup@ attribute.
+--
+-- Example:
+--
+-- > div ! onmouseup "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onmouseup="bar">Hello.</div>
+--
+onmouseup :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+onmouseup = attribute "onmouseup" " onmouseup=\""
+{-# INLINE onmouseup #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onmousewheel@ attribute.
+--
+-- Example:
+--
+-- > div ! onmousewheel "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onmousewheel="bar">Hello.</div>
+--
+onmousewheel :: AttributeValue  -- ^ Attribute value.
+             -> Attribute       -- ^ Resulting attribute.
+onmousewheel = attribute "onmousewheel" " onmousewheel=\""
+{-# INLINE onmousewheel #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ononline@ attribute.
+--
+-- Example:
+--
+-- > div ! ononline "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ononline="bar">Hello.</div>
+--
+ononline :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+ononline = attribute "ononline" " ononline=\""
+{-# INLINE ononline #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onpagehide@ attribute.
+--
+-- Example:
+--
+-- > div ! onpagehide "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onpagehide="bar">Hello.</div>
+--
+onpagehide :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+onpagehide = attribute "onpagehide" " onpagehide=\""
+{-# INLINE onpagehide #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onpageshow@ attribute.
+--
+-- Example:
+--
+-- > div ! onpageshow "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onpageshow="bar">Hello.</div>
+--
+onpageshow :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+onpageshow = attribute "onpageshow" " onpageshow=\""
+{-# INLINE onpageshow #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onpause@ attribute.
+--
+-- Example:
+--
+-- > div ! onpause "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onpause="bar">Hello.</div>
+--
+onpause :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+onpause = attribute "onpause" " onpause=\""
+{-# INLINE onpause #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onplay@ attribute.
+--
+-- Example:
+--
+-- > div ! onplay "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onplay="bar">Hello.</div>
+--
+onplay :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+onplay = attribute "onplay" " onplay=\""
+{-# INLINE onplay #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onplaying@ attribute.
+--
+-- Example:
+--
+-- > div ! onplaying "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onplaying="bar">Hello.</div>
+--
+onplaying :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+onplaying = attribute "onplaying" " onplaying=\""
+{-# INLINE onplaying #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onprogress@ attribute.
+--
+-- Example:
+--
+-- > div ! onprogress "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onprogress="bar">Hello.</div>
+--
+onprogress :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+onprogress = attribute "onprogress" " onprogress=\""
+{-# INLINE onprogress #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onpropstate@ attribute.
+--
+-- Example:
+--
+-- > div ! onpropstate "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onpropstate="bar">Hello.</div>
+--
+onpropstate :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+onpropstate = attribute "onpropstate" " onpropstate=\""
+{-# INLINE onpropstate #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onratechange@ attribute.
+--
+-- Example:
+--
+-- > div ! onratechange "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onratechange="bar">Hello.</div>
+--
+onratechange :: AttributeValue  -- ^ Attribute value.
+             -> Attribute       -- ^ Resulting attribute.
+onratechange = attribute "onratechange" " onratechange=\""
+{-# INLINE onratechange #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onreadystatechange@ attribute.
+--
+-- Example:
+--
+-- > div ! onreadystatechange "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onreadystatechange="bar">Hello.</div>
+--
+onreadystatechange :: AttributeValue  -- ^ Attribute value.
+                   -> Attribute       -- ^ Resulting attribute.
+onreadystatechange = attribute "onreadystatechange" " onreadystatechange=\""
+{-# INLINE onreadystatechange #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onredo@ attribute.
+--
+-- Example:
+--
+-- > div ! onredo "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onredo="bar">Hello.</div>
+--
+onredo :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+onredo = attribute "onredo" " onredo=\""
+{-# INLINE onredo #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onresize@ attribute.
+--
+-- Example:
+--
+-- > div ! onresize "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onresize="bar">Hello.</div>
+--
+onresize :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+onresize = attribute "onresize" " onresize=\""
+{-# INLINE onresize #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onscroll@ attribute.
+--
+-- Example:
+--
+-- > div ! onscroll "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onscroll="bar">Hello.</div>
+--
+onscroll :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+onscroll = attribute "onscroll" " onscroll=\""
+{-# INLINE onscroll #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onseeked@ attribute.
+--
+-- Example:
+--
+-- > div ! onseeked "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onseeked="bar">Hello.</div>
+--
+onseeked :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+onseeked = attribute "onseeked" " onseeked=\""
+{-# INLINE onseeked #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onseeking@ attribute.
+--
+-- Example:
+--
+-- > div ! onseeking "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onseeking="bar">Hello.</div>
+--
+onseeking :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+onseeking = attribute "onseeking" " onseeking=\""
+{-# INLINE onseeking #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onselect@ attribute.
+--
+-- Example:
+--
+-- > div ! onselect "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onselect="bar">Hello.</div>
+--
+onselect :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+onselect = attribute "onselect" " onselect=\""
+{-# INLINE onselect #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onstalled@ attribute.
+--
+-- Example:
+--
+-- > div ! onstalled "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onstalled="bar">Hello.</div>
+--
+onstalled :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+onstalled = attribute "onstalled" " onstalled=\""
+{-# INLINE onstalled #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onstorage@ attribute.
+--
+-- Example:
+--
+-- > div ! onstorage "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onstorage="bar">Hello.</div>
+--
+onstorage :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+onstorage = attribute "onstorage" " onstorage=\""
+{-# INLINE onstorage #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onsubmit@ attribute.
+--
+-- Example:
+--
+-- > div ! onsubmit "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onsubmit="bar">Hello.</div>
+--
+onsubmit :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+onsubmit = attribute "onsubmit" " onsubmit=\""
+{-# INLINE onsubmit #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onsuspend@ attribute.
+--
+-- Example:
+--
+-- > div ! onsuspend "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onsuspend="bar">Hello.</div>
+--
+onsuspend :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+onsuspend = attribute "onsuspend" " onsuspend=\""
+{-# INLINE onsuspend #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ontimeupdate@ attribute.
+--
+-- Example:
+--
+-- > div ! ontimeupdate "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ontimeupdate="bar">Hello.</div>
+--
+ontimeupdate :: AttributeValue  -- ^ Attribute value.
+             -> Attribute       -- ^ Resulting attribute.
+ontimeupdate = attribute "ontimeupdate" " ontimeupdate=\""
+{-# INLINE ontimeupdate #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onundo@ attribute.
+--
+-- Example:
+--
+-- > div ! onundo "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onundo="bar">Hello.</div>
+--
+onundo :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+onundo = attribute "onundo" " onundo=\""
+{-# INLINE onundo #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onunload@ attribute.
+--
+-- Example:
+--
+-- > div ! onunload "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onunload="bar">Hello.</div>
+--
+onunload :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+onunload = attribute "onunload" " onunload=\""
+{-# INLINE onunload #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onvolumechange@ attribute.
+--
+-- Example:
+--
+-- > div ! onvolumechange "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onvolumechange="bar">Hello.</div>
+--
+onvolumechange :: AttributeValue  -- ^ Attribute value.
+               -> Attribute       -- ^ Resulting attribute.
+onvolumechange = attribute "onvolumechange" " onvolumechange=\""
+{-# INLINE onvolumechange #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @onwaiting@ attribute.
+--
+-- Example:
+--
+-- > div ! onwaiting "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div onwaiting="bar">Hello.</div>
+--
+onwaiting :: AttributeValue  -- ^ Attribute value.
+          -> Attribute       -- ^ Resulting attribute.
+onwaiting = attribute "onwaiting" " onwaiting=\""
+{-# INLINE onwaiting #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @open@ attribute.
+--
+-- Example:
+--
+-- > div ! open "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div open="bar">Hello.</div>
+--
+open :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+open = attribute "open" " open=\""
+{-# INLINE open #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @optimum@ attribute.
+--
+-- Example:
+--
+-- > div ! optimum "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div optimum="bar">Hello.</div>
+--
+optimum :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+optimum = attribute "optimum" " optimum=\""
+{-# INLINE optimum #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @pattern@ attribute.
+--
+-- Example:
+--
+-- > div ! pattern "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div pattern="bar">Hello.</div>
+--
+pattern :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+pattern = attribute "pattern" " pattern=\""
+{-# INLINE pattern #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @ping@ attribute.
+--
+-- Example:
+--
+-- > div ! ping "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div ping="bar">Hello.</div>
+--
+ping :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+ping = attribute "ping" " ping=\""
+{-# INLINE ping #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @placeholder@ attribute.
+--
+-- Example:
+--
+-- > div ! placeholder "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div placeholder="bar">Hello.</div>
+--
+placeholder :: AttributeValue  -- ^ Attribute value.
+            -> Attribute       -- ^ Resulting attribute.
+placeholder = attribute "placeholder" " placeholder=\""
+{-# INLINE placeholder #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @poster@ attribute.
+--
+-- Example:
+--
+-- > div ! poster "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div poster="bar">Hello.</div>
+--
+poster :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+poster = attribute "poster" " poster=\""
+{-# INLINE poster #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @preload@ attribute.
+--
+-- Example:
+--
+-- > div ! preload "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div preload="bar">Hello.</div>
+--
+preload :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+preload = attribute "preload" " preload=\""
+{-# INLINE preload #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @property@ attribute.
+--
+-- Example:
+--
+-- > div ! property "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div property="bar">Hello.</div>
+--
+property :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+property = attribute "property" " property=\""
+{-# INLINE property #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @pubdate@ attribute.
+--
+-- Example:
+--
+-- > div ! pubdate "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div pubdate="bar">Hello.</div>
+--
+pubdate :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+pubdate = attribute "pubdate" " pubdate=\""
+{-# INLINE pubdate #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @radiogroup@ attribute.
+--
+-- Example:
+--
+-- > div ! radiogroup "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div radiogroup="bar">Hello.</div>
+--
+radiogroup :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+radiogroup = attribute "radiogroup" " radiogroup=\""
+{-# INLINE radiogroup #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @readonly@ attribute.
+--
+-- Example:
+--
+-- > div ! readonly "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div readonly="bar">Hello.</div>
+--
+readonly :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+readonly = attribute "readonly" " readonly=\""
+{-# INLINE readonly #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @rel@ attribute.
+--
+-- Example:
+--
+-- > div ! rel "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div rel="bar">Hello.</div>
+--
+rel :: AttributeValue  -- ^ Attribute value.
+    -> Attribute       -- ^ Resulting attribute.
+rel = attribute "rel" " rel=\""
+{-# INLINE rel #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @required@ attribute.
+--
+-- Example:
+--
+-- > div ! required "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div required="bar">Hello.</div>
+--
+required :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+required = attribute "required" " required=\""
+{-# INLINE required #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @reversed@ attribute.
+--
+-- Example:
+--
+-- > div ! reversed "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div reversed="bar">Hello.</div>
+--
+reversed :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+reversed = attribute "reversed" " reversed=\""
+{-# INLINE reversed #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @role@ attribute.
+--
+-- Example:
+--
+-- > div ! role "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div role="bar">Hello.</div>
+--
+role :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+role = attribute "role" " role=\""
+{-# INLINE role #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @rows@ attribute.
+--
+-- Example:
+--
+-- > div ! rows "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div rows="bar">Hello.</div>
+--
+rows :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+rows = attribute "rows" " rows=\""
+{-# INLINE rows #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @rowspan@ attribute.
+--
+-- Example:
+--
+-- > div ! rowspan "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div rowspan="bar">Hello.</div>
+--
+rowspan :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+rowspan = attribute "rowspan" " rowspan=\""
+{-# INLINE rowspan #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @sandbox@ attribute.
+--
+-- Example:
+--
+-- > div ! sandbox "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div sandbox="bar">Hello.</div>
+--
+sandbox :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+sandbox = attribute "sandbox" " sandbox=\""
+{-# INLINE sandbox #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @scope@ attribute.
+--
+-- Example:
+--
+-- > div ! scope "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div scope="bar">Hello.</div>
+--
+scope :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+scope = attribute "scope" " scope=\""
+{-# INLINE scope #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @scoped@ attribute.
+--
+-- Example:
+--
+-- > div ! scoped "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div scoped="bar">Hello.</div>
+--
+scoped :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+scoped = attribute "scoped" " scoped=\""
+{-# INLINE scoped #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @seamless@ attribute.
+--
+-- Example:
+--
+-- > div ! seamless "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div seamless="bar">Hello.</div>
+--
+seamless :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+seamless = attribute "seamless" " seamless=\""
+{-# INLINE seamless #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @selected@ attribute.
+--
+-- Example:
+--
+-- > div ! selected "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div selected="bar">Hello.</div>
+--
+selected :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+selected = attribute "selected" " selected=\""
+{-# INLINE selected #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @shape@ attribute.
+--
+-- Example:
+--
+-- > div ! shape "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div shape="bar">Hello.</div>
+--
+shape :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+shape = attribute "shape" " shape=\""
+{-# INLINE shape #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @size@ attribute.
+--
+-- Example:
+--
+-- > div ! size "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div size="bar">Hello.</div>
+--
+size :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+size = attribute "size" " size=\""
+{-# INLINE size #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @sizes@ attribute.
+--
+-- Example:
+--
+-- > div ! sizes "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div sizes="bar">Hello.</div>
+--
+sizes :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+sizes = attribute "sizes" " sizes=\""
+{-# INLINE sizes #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @span@ attribute.
+--
+-- Example:
+--
+-- > div ! span "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div span="bar">Hello.</div>
+--
+span :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+span = attribute "span" " span=\""
+{-# INLINE span #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @spellcheck@ attribute.
+--
+-- Example:
+--
+-- > div ! spellcheck "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div spellcheck="bar">Hello.</div>
+--
+spellcheck :: AttributeValue  -- ^ Attribute value.
+           -> Attribute       -- ^ Resulting attribute.
+spellcheck = attribute "spellcheck" " spellcheck=\""
+{-# INLINE spellcheck #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @src@ attribute.
+--
+-- Example:
+--
+-- > div ! src "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div src="bar">Hello.</div>
+--
+src :: AttributeValue  -- ^ Attribute value.
+    -> Attribute       -- ^ Resulting attribute.
+src = attribute "src" " src=\""
+{-# INLINE src #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @srcdoc@ attribute.
+--
+-- Example:
+--
+-- > div ! srcdoc "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div srcdoc="bar">Hello.</div>
+--
+srcdoc :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+srcdoc = attribute "srcdoc" " srcdoc=\""
+{-# INLINE srcdoc #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @start@ attribute.
+--
+-- Example:
+--
+-- > div ! start "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div start="bar">Hello.</div>
+--
+start :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+start = attribute "start" " start=\""
+{-# INLINE start #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @step@ attribute.
+--
+-- Example:
+--
+-- > div ! step "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div step="bar">Hello.</div>
+--
+step :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+step = attribute "step" " step=\""
+{-# INLINE step #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @style@ attribute.
+--
+-- Example:
+--
+-- > div ! style "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div style="bar">Hello.</div>
+--
+style :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+style = attribute "style" " style=\""
+{-# INLINE style #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @subject@ attribute.
+--
+-- Example:
+--
+-- > div ! subject "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div subject="bar">Hello.</div>
+--
+subject :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+subject = attribute "subject" " subject=\""
+{-# INLINE subject #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @summary@ attribute.
+--
+-- Example:
+--
+-- > div ! summary "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div summary="bar">Hello.</div>
+--
+summary :: AttributeValue  -- ^ Attribute value.
+        -> Attribute       -- ^ Resulting attribute.
+summary = attribute "summary" " summary=\""
+{-# INLINE summary #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @tabindex@ attribute.
+--
+-- Example:
+--
+-- > div ! tabindex "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div tabindex="bar">Hello.</div>
+--
+tabindex :: AttributeValue  -- ^ Attribute value.
+         -> Attribute       -- ^ Resulting attribute.
+tabindex = attribute "tabindex" " tabindex=\""
+{-# INLINE tabindex #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @target@ attribute.
+--
+-- Example:
+--
+-- > div ! target "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div target="bar">Hello.</div>
+--
+target :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+target = attribute "target" " target=\""
+{-# INLINE target #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @title@ attribute.
+--
+-- Example:
+--
+-- > div ! title "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div title="bar">Hello.</div>
+--
+title :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+title = attribute "title" " title=\""
+{-# INLINE title #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @type@ attribute.
+--
+-- Example:
+--
+-- > div ! type_ "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div type="bar">Hello.</div>
+--
+type_ :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+type_ = attribute "type" " type=\""
+{-# INLINE type_ #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @usemap@ attribute.
+--
+-- Example:
+--
+-- > div ! usemap "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div usemap="bar">Hello.</div>
+--
+usemap :: AttributeValue  -- ^ Attribute value.
+       -> Attribute       -- ^ Resulting attribute.
+usemap = attribute "usemap" " usemap=\""
+{-# INLINE usemap #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @value@ attribute.
+--
+-- Example:
+--
+-- > div ! value "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div value="bar">Hello.</div>
+--
+value :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+value = attribute "value" " value=\""
+{-# INLINE value #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @width@ attribute.
+--
+-- Example:
+--
+-- > div ! width "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div width="bar">Hello.</div>
+--
+width :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+width = attribute "width" " width=\""
+{-# INLINE width #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @wrap@ attribute.
+--
+-- Example:
+--
+-- > div ! wrap "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div wrap="bar">Hello.</div>
+--
+wrap :: AttributeValue  -- ^ Attribute value.
+     -> Attribute       -- ^ Resulting attribute.
+wrap = attribute "wrap" " wrap=\""
+{-# INLINE wrap #-}
+
+-- WARNING: The next block of code was automatically generated by
+-- src/Util/GenerateHtmlCombinators.hs:250
+--
+-- | Combinator for the @xmlns@ attribute.
+--
+-- Example:
+--
+-- > div ! xmlns "bar" $ "Hello."
+--
+-- Result:
+--
+-- > <div xmlns="bar">Hello.</div>
+--
+xmlns :: AttributeValue  -- ^ Attribute value.
+      -> Attribute       -- ^ Resulting attribute.
+xmlns = attribute "xmlns" " xmlns=\""
+{-# INLINE xmlns #-}
diff --git a/src/Util/GenerateHtmlCombinators.hs b/src/Util/GenerateHtmlCombinators.hs
--- a/src/Util/GenerateHtmlCombinators.hs
+++ b/src/Util/GenerateHtmlCombinators.hs
@@ -1,7 +1,6 @@
 {-# LANGUAGE CPP #-}
 
 #define DO_NOT_EDIT (doNotEdit __FILE__ __LINE__)
-#define TRUSTWORTHY "{-# LANGUAGE CPP #-}\n#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ >= 704)\n{-# LANGUAGE Trustworthy #-}\n#endif"
 
 -- | Generates code for HTML tags.
 --
@@ -17,6 +16,7 @@
 import Data.Char (toLower)
 import qualified Data.Set as S
 
+import qualified Util.GenerateHtmlCombinators.Html5 as Html5
 import Util.Sanitize (sanitize, prelude)
 
 -- | Datatype for an HTML variant.
@@ -68,19 +68,19 @@
     -- Write the main module.
     writeFile' (basePath <.> "hs") $ removeTrailingNewlines $ unlines
         [ DO_NOT_EDIT
-        , TRUSTWORTHY
         , "{-# LANGUAGE OverloadedStrings #-}"
         , "-- | This module exports HTML combinators used to create documents."
         , "--"
-        , exportList modulName $ "module Text.Blaze"
-                                : "docType"
-                                : "docTypeHtml"
-                                : map (sanitize . fst) sortedTags
+        , exportList modulName $ "module Text.Blaze.Html"
+                               : "docType"
+                               : "docTypeHtml"
+                               : map (sanitize . fst) sortedTags
         , DO_NOT_EDIT
         , "import Prelude ((>>), (.))"
         , ""
         , "import Text.Blaze"
         , "import Text.Blaze.Internal"
+        , "import Text.Blaze.Html"
         , ""
         , makeDocType $ docType htmlVariant
         , makeDocTypeHtml $ docType htmlVariant
@@ -92,7 +92,6 @@
     -- Write the attribute module.
     writeFile' (basePath </> "Attributes.hs") $ removeTrailingNewlines $ unlines
         [ DO_NOT_EDIT
-        , TRUSTWORTHY
         , "-- | This module exports combinators that provide you with the"
         , "-- ability to set attributes on HTML elements."
         , "--"
@@ -182,7 +181,7 @@
     , "--"
     , "-- Example:"
     , "--"
-    , "-- > docTypeHtml $ span $ text \"foo\""
+    , "-- > docTypeHtml $ span $ toHtml \"foo\""
     , "--"
     , "-- Result:"
     , "--"
@@ -203,7 +202,7 @@
     , "--"
     , "-- Example:"
     , "--"
-    , "-- > " ++ function ++ " $ span $ text \"foo\""
+    , "-- > " ++ function ++ " $ span $ toHtml \"foo\""
     , "--"
     , "-- Result:"
     , "--"
@@ -238,7 +237,7 @@
     , "--"
     , function ++ " :: Html  -- ^ Resulting HTML."
     , function ++ " = Leaf \"" ++ tag ++ "\" \"<" ++ tag ++ "\" " ++ "\""
-               ++ (if closing then " /" else "") ++ ">\""
+               ++ (if closing then " /" else "") ++ ">\" ()"
     , "{-# INLINE " ++ function ++ " #-}"
     ]
   where
@@ -395,66 +394,31 @@
     }
 
 -- | HTML 5.0
--- A good reference can be found here:
--- http://www.w3schools.com/html5/html5_reference.asp
+-- Specified in a different file since this is the only one that is "alive".
 --
 html5 :: HtmlVariant
 html5 = HtmlVariant
-    { version = ["Html5"]
-    , docType = ["<!DOCTYPE HTML>"]
-    , parents =
-        [ "a", "abbr", "address", "article", "aside", "audio", "b", "base"
-        , "bdo", "blockquote", "body", "button", "canvas", "caption", "cite"
-        , "code", "colgroup", "command", "datalist", "dd", "del", "details"
-        , "dfn", "div", "dl", "dt", "em", "fieldset", "figcaption", "figure"
-        , "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header"
-        , "hgroup", "html", "i", "iframe", "ins", "keygen", "kbd", "label"
-        , "legend", "li", "map", "mark", "menu", "meter", "nav", "noscript"
-        , "object", "ol", "optgroup", "option", "output", "p", "pre", "progress"
-        , "q", "rp", "rt", "ruby", "samp", "script", "section", "select"
-        , "small", "source", "span", "strong", "style", "sub", "summary", "sup"
-        , "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "time"
-        , "title", "tr", "ul", "var", "video"
-        ]
-    , leafs =
-        [ "area", "br", "col", "embed", "hr", "img", "input", "meta", "link"
-        , "param"
-        ]
-    , attributes =
-        [ "accept", "accept-charset", "accesskey", "action", "alt", "async"
-        , "autocomplete", "autofocus", "autoplay", "challenge", "charset"
-        , "checked", "cite", "class", "cols", "colspan", "content"
-        , "contenteditable", "contextmenu", "controls", "coords", "data"
-        , "datetime", "defer", "dir", "disabled", "draggable", "enctype", "for"
-        , "form", "formaction", "formenctype", "formmethod", "formnovalidate"
-        , "formtarget", "headers", "height", "hidden", "high", "href"
-        , "hreflang", "http-equiv", "icon", "id", "ismap", "item", "itemprop"
-        , "keytype", "label", "lang", "list", "loop", "low", "manifest", "max"
-        , "maxlength", "media", "method", "min", "multiple", "name"
-        , "novalidate", "onbeforeonload", "onbeforeprint", "onblur", "oncanplay"
-        , "oncanplaythrough", "onchange", "oncontextmenu", "onclick"
-        , "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragleave"
-        , "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied"
-        , "onended", "onerror", "onfocus", "onformchange", "onforminput"
-        , "onhaschange", "oninput", "oninvalid", "onkeydown", "onkeyup"
-        , "onload", "onloadeddata", "onloadedmetadata", "onloadstart"
-        , "onmessage", "onmousedown", "onmousemove", "onmouseout", "onmouseover"
-        , "onmouseup", "onmousewheel", "ononline", "onpagehide", "onpageshow"
-        , "onpause", "onplay", "onplaying", "onprogress", "onpropstate"
-        , "onratechange", "onreadystatechange", "onredo", "onresize", "onscroll"
-        , "onseeked", "onseeking", "onselect", "onstalled", "onstorage"
-        , "onsubmit", "onsuspend", "ontimeupdate", "onundo", "onunload"
-        , "onvolumechange", "onwaiting", "open", "optimum", "pattern", "ping"
-        , "placeholder", "preload", "pubdate", "radiogroup", "readonly", "rel"
-        , "required", "reversed", "rows", "rowspan", "sandbox", "scope"
-        , "scoped", "seamless", "selected", "shape", "size", "sizes", "span"
-        , "spellcheck", "src", "srcdoc", "start", "step", "style", "subject"
-        , "summary", "tabindex", "target", "title", "type", "usemap", "value"
-        , "width", "wrap", "xmlns"
-        ]
+    { version     = ["Html5"]
+    , docType     = ["<!DOCTYPE HTML>"]
+    , parents     = Html5.parents
+    , leafs       = Html5.leafs
+    , attributes  = Html5.attributes
     , selfClosing = False
     }
 
+-- | XHTML 5.0
+--
+xhtml5 :: HtmlVariant
+xhtml5 = HtmlVariant
+    { version = ["XHtml5"]
+    , docType = ["<!DOCTYPE html>"]
+    , parents = parents html5
+    , leafs = leafs html5
+    , attributes = attributes html5
+    , selfClosing = True
+    }
+
+
 -- | A map of HTML variants, per version, lowercase.
 --
 htmlVariants :: Map String HtmlVariant
@@ -466,6 +430,7 @@
     , xhtml1Transitional
     , xhtml1FrameSet
     , html5
+    , xhtml5
     ]
 
 main :: IO ()
diff --git a/src/Util/Sanitize.hs b/src/Util/Sanitize.hs
--- a/src/Util/Sanitize.hs
+++ b/src/Util/Sanitize.hs
@@ -19,8 +19,12 @@
 -- > sanitize "http-equiv" == "httpEquiv"
 --
 sanitize :: String -> String
-sanitize = appendUnderscore . removeDash . map toLower
+sanitize str
+    | lower  == "doctypehtml" = "docTypeHtml"
+    | otherwise               = appendUnderscore $ removeDash lower
   where
+    lower = map toLower str
+
     -- Remove a dash, replacing it by camelcase notation
     --
     -- Example:
diff --git a/tests/TestSuite.hs b/tests/TestSuite.hs
--- a/tests/TestSuite.hs
+++ b/tests/TestSuite.hs
@@ -4,13 +4,11 @@
 
 import Test.Framework (defaultMain, testGroup)
 
-import qualified Text.Blaze.Tests
-import qualified Text.Blaze.Tests.Cases
+import qualified Text.Blaze.Html.Tests
 import qualified Util.Tests
 
 main :: IO ()
 main = defaultMain
-    [ testGroup "Text.Blaze.Tests"       Text.Blaze.Tests.tests
-    , testGroup "Text.Blaze.Tests.Cases" Text.Blaze.Tests.Cases.tests
+    [ testGroup "Text.Blaze.Html.Tests" Text.Blaze.Html.Tests.tests
     , testGroup "Util.Tests"             Util.Tests.tests
     ]
diff --git a/tests/Text/Blaze/Html/Tests.hs b/tests/Text/Blaze/Html/Tests.hs
new file mode 100644
--- /dev/null
+++ b/tests/Text/Blaze/Html/Tests.hs
@@ -0,0 +1,118 @@
+-- | A whole bunch of simple test cases
+--
+{-# LANGUAGE OverloadedStrings #-}
+module Text.Blaze.Html.Tests
+    ( tests
+    ) where
+
+import Prelude hiding (div, id)
+import Control.Monad (forM_)
+import Data.Monoid (mempty, mappend, mconcat)
+
+import Data.Text (Text)
+import Test.HUnit ((@=?))
+import Test.Framework.Providers.HUnit (testCase)
+import Test.Framework (Test)
+import qualified Data.ByteString.Lazy.Char8 as LBC
+
+import Text.Blaze.Html.Tests.Util
+import Text.Blaze.Html5 hiding (map)
+import Text.Blaze.Html5.Attributes
+import Text.Blaze.Internal
+import qualified Text.Blaze.Html5 as H
+
+-- | Type for a simple HTML test. This data type contains the expected output
+-- and the HTML template.
+--
+data HtmlTest = HtmlTest LBC.ByteString Html
+
+-- | Create tests from an HTML test
+--
+makeTests :: String -> HtmlTest -> [Test]
+makeTests baseName (HtmlTest expected h) =
+    [ testCase (baseName ++ " (String)") $ expected @=? renderUsingString h
+    , testCase (baseName ++ " (Text)") $ expected @=? renderUsingText h
+    , testCase (baseName ++ " (Utf8)") $ expected @=? renderUsingUtf8 h
+    ]
+
+-- | Actual tests
+--
+tests :: [Test]
+tests = concatMap (uncurry makeTests) $ zip names
+    -- Simple cases
+    [ HtmlTest "<div id=\"foo\"><p>banana</p><span>banana</span></div>" $
+        div ! id "foo" $ do
+            p "banana"
+            H.span "banana"
+
+    , HtmlTest "<img src=\"foo.png\" alt=\"bar\">" $
+        img ! src "foo.png" ! alt "bar"
+
+    -- Escaping cases
+    , HtmlTest "&quot;&amp;&quot;" "\"&\""
+
+    , HtmlTest "&lt;img&gt;" $ toHtml ("<img>" :: Text)
+
+    , HtmlTest "&quot;&#39;&quot;" "\"'\""
+
+    , HtmlTest "<img src=\"&amp;\">" $ img ! src "&"
+
+    , HtmlTest "<u>hello</u>" $ H.u "hello"
+
+    -- Pre-escaping cases
+    , HtmlTest "<3 Haskell" $ preEscapedToMarkup ("<3 Haskell" :: String)
+
+    , HtmlTest "<script />" $ preEscapedToMarkup ("<script />" :: Text)
+
+    , HtmlTest "<p class=\"'&!;\">bad</p>" $
+        p ! class_ (preEscapedToValue ("'&!;" :: String)) $ "bad"
+
+    -- Unicode cases
+    , HtmlTest "<span id=\"&amp;\">\206\187</span>" $
+        H.span ! id "&" $ "λ"
+
+    , HtmlTest "\226\136\128x. x \226\136\136 A"
+        "∀x. x ∈ A"
+
+    , HtmlTest "$6, \226\130\172\&7.01, \194\163\&75"
+        "$6, €7.01, £75"
+
+    -- Control cases
+    , HtmlTest "<li>4</li><li>5</li><li>6</li>" $
+        forM_ [4 :: Int .. 6] (li . toHtml)
+
+    , HtmlTest "<br><img><area>" $
+        sequence_ [br, img, area]
+
+    -- Attribute tests
+    , HtmlTest "<p data-foo=\"bar\">A paragraph</p>" $
+        p ! (dataAttribute "foo" "bar") $ "A paragraph"
+
+    , HtmlTest "<p>Hello</p>" $ p ! mempty $ "Hello"
+
+    , HtmlTest "<img src=\"foo.png\" alt=\"foo\">" $
+        img ! (src "foo.png" `mappend` alt "foo")
+
+    -- ToHtml/ToValue tests
+    , HtmlTest "12345678910" $ mconcat $ map toHtml [1 :: Int .. 10]
+
+    , HtmlTest "<img src=\"funny-picture-4.png\">" $
+        img ! src ("funny-picture-" `mappend` toValue (4 :: Integer)
+                                    `mappend` ".png")
+
+    , HtmlTest "abcdefghijklmnopqrstuvwxyz" $ forM_ ['a' .. 'z'] toHtml
+
+    -- Custom elements/attributes tests
+    , HtmlTest "<p>A paragraph</p>" $
+        customParent "p" $ "A paragraph"
+
+    , HtmlTest "<img src=\"foo.png\">" $
+        customLeaf "img" False ! src "foo.png"
+
+    , HtmlTest "<img />" $ customLeaf "img" True
+
+    , HtmlTest "<p dojoType=\"select\">A paragraph</p>" $
+        p ! (customAttribute "dojoType" "select") $ "A paragraph"
+    ]
+  where
+    names = map (("Test case " ++) . show) [1 :: Int ..]
diff --git a/tests/Text/Blaze/Html/Tests/Util.hs b/tests/Text/Blaze/Html/Tests/Util.hs
new file mode 100644
--- /dev/null
+++ b/tests/Text/Blaze/Html/Tests/Util.hs
@@ -0,0 +1,31 @@
+-- | Utility functions for the blaze tests
+--
+module Text.Blaze.Html.Tests.Util
+    ( renderUsingString
+    , renderUsingText
+    , renderUsingUtf8
+    ) where
+
+import Blaze.ByteString.Builder as B (toLazyByteString)
+import Blaze.ByteString.Builder.Char.Utf8 as B (fromString)
+import Data.Text.Lazy.Encoding (encodeUtf8)
+import Text.Blaze.Html (Html)
+import qualified Data.ByteString.Lazy as LB
+import qualified Text.Blaze.Html.Renderer.String as String (renderHtml)
+import qualified Text.Blaze.Html.Renderer.Text as Text (renderHtml)
+import qualified Text.Blaze.Html.Renderer.Utf8 as Utf8 (renderHtml)
+
+-- | Render HTML to an UTF-8 encoded ByteString using the String renderer
+--
+renderUsingString :: Html -> LB.ByteString
+renderUsingString = toLazyByteString . fromString . String.renderHtml
+
+-- | Render HTML to an UTF-8 encoded ByteString using the Text renderer
+--
+renderUsingText :: Html -> LB.ByteString
+renderUsingText = encodeUtf8 . Text.renderHtml
+
+-- | Render HTML to an UTF-8 encoded ByteString using the Utf8 renderer
+--
+renderUsingUtf8 :: Html -> LB.ByteString
+renderUsingUtf8 = Utf8.renderHtml
diff --git a/tests/Text/Blaze/Tests.hs b/tests/Text/Blaze/Tests.hs
deleted file mode 100644
--- a/tests/Text/Blaze/Tests.hs
+++ /dev/null
@@ -1,178 +0,0 @@
-{-# LANGUAGE OverloadedStrings, TypeSynonymInstances, FlexibleInstances #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-module Text.Blaze.Tests
-    ( tests
-    ) where
-
-import Prelude hiding (div, id)
-import Data.Monoid (mempty)
-import Control.Monad (replicateM)
-import Control.Applicative ((<$>))
-import Data.Word (Word8)
-import Data.Char (ord)
-import Data.List (isInfixOf)
-
-import qualified Data.ByteString as SB
-import qualified Data.ByteString.Lazy.Char8 as LBC
-import qualified Data.ByteString.Lazy as LB
-import Test.Framework
-import Test.Framework.Providers.QuickCheck2
-import Test.QuickCheck
-
-import Text.Blaze.Html5 hiding (map)
-import Text.Blaze.Html5.Attributes (id, class_, name)
-import Text.Blaze.Internal
-import Text.Blaze.Tests.Util
-
-tests :: [Test]
-tests = [ testProperty "left identity Monoid law"  monoidLeftIdentity
-        , testProperty "right identity Monoid law" monoidRightIdentity
-        , testProperty "associativity Monoid law"  monoidAssociativity
-        , testProperty "mconcat Monoid law"        monoidConcat
-        , testProperty "post escaping characters"  postEscapingCharacters
-        , testProperty "valid UTF-8"               isValidUtf8
-        , testProperty "external </ sequence"      externalEndSequence
-        , testProperty "well nested <>"            wellNestedBrackets
-        , testProperty "unsafeByteString id"       unsafeByteStringId
-        ]
-
--- | The left identity Monoid law.
---
-monoidLeftIdentity :: Html -> Bool
-monoidLeftIdentity h = (return () >> h) == h
-
--- | The right identity Monoid law.
---
-monoidRightIdentity :: Html -> Bool
-monoidRightIdentity h = (h >> return ()) == h
-
--- | The associativity Monoid law.
---
-monoidAssociativity :: Html -> Html -> Html -> Bool
-monoidAssociativity x y z = (x >> (y >> z)) == ((x >> y) >> z)
-
--- | Concatenation Monoid law.
---
-monoidConcat :: [Html] -> Bool
-monoidConcat xs = sequence_ xs == foldr (>>) (return ()) xs
-
--- | Escaped content cannot contain certain characters.
---
-postEscapingCharacters :: String -> Bool
-postEscapingCharacters str =
-    LB.all (`notElem` forbidden) $ renderUsingUtf8 (string str)
-  where
-    forbidden = map (fromIntegral . ord) "\"'<>"
-
--- | Check if the produced bytes are valid UTF-8
---
-isValidUtf8 :: Html -> Bool
-isValidUtf8 = isValidUtf8' . LB.unpack . renderUsingUtf8
-  where
-    isIn x y z = (x <= z) && (z <= y)
-    isValidUtf8' :: [Word8] -> Bool
-    isValidUtf8' [] = True
-    isValidUtf8' (x:t)
-        -- One byte
-        | isIn 0x00 0x7f x = isValidUtf8' t
-        -- Two bytes
-        | isIn 0xc0 0xdf x = case t of
-            (y:t') -> isIn 0x80 0xbf y && isValidUtf8' t'
-            _      -> False
-        -- Three bytes
-        | isIn 0xe0 0xef x = case t of
-            (y:z:t') -> all (isIn 0x80 0xbf) [y, z] && isValidUtf8' t'
-            _        -> False
-        -- Four bytes
-        | isIn 0xf0 0xf7 x = case t of
-            (y:z:u:t') -> all (isIn 0x80 0xbf) [y, z, u] && isValidUtf8' t'
-            _          -> False
-        | otherwise = False
-
--- | Rendering an unsafe bytestring should not do anything
---
-unsafeByteStringId :: [Word8] -> Bool
-unsafeByteStringId ws =
-    LB.pack ws == renderUsingUtf8 (unsafeByteString $ SB.pack ws)
-
--- | Check if the "</" sequence does not appear in @<script>@ or @<style>@ tags.
---
-externalEndSequence :: String -> Bool
-externalEndSequence = not . isInfixOf "</" . LBC.unpack
-                    . renderUsingUtf8 . external . string
-
--- | Check that the "<>" characters are well-nested.
---
-wellNestedBrackets :: Html -> Bool
-wellNestedBrackets = wellNested False . LBC.unpack . renderUsingUtf8
-  where
-    wellNested isOpen [] = not isOpen
-    wellNested isOpen (x:xs) = case x of
-        '<' -> if isOpen then False else wellNested True xs
-        '>' -> if isOpen then wellNested False xs else False
-        _   -> wellNested isOpen xs
-
--- Show instance for the HTML type, so we can debug.
---
-instance Show Html where
-    show = show . renderUsingUtf8
-
--- Eq instance for the HTML type, so we can compare the results.
---
-instance Eq Html where
-    x == y =  renderUsingString x == renderUsingString y
-           && renderUsingText x   == renderUsingText y
-           && renderUsingUtf8 x   == renderUsingUtf8 y
-           -- Some cross-checks
-           && renderUsingString x == renderUsingText y
-           && renderUsingText x   == renderUsingUtf8 y
-
--- Arbitrary instance for the HTML type.
---
-instance Arbitrary Html where
-    arbitrary = arbitraryHtml 4
-
--- | Auxiliary function for the arbitrary instance of the HTML type, used
--- to limit the depth and size of the type.
---
-arbitraryHtml :: Int       -- ^ Maximum depth.
-              -> Gen Html  -- ^ Resulting arbitrary HTML snippet.
-arbitraryHtml depth = do 
-    -- Choose the size (width) of this element.
-    size <- choose (0, 3)
-
-    -- Generate `size` new HTML snippets.
-    children <- replicateM size arbitraryChild
-
-    -- Return a concatenation of these children.
-    return $ sequence_ children
-  where
-    -- Generate an arbitrary child. Do not take a parent when we have no depth
-    -- left, obviously.
-    arbitraryChild = do
-        child <- oneof $  [arbitraryLeaf, arbitraryString, return mempty]
-                       ++ [arbitraryParent | depth > 0]
-
-        -- Generate some attributes for the child.
-        size <- choose (0, 4)
-        attributes <- replicateM size arbitraryAttribute
-        return $ foldl (!) child attributes
-
-    -- Generate an arbitrary parent element.
-    arbitraryParent = do
-        parent <- elements [p, div, table]
-        parent <$> arbitraryHtml (depth - 1)
-
-    -- Generate an arbitrary leaf element.
-    arbitraryLeaf = oneof $ map return [img, br, area]
-
-    -- Generate arbitrary string element.
-    arbitraryString = do
-        s <- arbitrary
-        return $ string s
-
-    -- Generate an arbitrary HTML attribute.
-    arbitraryAttribute = do
-        attr <- elements [id, class_, name]
-        value <- arbitrary
-        return $ attr $ stringValue value
diff --git a/tests/Text/Blaze/Tests/Cases.hs b/tests/Text/Blaze/Tests/Cases.hs
deleted file mode 100644
--- a/tests/Text/Blaze/Tests/Cases.hs
+++ /dev/null
@@ -1,107 +0,0 @@
--- | A whole bunch of simple test cases
---
-{-# LANGUAGE OverloadedStrings #-}
-module Text.Blaze.Tests.Cases
-    ( tests
-    ) where
-
-import Prelude hiding (div, id)
-import Control.Monad (forM_)
-import Data.Monoid (mempty, mappend, mconcat)
-
-import Data.Text (Text)
-import Test.HUnit ((@=?))
-import Test.Framework.Providers.HUnit (testCase)
-import Test.Framework (Test)
-import qualified Data.ByteString.Lazy.Char8 as LBC
-
-import Text.Blaze
-import Text.Blaze.Html5 hiding (map)
-import qualified Text.Blaze.Html5 as H
-import Text.Blaze.Html5.Attributes
-import Text.Blaze.Tests.Util
-
--- | Type for a simple HTML test. This data type contains the expected output
--- and the HTML template.
---
-data HtmlTest = HtmlTest LBC.ByteString Html
-
--- | Create tests from an HTML test
---
-makeTests :: String -> HtmlTest -> [Test]
-makeTests baseName (HtmlTest expected h) =
-    [ testCase (baseName ++ " (String)") $ expected @=? renderUsingString h
-    , testCase (baseName ++ " (Text)") $ expected @=? renderUsingText h
-    , testCase (baseName ++ " (Utf8)") $ expected @=? renderUsingUtf8 h
-    ]
-
--- | Actual tests
---
-tests :: [Test]
-tests = concatMap (uncurry makeTests) $ zip names
-    -- Simple cases
-    [ HtmlTest "<div id=\"foo\"><p>banana</p><span>banana</span></div>" $
-        div ! id "foo" $ do
-            p "banana"
-            H.span "banana"
-
-    , HtmlTest "<img src=\"foo.png\" alt=\"bar\">" $
-        img ! src "foo.png" ! alt "bar"
-
-    -- Escaping cases
-    , HtmlTest "&quot;&amp;&quot;" "\"&\""
-
-    , HtmlTest "&lt;img&gt;" $ toHtml ("<img>" :: Text)
-
-    , HtmlTest "&quot;&#39;&quot;" "\"'\""
-
-    , HtmlTest "<img src=\"&amp;\">" $ img ! src "&"
-
-    -- Pre-escaping cases
-    , HtmlTest "<3 Haskell" $ preEscapedText "<3 Haskell"
-
-    , HtmlTest "<script />" $ preEscapedString "<script />"
-
-    , HtmlTest "<p class=\"'&!;\">bad</p>" $
-        p ! class_ (preEscapedTextValue "'&!;") $ "bad"
-
-    -- Unicode cases
-    , HtmlTest "<span id=\"&amp;\">\206\187</span>" $
-        H.span ! id "&" $ "λ"
-
-    , HtmlTest "\226\136\128x. x \226\136\136 A"
-        "∀x. x ∈ A"
-
-    , HtmlTest "$6, \226\130\172\&7.01, \194\163\&75"
-        "$6, €7.01, £75"
-
-    -- Control cases
-    , HtmlTest "<li>4</li><li>5</li><li>6</li>" $
-        forM_ [4 :: Int .. 6] (li . toHtml)
-
-    , HtmlTest "<br><img><area>" $
-        sequence_ [br, img, area]
-
-    -- Attribute tests
-    , HtmlTest "<p data-foo=\"bar\">A paragraph</p>" $
-        p ! (dataAttribute "foo" "bar") $ "A paragraph"
-
-    , HtmlTest "<p dojoType=\"select\">A paragraph</p>" $
-        p ! (customAttribute "dojoType" "select") $ "A paragraph"
-
-    , HtmlTest "<p>Hello</p>" $ p ! mempty $ "Hello"
-
-    , HtmlTest "<img src=\"foo.png\" alt=\"foo\">" $
-        img ! (src "foo.png" `mappend` alt "foo")
-
-    -- ToHtml/ToValue tests
-    , HtmlTest "12345678910" $ mconcat $ map toHtml [1 :: Int .. 10]
-
-    , HtmlTest "<img src=\"funny-picture-4.png\">" $
-        img ! src ("funny-picture-" `mappend` toValue (4 :: Integer)
-                                    `mappend` ".png")
-
-    , HtmlTest "abcdefghijklmnopqrstuvwxyz" $ forM_ ['a' .. 'z'] toHtml
-    ]
-  where
-    names = map (("Test case " ++) . show) [1 :: Int ..]
diff --git a/tests/Text/Blaze/Tests/Util.hs b/tests/Text/Blaze/Tests/Util.hs
deleted file mode 100644
--- a/tests/Text/Blaze/Tests/Util.hs
+++ /dev/null
@@ -1,31 +0,0 @@
--- | Utility functions for the blaze tests
---
-module Text.Blaze.Tests.Util
-    ( renderUsingString
-    , renderUsingText
-    , renderUsingUtf8
-    ) where
-
-import Text.Blaze.Html5 hiding (map)
-import qualified Data.ByteString.Lazy as LB
-import qualified Text.Blaze.Renderer.Utf8 as Utf8 (renderHtml)
-import qualified Text.Blaze.Renderer.Text as Text (renderHtml)
-import qualified Text.Blaze.Renderer.String as String (renderHtml)
-import Blaze.ByteString.Builder as B (toLazyByteString)
-import Blaze.ByteString.Builder.Char.Utf8 as B (fromString)
-import Data.Text.Lazy.Encoding (encodeUtf8)
-
--- | Render HTML to an UTF-8 encoded ByteString using the String renderer
---
-renderUsingString :: Html -> LB.ByteString
-renderUsingString = toLazyByteString . fromString . String.renderHtml
-
--- | Render HTML to an UTF-8 encoded ByteString using the Text renderer
---
-renderUsingText :: Html -> LB.ByteString
-renderUsingText = encodeUtf8 . Text.renderHtml
-
--- | Render HTML to an UTF-8 encoded ByteString using the Utf8 renderer
---
-renderUsingUtf8 :: Html -> LB.ByteString
-renderUsingUtf8 = Utf8.renderHtml
