    {-# LANGUAGE OverloadedStrings #-}
    {-# LANGUAGE NoMonomorphismRestriction #-}
    {-# OPTIONS -fno-warn-type-defaults #-}

    -- | Html5 terms.

    module Lucid.Html5 where

    import           Lucid.Base

    import           Data.Monoid
    import           Data.Text (Text, unwords)

    -------------------------------------------------------------------------------
    -- Elements

    -- | @DOCTYPE@ element
    --
    -- This is implemented as "raw output", because the doctype doesn't
    -- accept attributes, such as those inserted via 'with'.
    --
    doctype_ :: Applicative m => HtmlT m ()
    doctype_ :: forall (m :: * -> *). Applicative m => HtmlT m ()
    doctype_ = m (Seq Attribute -> Builder, ()) -> HtmlT m ()
    forall (m :: * -> *) a.
    m (Seq Attribute -> Builder, a) -> HtmlT m a
    HtmlT ((Seq Attribute -> Builder, ()) -> m (Seq Attribute -> Builder, ())
    forall a. a -> m a
    forall (f :: * -> *) a. Applicative f => a -> f a
    pure (Builder -> Seq Attribute -> Builder
    forall a b. a -> b -> a
    const Builder
    "<!DOCTYPE HTML>", ()))

    -- | @DOCTYPE@ element + @html@ element
    doctypehtml_ :: Applicative m => HtmlT m a -> HtmlT m a
    doctypehtml_ :: forall (m :: * -> *) a. Applicative m => HtmlT m a -> HtmlT m a
    doctypehtml_ HtmlT m a
    m = HtmlT m ()
    forall (m :: * -> *). Applicative m => HtmlT m ()
    doctype_ HtmlT m () -> HtmlT m a -> HtmlT m a
    forall a b. HtmlT m a -> HtmlT m b -> HtmlT m b
    forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b
    *> HtmlT m a -> HtmlT m a
    forall arg result. Term arg result => arg -> result
    html_ HtmlT m a
    m

    -- | @a@ element
    a_ :: Term arg result => arg -> result
    a_ :: forall arg result. Term arg result => arg -> result
    a_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "a"

    -- | @abbr@ element
    abbr_ :: Term arg result => arg -> result
    abbr_ :: forall arg result. Term arg result => arg -> result
    abbr_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "abbr"

    -- | @address@ element
    address_ :: Term arg result => arg -> result
    address_ :: forall arg result. Term arg result => arg -> result
    address_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "address"

    -- | @area@ element
    area_ :: Applicative m => [Attribute] -> HtmlT m ()
    area_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    area_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "area")

    -- | @article@ element
    article_ :: Term arg result => arg -> result
    article_ :: forall arg result. Term arg result => arg -> result
    article_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "article"

    -- | @aside@ element
    aside_ :: Term arg result => arg -> result
    aside_ :: forall arg result. Term arg result => arg -> result
    aside_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "aside"

    -- | @audio@ element
    audio_ :: Term arg result => arg -> result
    audio_ :: forall arg result. Term arg result => arg -> result
    audio_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "audio"

    -- | @b@ element
    b_ :: Term arg result => arg -> result
    b_ :: forall arg result. Term arg result => arg -> result
    b_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "b"

    -- | @base@ element
    base_ :: Applicative m => [Attribute] -> HtmlT m ()
    base_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    base_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "base")

    -- | @bdo@ element
    bdo_ :: Term arg result => arg -> result
    bdo_ :: forall arg result. Term arg result => arg -> result
    bdo_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "bdo"

    -- | @blockquote@ element
    blockquote_ :: Term arg result => arg -> result
    blockquote_ :: forall arg result. Term arg result => arg -> result
    blockquote_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "blockquote"

    -- | @body@ element
    body_ :: Term arg result => arg -> result
    body_ :: forall arg result. Term arg result => arg -> result
    body_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "body"

    -- | @br@ element
    br_ :: Applicative m => [Attribute] -> HtmlT m ()
    br_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    br_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "br")

    -- | @button@ element
    button_ :: Term arg result => arg -> result
    button_ :: forall arg result. Term arg result => arg -> result
    button_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "button"

    -- | @canvas@ element
    canvas_ :: Term arg result => arg -> result
    canvas_ :: forall arg result. Term arg result => arg -> result
    canvas_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "canvas"

    -- | @caption@ element
    caption_ :: Term arg result => arg -> result
    caption_ :: forall arg result. Term arg result => arg -> result
    caption_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "caption"

    -- | @cite@ element or @cite@ attribute.
    cite_ :: Term arg result => arg -> result
    cite_ :: forall arg result. Term arg result => arg -> result
    cite_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "cite"

    -- | @code@ element
    code_ :: Term arg result => arg -> result
    code_ :: forall arg result. Term arg result => arg -> result
    code_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "code"

    -- | @col@ element
    col_ :: Applicative m => [Attribute] -> HtmlT m ()
    col_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    col_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "col")

    -- | @colgroup@ element
    colgroup_ :: Term arg result => arg -> result
    colgroup_ :: forall arg result. Term arg result => arg -> result
    colgroup_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "colgroup"

    -- | @command@ element
    command_ :: Term arg result => arg -> result
    command_ :: forall arg result. Term arg result => arg -> result
    command_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "command"

    -- | @datalist@ element
    datalist_ :: Term arg result => arg -> result
    datalist_ :: forall arg result. Term arg result => arg -> result
    datalist_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "datalist"

    -- | @dd@ element
    dd_ :: Term arg result => arg -> result
    dd_ :: forall arg result. Term arg result => arg -> result
    dd_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "dd"

    -- | @del@ element
    del_ :: Term arg result => arg -> result
    del_ :: forall arg result. Term arg result => arg -> result
    del_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "del"

    -- | @details@ element
    details_ :: Term arg result => arg -> result
    details_ :: forall arg result. Term arg result => arg -> result
    details_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "details"

    -- | @dfn@ element
    dfn_ :: Term arg result => arg -> result
    dfn_ :: forall arg result. Term arg result => arg -> result
    dfn_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "dfn"

    -- | @div@ element
    div_ :: Term arg result => arg -> result
    div_ :: forall arg result. Term arg result => arg -> result
    div_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "div"

    -- | @dl@ element
    dl_ :: Term arg result => arg -> result
    dl_ :: forall arg result. Term arg result => arg -> result
    dl_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "dl"

    -- | @dt@ element
    dt_ :: Term arg result => arg -> result
    dt_ :: forall arg result. Term arg result => arg -> result
    dt_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "dt"

    -- | @em@ element
    em_ :: Term arg result => arg -> result
    em_ :: forall arg result. Term arg result => arg -> result
    em_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "em"

    -- | @embed@ element
    embed_ :: Applicative m => [Attribute] -> HtmlT m ()
    embed_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    embed_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "embed")

    -- | @fieldset@ element
    fieldset_ :: Term arg result => arg -> result
    fieldset_ :: forall arg result. Term arg result => arg -> result
    fieldset_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "fieldset"

    -- | @figcaption@ element
    figcaption_ :: Term arg result => arg -> result
    figcaption_ :: forall arg result. Term arg result => arg -> result
    figcaption_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "figcaption"

    -- | @figure@ element
    figure_ :: Term arg result => arg -> result
    figure_ :: forall arg result. Term arg result => arg -> result
    figure_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "figure"

    -- | @footer@ element
    footer_ :: Term arg result => arg -> result
    footer_ :: forall arg result. Term arg result => arg -> result
    footer_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "footer"

    -- | @form@ element or @form@ attribute
    form_ :: Term arg result => arg -> result
    form_ :: forall arg result. Term arg result => arg -> result
    form_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "form"

    -- | @h1@ element
    h1_ :: Term arg result => arg -> result
    h1_ :: forall arg result. Term arg result => arg -> result
    h1_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "h1"

    -- | @h2@ element
    h2_ :: Term arg result => arg -> result
    h2_ :: forall arg result. Term arg result => arg -> result
    h2_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "h2"

    -- | @h3@ element
    h3_ :: Term arg result => arg -> result
    h3_ :: forall arg result. Term arg result => arg -> result
    h3_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "h3"

    -- | @h4@ element
    h4_ :: Term arg result => arg -> result
    h4_ :: forall arg result. Term arg result => arg -> result
    h4_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "h4"

    -- | @h5@ element
    h5_ :: Term arg result => arg -> result
    h5_ :: forall arg result. Term arg result => arg -> result
    h5_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "h5"

    -- | @h6@ element
    h6_ :: Term arg result => arg -> result
    h6_ :: forall arg result. Term arg result => arg -> result
    h6_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "h6"

    -- | @head@ element
    head_ :: Term arg result => arg -> result
    head_ :: forall arg result. Term arg result => arg -> result
    head_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "head"

    -- | @header@ element
    header_ :: Term arg result => arg -> result
    header_ :: forall arg result. Term arg result => arg -> result
    header_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "header"

    -- | @hgroup@ element
    hgroup_ :: Term arg result => arg -> result
    hgroup_ :: forall arg result. Term arg result => arg -> result
    hgroup_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "hgroup"

    -- | @hr@ element
    hr_ :: Applicative m => [Attribute] -> HtmlT m ()
    hr_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    hr_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "hr")

    -- | @html@ element
    html_ :: Term arg result => arg -> result
    html_ :: forall arg result. Term arg result => arg -> result
    html_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "html"

    -- | @i@ element
    i_ :: Term arg result => arg -> result
    i_ :: forall arg result. Term arg result => arg -> result
    i_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "i"

    -- | @iframe@ element
    iframe_ :: Term arg result => arg -> result
    iframe_ :: forall arg result. Term arg result => arg -> result
    iframe_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "iframe"

    -- | @img@ element
    img_ :: Applicative m => [Attribute] -> HtmlT m ()
    img_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    img_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "img")

    -- | @input@ element
    input_ :: Applicative m => [Attribute] -> HtmlT m ()
    input_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    input_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "input")

    -- | @ins@ element
    ins_ :: Term arg result => arg -> result
    ins_ :: forall arg result. Term arg result => arg -> result
    ins_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "ins"

    -- | @kbd@ element
    kbd_ :: Term arg result => arg -> result
    kbd_ :: forall arg result. Term arg result => arg -> result
    kbd_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "kbd"

    -- | @keygen@ element
    keygen_ :: Applicative m => [Attribute] -> HtmlT m ()
    keygen_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    keygen_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "keygen")

    -- | @label@ element or @label@ attribute
    label_ :: Term arg result => arg -> result
    label_ :: forall arg result. Term arg result => arg -> result
    label_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "label"

    -- | @legend@ element
    legend_ :: Term arg result => arg -> result
    legend_ :: forall arg result. Term arg result => arg -> result
    legend_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "legend"

    -- | @li@ element
    li_ :: Term arg result => arg -> result
    li_ :: forall arg result. Term arg result => arg -> result
    li_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "li"

    -- | @link@ element
    link_ :: Applicative m => [Attribute] -> HtmlT m ()
    link_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    link_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "link")

    -- | @map@ element
    map_ :: Term arg result => arg -> result
    map_ :: forall arg result. Term arg result => arg -> result
    map_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "map"

    -- | @main@ element
    main_ :: Term arg result => arg -> result
    main_ :: forall arg result. Term arg result => arg -> result
    main_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "main"

    -- | @mark@ element
    mark_ :: Term arg result => arg -> result
    mark_ :: forall arg result. Term arg result => arg -> result
    mark_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "mark"

    -- | @menu@ element
    menu_ :: Term arg result => arg -> result
    menu_ :: forall arg result. Term arg result => arg -> result
    menu_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "menu"

    -- | @menuitem@ element
    menuitem_ :: Applicative m => [Attribute] -> HtmlT m ()
    menuitem_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    menuitem_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "menuitem")

    -- | @meta@ element
    meta_ :: Applicative m => [Attribute] -> HtmlT m ()
    meta_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    meta_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "meta")

    -- | @meter@ element
    meter_ :: Term arg result => arg -> result
    meter_ :: forall arg result. Term arg result => arg -> result
    meter_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "meter"

    -- | @nav@ element
    nav_ :: Term arg result => arg -> result
    nav_ :: forall arg result. Term arg result => arg -> result
    nav_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "nav"

    -- | @noscript@ element
    noscript_ :: Term arg result => arg -> result
    noscript_ :: forall arg result. Term arg result => arg -> result
    noscript_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "noscript"

    -- | @object@ element
    object_ :: Term arg result => arg -> result
    object_ :: forall arg result. Term arg result => arg -> result
    object_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "object"

    -- | @ol@ element
    ol_ :: Term arg result => arg -> result
    ol_ :: forall arg result. Term arg result => arg -> result
    ol_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "ol"

    -- | @optgroup@ element
    optgroup_ :: Term arg result => arg -> result
    optgroup_ :: forall arg result. Term arg result => arg -> result
    optgroup_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "optgroup"

    -- | @option@ element
    option_ :: Term arg result => arg -> result
    option_ :: forall arg result. Term arg result => arg -> result
    option_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "option"

    -- | @output@ element
    output_ :: Term arg result => arg -> result
    output_ :: forall arg result. Term arg result => arg -> result
    output_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "output"

    -- | @p@ element
    p_ :: Term arg result => arg -> result
    p_ :: forall arg result. Term arg result => arg -> result
    p_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "p"

    -- | @param@ element
    param_ :: Applicative m => [Attribute] -> HtmlT m ()
    param_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    param_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "param")

    -- | The @svg@ attribute.
    svg_ :: Term arg result => arg -> result
    svg_ :: forall arg result. Term arg result => arg -> result
    svg_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "svg"

    -- | @pre@ element
    pre_ :: Term arg result => arg -> result
    pre_ :: forall arg result. Term arg result => arg -> result
    pre_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "pre"

    -- | @progress@ element
    progress_ :: Term arg result => arg -> result
    progress_ :: forall arg result. Term arg result => arg -> result
    progress_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "progress"

    -- | @q@ element
    q_ :: Term arg result => arg -> result
    q_ :: forall arg result. Term arg result => arg -> result
    q_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "q"

    -- | @rp@ element
    rp_ :: Term arg result => arg -> result
    rp_ :: forall arg result. Term arg result => arg -> result
    rp_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "rp"

    -- | @rt@ element
    rt_ :: Term arg result => arg -> result
    rt_ :: forall arg result. Term arg result => arg -> result
    rt_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "rt"

    -- | @ruby@ element
    ruby_ :: Term arg result => arg -> result
    ruby_ :: forall arg result. Term arg result => arg -> result
    ruby_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "ruby"

    -- | @samp@ element
    samp_ :: Term arg result => arg -> result
    samp_ :: forall arg result. Term arg result => arg -> result
    samp_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "samp"

    -- | @script@ element
    script_ :: TermRaw arg result => arg -> result
    script_ :: forall arg result. TermRaw arg result => arg -> result
    script_ = Text -> arg -> result
    forall arg result. TermRaw arg result => Text -> arg -> result
    termRaw Text
    "script"

    -- | @section@ element
    section_ :: Term arg result => arg -> result
    section_ :: forall arg result. Term arg result => arg -> result
    section_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "section"

    -- | @select@ element
    select_ :: Term arg result => arg -> result
    select_ :: forall arg result. Term arg result => arg -> result
    select_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "select"

    -- | @small@ element
    small_ :: Term arg result => arg -> result
    small_ :: forall arg result. Term arg result => arg -> result
    small_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "small"

    -- | @source@ element
    source_ :: Applicative m => [Attribute] -> HtmlT m ()
    source_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    source_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "source")

    -- | @span@ element or @span@ attribute
    span_ :: Term arg result => arg -> result
    span_ :: forall arg result. Term arg result => arg -> result
    span_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "span"

    -- | @strong@ element
    strong_ :: Term arg result => arg -> result
    strong_ :: forall arg result. Term arg result => arg -> result
    strong_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "strong"

    -- | @style@ element or @style@ attribute
    style_ :: TermRaw arg result => arg -> result
    style_ :: forall arg result. TermRaw arg result => arg -> result
    style_ = Text -> arg -> result
    forall arg result. TermRaw arg result => Text -> arg -> result
    termRaw Text
    "style"

    -- | @sub@ element
    sub_ :: Term arg result => arg -> result
    sub_ :: forall arg result. Term arg result => arg -> result
    sub_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "sub"

    -- | @summary@ element or @summary@ attribute
    summary_ :: Term arg result => arg -> result
    summary_ :: forall arg result. Term arg result => arg -> result
    summary_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "summary"

    -- | @sup@ element
    sup_ :: Term arg result => arg -> result
    sup_ :: forall arg result. Term arg result => arg -> result
    sup_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "sup"

    -- | @table@ element
    table_ :: Term arg result => arg -> result
    table_ :: forall arg result. Term arg result => arg -> result
    table_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "table"

    -- | @tbody@ element
    tbody_ :: Term arg result => arg -> result
    tbody_ :: forall arg result. Term arg result => arg -> result
    tbody_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "tbody"

    -- | @td@ element
    td_ :: Term arg result => arg -> result
    td_ :: forall arg result. Term arg result => arg -> result
    td_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "td"

    -- | @textarea@ element
    textarea_ :: Term arg result => arg -> result
    textarea_ :: forall arg result. Term arg result => arg -> result
    textarea_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "textarea"

    -- | @tfoot@ element
    tfoot_ :: Term arg result => arg -> result
    tfoot_ :: forall arg result. Term arg result => arg -> result
    tfoot_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "tfoot"

    -- | @th@ element
    th_ :: Term arg result => arg -> result
    th_ :: forall arg result. Term arg result => arg -> result
    th_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "th"

    -- | @template@ element
    template_ :: Term arg result => arg -> result
    template_ :: forall arg result. Term arg result => arg -> result
    template_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "template"

    -- | @thead@ element
    thead_ :: Term arg result => arg -> result
    thead_ :: forall arg result. Term arg result => arg -> result
    thead_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "thead"

    -- | @time@ element
    time_ :: Term arg result => arg -> result
    time_ :: forall arg result. Term arg result => arg -> result
    time_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "time"

    -- | @title@ element or @title@ attribute
    title_ :: Term arg result => arg -> result
    title_ :: forall arg result. Term arg result => arg -> result
    title_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "title"

    -- | @tr@ element
    tr_ :: Term arg result => arg -> result
    tr_ :: forall arg result. Term arg result => arg -> result
    tr_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "tr"

    -- | @track@ element
    track_ :: Applicative m => [Attribute] -> HtmlT m ()
    track_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    track_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "track")

    -- | @ul@ element
    ul_ :: Term arg result => arg -> result
    ul_ :: forall arg result. Term arg result => arg -> result
    ul_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "ul"

    -- | @var@ element
    var_ :: Term arg result => arg -> result
    var_ :: forall arg result. Term arg result => arg -> result
    var_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "var"

    -- | @video@ element
    video_ :: Term arg result => arg -> result
    video_ :: forall arg result. Term arg result => arg -> result
    video_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "video"

    -- | @wbr@ element
    wbr_ :: Applicative m => [Attribute] -> HtmlT m ()
    wbr_ :: forall (m :: * -> *). Applicative m => [Attribute] -> HtmlT m ()
    wbr_ = HtmlT m () -> [Attribute] -> HtmlT m ()
    forall a. With a => a -> [Attribute] -> a
    with (Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "wbr")

    -------------------------------------------------------------------------------
    -- Attributes

    -- | The @accept@ attribute.
    accept_ :: Text -> Attribute
    accept_ :: Text -> Attribute
    accept_ = Text -> Text -> Attribute
    makeAttribute Text
    "accept"

    -- | The @acceptCharset@ attribute.
    acceptCharset_ :: Text -> Attribute
    acceptCharset_ :: Text -> Attribute
    acceptCharset_ = Text -> Text -> Attribute
    makeAttribute Text
    "accept-charset"

    -- | The @accesskey@ attribute.
    accesskey_ :: Text -> Attribute
    accesskey_ :: Text -> Attribute
    accesskey_ = Text -> Text -> Attribute
    makeAttribute Text
    "accesskey"

    -- | The @action@ attribute.
    action_ :: Text -> Attribute
    action_ :: Text -> Attribute
    action_ = Text -> Text -> Attribute
    makeAttribute Text
    "action"

    -- | The @alt@ attribute.
    alt_ :: Text -> Attribute
    alt_ :: Text -> Attribute
    alt_ = Text -> Text -> Attribute
    makeAttribute Text
    "alt"

    -- | The @async@ attribute.
    async_ :: Text -> Attribute
    async_ :: Text -> Attribute
    async_ = Text -> Text -> Attribute
    makeAttribute Text
    "async"

    -- | The @autocomplete@ attribute.
    autocomplete_ :: Text -> Attribute
    autocomplete_ :: Text -> Attribute
    autocomplete_ = Text -> Text -> Attribute
    makeAttribute Text
    "autocomplete"

    -- | The @autofocus@ attribute.
    autofocus_ :: Attribute
    autofocus_ :: Attribute
    autofocus_ = Text -> Text -> Attribute
    makeAttribute Text
    "autofocus" Text
    forall a. Monoid a => a
    mempty

    -- | The @autoplay@ attribute.
    autoplay_ :: Text -> Attribute
    autoplay_ :: Text -> Attribute
    autoplay_ = Text -> Text -> Attribute
    makeAttribute Text
    "autoplay"

    -- | The @challenge@ attribute.
    challenge_ :: Text -> Attribute
    challenge_ :: Text -> Attribute
    challenge_ = Text -> Text -> Attribute
    makeAttribute Text
    "challenge"

    -- | The @charset@ attribute.
    charset_ :: Text -> Attribute
    charset_ :: Text -> Attribute
    charset_ = Text -> Text -> Attribute
    makeAttribute Text
    "charset"

    -- | The @checked@ attribute.
    checked_ :: Attribute
    checked_ :: Attribute
    checked_ = Text -> Text -> Attribute
    makeAttribute Text
    "checked" Text
    forall a. Monoid a => a
    mempty

    -- | The @class@ attribute.
    class_ :: Text -> Attribute
    class_ :: Text -> Attribute
    class_ = Text -> Text -> Attribute
    makeAttribute Text
    "class"

    -- | Smart constructor for @class@ attribute.
    --
    -- @since 2.9.8
    classes_ :: [Text] -> Attribute
    classes_ :: [Text] -> Attribute
    classes_ = Text -> Text -> Attribute
    makeAttribute Text
    "class" (Text -> Attribute) -> ([Text] -> Text) -> [Text] -> Attribute
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . [Text] -> Text
    Data.Text.unwords

    -- | The @cols@ attribute.
    cols_ :: Text -> Attribute
    cols_ :: Text -> Attribute
    cols_ = Text -> Text -> Attribute
    makeAttribute Text
    "cols"

    -- | The @colspan@ attribute.
    colspan_ :: Text -> Attribute
    colspan_ :: Text -> Attribute
    colspan_ = Text -> Text -> Attribute
    makeAttribute Text
    "colspan"

    -- | The @content@ attribute.
    content_ :: Text -> Attribute
    content_ :: Text -> Attribute
    content_ = Text -> Text -> Attribute
    makeAttribute Text
    "content"

    -- | The @contenteditable@ attribute.
    contenteditable_ :: Text -> Attribute
    contenteditable_ :: Text -> Attribute
    contenteditable_ = Text -> Text -> Attribute
    makeAttribute Text
    "contenteditable"

    -- | The @contextmenu@ attribute.
    contextmenu_ :: Text -> Attribute
    contextmenu_ :: Text -> Attribute
    contextmenu_ = Text -> Text -> Attribute
    makeAttribute Text
    "contextmenu"

    -- | The @controls@ attribute.
    controls_ :: Text -> Attribute
    controls_ :: Text -> Attribute
    controls_ = Text -> Text -> Attribute
    makeAttribute Text
    "controls"

    -- | The @coords@ attribute.
    coords_ :: Text -> Attribute
    coords_ :: Text -> Attribute
    coords_ = Text -> Text -> Attribute
    makeAttribute Text
    "coords"

    -- | The @crossorigin@ attribute.
    --
    -- @since 2.9.8
    crossorigin_ :: Text -> Attribute
    crossorigin_ :: Text -> Attribute
    crossorigin_ = Text -> Text -> Attribute
    makeAttribute Text
    "crossorigin"

    -- | The @data@ attribute.
    data_ :: Text -> Text -> Attribute
    data_ :: Text -> Text -> Attribute
    data_ Text
    name = Text -> Text -> Attribute
    makeAttribute (Text
    "data-" Text -> Text -> Text
    forall a. Semigroup a => a -> a -> a
    <> Text
    name)

    -- | The @datetime@ attribute.
    datetime_ :: Text -> Attribute
    datetime_ :: Text -> Attribute
    datetime_ = Text -> Text -> Attribute
    makeAttribute Text
    "datetime"

    -- | The @defer@ attribute.
    defer_ :: Text -> Attribute
    defer_ :: Text -> Attribute
    defer_ = Text -> Text -> Attribute
    makeAttribute Text
    "defer"

    -- | The @dir@ attribute.
    dir_ :: Text -> Attribute
    dir_ :: Text -> Attribute
    dir_ = Text -> Text -> Attribute
    makeAttribute Text
    "dir"

    -- | The @disabled@ attribute.
    disabled_ :: Text -> Attribute
    disabled_ :: Text -> Attribute
    disabled_ = Text -> Text -> Attribute
    makeAttribute Text
    "disabled"

    -- | The @download@ attribute.
    download_ :: Text -> Attribute
    download_ :: Text -> Attribute
    download_ = Text -> Text -> Attribute
    makeAttribute Text
    "download"

    -- | The @draggable@ attribute.
    draggable_ :: Text -> Attribute
    draggable_ :: Text -> Attribute
    draggable_ = Text -> Text -> Attribute
    makeAttribute Text
    "draggable"

    -- | The @enctype@ attribute.
    enctype_ :: Text -> Attribute
    enctype_ :: Text -> Attribute
    enctype_ = Text -> Text -> Attribute
    makeAttribute Text
    "enctype"

    -- | The @for@ attribute.
    for_ :: Text -> Attribute
    for_ :: Text -> Attribute
    for_ = Text -> Text -> Attribute
    makeAttribute Text
    "for"

    -- | The @formaction@ attribute.
    formaction_ :: Text -> Attribute
    formaction_ :: Text -> Attribute
    formaction_ = Text -> Text -> Attribute
    makeAttribute Text
    "formaction"

    -- | The @formenctype@ attribute.
    formenctype_ :: Text -> Attribute
    formenctype_ :: Text -> Attribute
    formenctype_ = Text -> Text -> Attribute
    makeAttribute Text
    "formenctype"

    -- | The @formmethod@ attribute.
    formmethod_ :: Text -> Attribute
    formmethod_ :: Text -> Attribute
    formmethod_ = Text -> Text -> Attribute
    makeAttribute Text
    "formmethod"

    -- | The @formnovalidate@ attribute.
    formnovalidate_ :: Text -> Attribute
    formnovalidate_ :: Text -> Attribute
    formnovalidate_ = Text -> Text -> Attribute
    makeAttribute Text
    "formnovalidate"

    -- | The @formtarget@ attribute.
    formtarget_ :: Text -> Attribute
    formtarget_ :: Text -> Attribute
    formtarget_ = Text -> Text -> Attribute
    makeAttribute Text
    "formtarget"

    -- | The @headers@ attribute.
    headers_ :: Text -> Attribute
    headers_ :: Text -> Attribute
    headers_ = Text -> Text -> Attribute
    makeAttribute Text
    "headers"

    -- | The @height@ attribute.
    height_ :: Text -> Attribute
    height_ :: Text -> Attribute
    height_ = Text -> Text -> Attribute
    makeAttribute Text
    "height"

    -- | The @hidden@ attribute.
    hidden_ :: Text -> Attribute
    hidden_ :: Text -> Attribute
    hidden_ = Text -> Text -> Attribute
    makeAttribute Text
    "hidden"

    -- | The @high@ attribute.
    high_ :: Text -> Attribute
    high_ :: Text -> Attribute
    high_ = Text -> Text -> Attribute
    makeAttribute Text
    "high"

    -- | The @href@ attribute.
    href_ :: Text -> Attribute
    href_ :: Text -> Attribute
    href_ = Text -> Text -> Attribute
    makeAttribute Text
    "href"

    -- | The @hreflang@ attribute.
    hreflang_ :: Text -> Attribute
    hreflang_ :: Text -> Attribute
    hreflang_ = Text -> Text -> Attribute
    makeAttribute Text
    "hreflang"

    -- | The @httpEquiv@ attribute.
    httpEquiv_ :: Text -> Attribute
    httpEquiv_ :: Text -> Attribute
    httpEquiv_ = Text -> Text -> Attribute
    makeAttribute Text
    "http-equiv"

    -- | The @icon@ attribute.
    icon_ :: Text -> Attribute
    icon_ :: Text -> Attribute
    icon_ = Text -> Text -> Attribute
    makeAttribute Text
    "icon"

    -- | The @id@ attribute.
    id_ :: Text -> Attribute
    id_ :: Text -> Attribute
    id_ = Text -> Text -> Attribute
    makeAttribute Text
    "id"

    -- | The @integrity@ attribute.
    --
    -- @since 2.9.8
    integrity_ :: Text -> Attribute
    integrity_ :: Text -> Attribute
    integrity_ = Text -> Text -> Attribute
    makeAttribute Text
    "integrity"

    -- | The @ismap@ attribute.
    ismap_ :: Text -> Attribute
    ismap_ :: Text -> Attribute
    ismap_ = Text -> Text -> Attribute
    makeAttribute Text
    "ismap"

    -- | The @item@ attribute.
    item_ :: Text -> Attribute
    item_ :: Text -> Attribute
    item_ = Text -> Text -> Attribute
    makeAttribute Text
    "item"

    -- | The @itemprop@ attribute.
    itemprop_ :: Text -> Attribute
    itemprop_ :: Text -> Attribute
    itemprop_ = Text -> Text -> Attribute
    makeAttribute Text
    "itemprop"

    -- | The @keytype@ attribute.
    keytype_ :: Text -> Attribute
    keytype_ :: Text -> Attribute
    keytype_ = Text -> Text -> Attribute
    makeAttribute Text
    "keytype"

    -- | The @lang@ attribute.
    lang_ :: Text -> Attribute
    lang_ :: Text -> Attribute
    lang_ = Text -> Text -> Attribute
    makeAttribute Text
    "lang"

    -- | The @list@ attribute.
    list_ :: Text -> Attribute
    list_ :: Text -> Attribute
    list_ = Text -> Text -> Attribute
    makeAttribute Text
    "list"

    -- | The @loading@ attribute.
    loading_ :: Text -> Attribute
    loading_ :: Text -> Attribute
    loading_ = Text -> Text -> Attribute
    makeAttribute Text
    "loading"

    -- | The @loop@ attribute.
    loop_ :: Text -> Attribute
    loop_ :: Text -> Attribute
    loop_ = Text -> Text -> Attribute
    makeAttribute Text
    "loop"

    -- | The @low@ attribute.
    low_ :: Text -> Attribute
    low_ :: Text -> Attribute
    low_ = Text -> Text -> Attribute
    makeAttribute Text
    "low"

    -- | The @manifest@ attribute.
    manifest_ :: Text -> Attribute
    manifest_ :: Text -> Attribute
    manifest_ = Text -> Text -> Attribute
    makeAttribute Text
    "manifest"

    -- | The @max@ attribute.
    max_ :: Text -> Attribute
    max_ :: Text -> Attribute
    max_ = Text -> Text -> Attribute
    makeAttribute Text
    "max"

    -- | The @maxlength@ attribute.
    maxlength_ :: Text -> Attribute
    maxlength_ :: Text -> Attribute
    maxlength_ = Text -> Text -> Attribute
    makeAttribute Text
    "maxlength"

    -- | The @media@ attribute.
    media_ :: Text -> Attribute
    media_ :: Text -> Attribute
    media_ = Text -> Text -> Attribute
    makeAttribute Text
    "media"

    -- | The @method@ attribute.
    method_ :: Text -> Attribute
    method_ :: Text -> Attribute
    method_ = Text -> Text -> Attribute
    makeAttribute Text
    "method"

    -- | The @min@ attribute.
    min_ :: Text -> Attribute
    min_ :: Text -> Attribute
    min_ = Text -> Text -> Attribute
    makeAttribute Text
    "min"

    -- | The @minlength@ attribute.
    minlength_ :: Text -> Attribute
    minlength_ :: Text -> Attribute
    minlength_ = Text -> Text -> Attribute
    makeAttribute Text
    "minlength"

    -- | The @multiple@ attribute.
    multiple_ :: Text -> Attribute
    multiple_ :: Text -> Attribute
    multiple_ = Text -> Text -> Attribute
    makeAttribute Text
    "multiple"

    -- | The @name@ attribute.
    name_ :: Text -> Attribute
    name_ :: Text -> Attribute
    name_ = Text -> Text -> Attribute
    makeAttribute Text
    "name"

    -- | The @novalidate@ attribute.
    novalidate_ :: Text -> Attribute
    novalidate_ :: Text -> Attribute
    novalidate_ = Text -> Text -> Attribute
    makeAttribute Text
    "novalidate"

    -- | The @onbeforeonload@ attribute.
    onbeforeonload_ :: Text -> Attribute
    onbeforeonload_ :: Text -> Attribute
    onbeforeonload_ = Text -> Text -> Attribute
    makeAttribute Text
    "onbeforeonload"

    -- | The @onbeforeprint@ attribute.
    onbeforeprint_ :: Text -> Attribute
    onbeforeprint_ :: Text -> Attribute
    onbeforeprint_ = Text -> Text -> Attribute
    makeAttribute Text
    "onbeforeprint"

    -- | The @onblur@ attribute.
    onblur_ :: Text -> Attribute
    onblur_ :: Text -> Attribute
    onblur_ = Text -> Text -> Attribute
    makeAttribute Text
    "onblur"

    -- | The @oncanplay@ attribute.
    oncanplay_ :: Text -> Attribute
    oncanplay_ :: Text -> Attribute
    oncanplay_ = Text -> Text -> Attribute
    makeAttribute Text
    "oncanplay"

    -- | The @oncanplaythrough@ attribute.
    oncanplaythrough_ :: Text -> Attribute
    oncanplaythrough_ :: Text -> Attribute
    oncanplaythrough_ = Text -> Text -> Attribute
    makeAttribute Text
    "oncanplaythrough"

    -- | The @onchange@ attribute.
    onchange_ :: Text -> Attribute
    onchange_ :: Text -> Attribute
    onchange_ = Text -> Text -> Attribute
    makeAttribute Text
    "onchange"

    -- | The @onclick@ attribute.
    onclick_ :: Text -> Attribute
    onclick_ :: Text -> Attribute
    onclick_ = Text -> Text -> Attribute
    makeAttribute Text
    "onclick"

    -- | The @oncontextmenu@ attribute.
    oncontextmenu_ :: Text -> Attribute
    oncontextmenu_ :: Text -> Attribute
    oncontextmenu_ = Text -> Text -> Attribute
    makeAttribute Text
    "oncontextmenu"

    -- | The @ondblclick@ attribute.
    ondblclick_ :: Text -> Attribute
    ondblclick_ :: Text -> Attribute
    ondblclick_ = Text -> Text -> Attribute
    makeAttribute Text
    "ondblclick"

    -- | The @ondrag@ attribute.
    ondrag_ :: Text -> Attribute
    ondrag_ :: Text -> Attribute
    ondrag_ = Text -> Text -> Attribute
    makeAttribute Text
    "ondrag"

    -- | The @ondragend@ attribute.
    ondragend_ :: Text -> Attribute
    ondragend_ :: Text -> Attribute
    ondragend_ = Text -> Text -> Attribute
    makeAttribute Text
    "ondragend"

    -- | The @ondragenter@ attribute.
    ondragenter_ :: Text -> Attribute
    ondragenter_ :: Text -> Attribute
    ondragenter_ = Text -> Text -> Attribute
    makeAttribute Text
    "ondragenter"

    -- | The @ondragleave@ attribute.
    ondragleave_ :: Text -> Attribute
    ondragleave_ :: Text -> Attribute
    ondragleave_ = Text -> Text -> Attribute
    makeAttribute Text
    "ondragleave"

    -- | The @ondragover@ attribute.
    ondragover_ :: Text -> Attribute
    ondragover_ :: Text -> Attribute
    ondragover_ = Text -> Text -> Attribute
    makeAttribute Text
    "ondragover"

    -- | The @ondragstart@ attribute.
    ondragstart_ :: Text -> Attribute
    ondragstart_ :: Text -> Attribute
    ondragstart_ = Text -> Text -> Attribute
    makeAttribute Text
    "ondragstart"

    -- | The @ondrop@ attribute.
    ondrop_ :: Text -> Attribute
    ondrop_ :: Text -> Attribute
    ondrop_ = Text -> Text -> Attribute
    makeAttribute Text
    "ondrop"

    -- | The @ondurationchange@ attribute.
    ondurationchange_ :: Text -> Attribute
    ondurationchange_ :: Text -> Attribute
    ondurationchange_ = Text -> Text -> Attribute
    makeAttribute Text
    "ondurationchange"

    -- | The @onemptied@ attribute.
    onemptied_ :: Text -> Attribute
    onemptied_ :: Text -> Attribute
    onemptied_ = Text -> Text -> Attribute
    makeAttribute Text
    "onemptied"

    -- | The @onended@ attribute.
    onended_ :: Text -> Attribute
    onended_ :: Text -> Attribute
    onended_ = Text -> Text -> Attribute
    makeAttribute Text
    "onended"

    -- | The @onerror@ attribute.
    onerror_ :: Text -> Attribute
    onerror_ :: Text -> Attribute
    onerror_ = Text -> Text -> Attribute
    makeAttribute Text
    "onerror"

    -- | The @onfocus@ attribute.
    onfocus_ :: Text -> Attribute
    onfocus_ :: Text -> Attribute
    onfocus_ = Text -> Text -> Attribute
    makeAttribute Text
    "onfocus"

    -- | The @onformchange@ attribute.
    onformchange_ :: Text -> Attribute
    onformchange_ :: Text -> Attribute
    onformchange_ = Text -> Text -> Attribute
    makeAttribute Text
    "onformchange"

    -- | The @onforminput@ attribute.
    onforminput_ :: Text -> Attribute
    onforminput_ :: Text -> Attribute
    onforminput_ = Text -> Text -> Attribute
    makeAttribute Text
    "onforminput"

    -- | The @onhaschange@ attribute.
    onhaschange_ :: Text -> Attribute
    onhaschange_ :: Text -> Attribute
    onhaschange_ = Text -> Text -> Attribute
    makeAttribute Text
    "onhaschange"

    -- | The @oninput@ attribute.
    oninput_ :: Text -> Attribute
    oninput_ :: Text -> Attribute
    oninput_ = Text -> Text -> Attribute
    makeAttribute Text
    "oninput"

    -- | The @oninvalid@ attribute.
    oninvalid_ :: Text -> Attribute
    oninvalid_ :: Text -> Attribute
    oninvalid_ = Text -> Text -> Attribute
    makeAttribute Text
    "oninvalid"

    -- | The @onkeydown@ attribute.
    onkeydown_ :: Text -> Attribute
    onkeydown_ :: Text -> Attribute
    onkeydown_ = Text -> Text -> Attribute
    makeAttribute Text
    "onkeydown"

    -- | The @onkeyup@ attribute.
    onkeyup_ :: Text -> Attribute
    onkeyup_ :: Text -> Attribute
    onkeyup_ = Text -> Text -> Attribute
    makeAttribute Text
    "onkeyup"

    -- | The @onload@ attribute.
    onload_ :: Text -> Attribute
    onload_ :: Text -> Attribute
    onload_ = Text -> Text -> Attribute
    makeAttribute Text
    "onload"

    -- | The @onloadeddata@ attribute.
    onloadeddata_ :: Text -> Attribute
    onloadeddata_ :: Text -> Attribute
    onloadeddata_ = Text -> Text -> Attribute
    makeAttribute Text
    "onloadeddata"

    -- | The @onloadedmetadata@ attribute.
    onloadedmetadata_ :: Text -> Attribute
    onloadedmetadata_ :: Text -> Attribute
    onloadedmetadata_ = Text -> Text -> Attribute
    makeAttribute Text
    "onloadedmetadata"

    -- | The @onloadstart@ attribute.
    onloadstart_ :: Text -> Attribute
    onloadstart_ :: Text -> Attribute
    onloadstart_ = Text -> Text -> Attribute
    makeAttribute Text
    "onloadstart"

    -- | The @onmessage@ attribute.
    onmessage_ :: Text -> Attribute
    onmessage_ :: Text -> Attribute
    onmessage_ = Text -> Text -> Attribute
    makeAttribute Text
    "onmessage"

    -- | The @onmousedown@ attribute.
    onmousedown_ :: Text -> Attribute
    onmousedown_ :: Text -> Attribute
    onmousedown_ = Text -> Text -> Attribute
    makeAttribute Text
    "onmousedown"

    -- | The @onmousemove@ attribute.
    onmousemove_ :: Text -> Attribute
    onmousemove_ :: Text -> Attribute
    onmousemove_ = Text -> Text -> Attribute
    makeAttribute Text
    "onmousemove"

    -- | The @onmouseout@ attribute.
    onmouseout_ :: Text -> Attribute
    onmouseout_ :: Text -> Attribute
    onmouseout_ = Text -> Text -> Attribute
    makeAttribute Text
    "onmouseout"

    -- | The @onmouseover@ attribute.
    onmouseover_ :: Text -> Attribute
    onmouseover_ :: Text -> Attribute
    onmouseover_ = Text -> Text -> Attribute
    makeAttribute Text
    "onmouseover"

    -- | The @onmouseup@ attribute.
    onmouseup_ :: Text -> Attribute
    onmouseup_ :: Text -> Attribute
    onmouseup_ = Text -> Text -> Attribute
    makeAttribute Text
    "onmouseup"

    -- | The @onmousewheel@ attribute.
    onmousewheel_ :: Text -> Attribute
    onmousewheel_ :: Text -> Attribute
    onmousewheel_ = Text -> Text -> Attribute
    makeAttribute Text
    "onmousewheel"

    -- | The @ononline@ attribute.
    ononline_ :: Text -> Attribute
    ononline_ :: Text -> Attribute
    ononline_ = Text -> Text -> Attribute
    makeAttribute Text
    "ononline"

    -- | The @onpagehide@ attribute.
    onpagehide_ :: Text -> Attribute
    onpagehide_ :: Text -> Attribute
    onpagehide_ = Text -> Text -> Attribute
    makeAttribute Text
    "onpagehide"

    -- | The @onpageshow@ attribute.
    onpageshow_ :: Text -> Attribute
    onpageshow_ :: Text -> Attribute
    onpageshow_ = Text -> Text -> Attribute
    makeAttribute Text
    "onpageshow"

    -- | The @onpause@ attribute.
    onpause_ :: Text -> Attribute
    onpause_ :: Text -> Attribute
    onpause_ = Text -> Text -> Attribute
    makeAttribute Text
    "onpause"

    -- | The @onplay@ attribute.
    onplay_ :: Text -> Attribute
    onplay_ :: Text -> Attribute
    onplay_ = Text -> Text -> Attribute
    makeAttribute Text
    "onplay"

    -- | The @onplaying@ attribute.
    onplaying_ :: Text -> Attribute
    onplaying_ :: Text -> Attribute
    onplaying_ = Text -> Text -> Attribute
    makeAttribute Text
    "onplaying"

    -- | The @onprogress@ attribute.
    onprogress_ :: Text -> Attribute
    onprogress_ :: Text -> Attribute
    onprogress_ = Text -> Text -> Attribute
    makeAttribute Text
    "onprogress"

    -- | The @onpropstate@ attribute.
    onpropstate_ :: Text -> Attribute
    onpropstate_ :: Text -> Attribute
    onpropstate_ = Text -> Text -> Attribute
    makeAttribute Text
    "onpropstate"

    -- | The @onratechange@ attribute.
    onratechange_ :: Text -> Attribute
    onratechange_ :: Text -> Attribute
    onratechange_ = Text -> Text -> Attribute
    makeAttribute Text
    "onratechange"

    -- | The @onreadystatechange@ attribute.
    onreadystatechange_ :: Text -> Attribute
    onreadystatechange_ :: Text -> Attribute
    onreadystatechange_ = Text -> Text -> Attribute
    makeAttribute Text
    "onreadystatechange"

    -- | The @onredo@ attribute.
    onredo_ :: Text -> Attribute
    onredo_ :: Text -> Attribute
    onredo_ = Text -> Text -> Attribute
    makeAttribute Text
    "onredo"

    -- | The @onresize@ attribute.
    onresize_ :: Text -> Attribute
    onresize_ :: Text -> Attribute
    onresize_ = Text -> Text -> Attribute
    makeAttribute Text
    "onresize"

    -- | The @onscroll@ attribute.
    onscroll_ :: Text -> Attribute
    onscroll_ :: Text -> Attribute
    onscroll_ = Text -> Text -> Attribute
    makeAttribute Text
    "onscroll"

    -- | The @onseeked@ attribute.
    onseeked_ :: Text -> Attribute
    onseeked_ :: Text -> Attribute
    onseeked_ = Text -> Text -> Attribute
    makeAttribute Text
    "onseeked"

    -- | The @onseeking@ attribute.
    onseeking_ :: Text -> Attribute
    onseeking_ :: Text -> Attribute
    onseeking_ = Text -> Text -> Attribute
    makeAttribute Text
    "onseeking"

    -- | The @onselect@ attribute.
    onselect_ :: Text -> Attribute
    onselect_ :: Text -> Attribute
    onselect_ = Text -> Text -> Attribute
    makeAttribute Text
    "onselect"

    -- | The @onstalled@ attribute.
    onstalled_ :: Text -> Attribute
    onstalled_ :: Text -> Attribute
    onstalled_ = Text -> Text -> Attribute
    makeAttribute Text
    "onstalled"

    -- | The @onstorage@ attribute.
    onstorage_ :: Text -> Attribute
    onstorage_ :: Text -> Attribute
    onstorage_ = Text -> Text -> Attribute
    makeAttribute Text
    "onstorage"

    -- | The @onsubmit@ attribute.
    onsubmit_ :: Text -> Attribute
    onsubmit_ :: Text -> Attribute
    onsubmit_ = Text -> Text -> Attribute
    makeAttribute Text
    "onsubmit"

    -- | The @onsuspend@ attribute.
    onsuspend_ :: Text -> Attribute
    onsuspend_ :: Text -> Attribute
    onsuspend_ = Text -> Text -> Attribute
    makeAttribute Text
    "onsuspend"

    -- | The @ontimeupdate@ attribute.
    ontimeupdate_ :: Text -> Attribute
    ontimeupdate_ :: Text -> Attribute
    ontimeupdate_ = Text -> Text -> Attribute
    makeAttribute Text
    "ontimeupdate"

    -- | The @onundo@ attribute.
    onundo_ :: Text -> Attribute
    onundo_ :: Text -> Attribute
    onundo_ = Text -> Text -> Attribute
    makeAttribute Text
    "onundo"

    -- | The @onunload@ attribute.
    onunload_ :: Text -> Attribute
    onunload_ :: Text -> Attribute
    onunload_ = Text -> Text -> Attribute
    makeAttribute Text
    "onunload"

    -- | The @onvolumechange@ attribute.
    onvolumechange_ :: Text -> Attribute
    onvolumechange_ :: Text -> Attribute
    onvolumechange_ = Text -> Text -> Attribute
    makeAttribute Text
    "onvolumechange"

    -- | The @onwaiting@ attribute.
    onwaiting_ :: Text -> Attribute
    onwaiting_ :: Text -> Attribute
    onwaiting_ = Text -> Text -> Attribute
    makeAttribute Text
    "onwaiting"

    -- | The @open@ attribute.
    open_ :: Text -> Attribute
    open_ :: Text -> Attribute
    open_ = Text -> Text -> Attribute
    makeAttribute Text
    "open"

    -- | The @optimum@ attribute.
    optimum_ :: Text -> Attribute
    optimum_ :: Text -> Attribute
    optimum_ = Text -> Text -> Attribute
    makeAttribute Text
    "optimum"

    -- | The @pattern@ attribute.
    pattern_ :: Text -> Attribute
    pattern_ :: Text -> Attribute
    pattern_ = Text -> Text -> Attribute
    makeAttribute Text
    "pattern"

    -- | The @ping@ attribute.
    ping_ :: Text -> Attribute
    ping_ :: Text -> Attribute
    ping_ = Text -> Text -> Attribute
    makeAttribute Text
    "ping"

    -- | The @placeholder@ attribute.
    placeholder_ :: Text -> Attribute
    placeholder_ :: Text -> Attribute
    placeholder_ = Text -> Text -> Attribute
    makeAttribute Text
    "placeholder"

    -- | The @poster@ attribute.
    poster_ :: Text -> Attribute
    poster_ :: Text -> Attribute
    poster_ = Text -> Text -> Attribute
    makeAttribute Text
    "poster"

    -- | The @preload@ attribute.
    preload_ :: Text -> Attribute
    preload_ :: Text -> Attribute
    preload_ = Text -> Text -> Attribute
    makeAttribute Text
    "preload"

    -- | The @pubdate@ attribute.
    pubdate_ :: Text -> Attribute
    pubdate_ :: Text -> Attribute
    pubdate_ = Text -> Text -> Attribute
    makeAttribute Text
    "pubdate"

    -- | The @radiogroup@ attribute.
    radiogroup_ :: Text -> Attribute
    radiogroup_ :: Text -> Attribute
    radiogroup_ = Text -> Text -> Attribute
    makeAttribute Text
    "radiogroup"

    -- | The @readonly@ attribute.
    readonly_ :: Text -> Attribute
    readonly_ :: Text -> Attribute
    readonly_ = Text -> Text -> Attribute
    makeAttribute Text
    "readonly"

    -- | The @rel@ attribute.
    rel_ :: Text -> Attribute
    rel_ :: Text -> Attribute
    rel_ = Text -> Text -> Attribute
    makeAttribute Text
    "rel"

    -- | The @required@ attribute.
    required_ :: Text -> Attribute
    required_ :: Text -> Attribute
    required_ = Text -> Text -> Attribute
    makeAttribute Text
    "required"

    -- | The @reversed@ attribute.
    reversed_ :: Text -> Attribute
    reversed_ :: Text -> Attribute
    reversed_ = Text -> Text -> Attribute
    makeAttribute Text
    "reversed"

    -- | The @role@ attribute.
    role_ :: Text -> Attribute
    role_ :: Text -> Attribute
    role_ = Text -> Text -> Attribute
    makeAttribute Text
    "role"

    -- | The @rows@ attribute.
    rows_ :: Text -> Attribute
    rows_ :: Text -> Attribute
    rows_ = Text -> Text -> Attribute
    makeAttribute Text
    "rows"

    -- | The @rowspan@ attribute.
    rowspan_ :: Text -> Attribute
    rowspan_ :: Text -> Attribute
    rowspan_ = Text -> Text -> Attribute
    makeAttribute Text
    "rowspan"

    -- | The @sandbox@ attribute.
    sandbox_ :: Text -> Attribute
    sandbox_ :: Text -> Attribute
    sandbox_ = Text -> Text -> Attribute
    makeAttribute Text
    "sandbox"

    -- | The @scope@ attribute.
    scope_ :: Text -> Attribute
    scope_ :: Text -> Attribute
    scope_ = Text -> Text -> Attribute
    makeAttribute Text
    "scope"

    -- | The @scoped@ attribute.
    scoped_ :: Text -> Attribute
    scoped_ :: Text -> Attribute
    scoped_ = Text -> Text -> Attribute
    makeAttribute Text
    "scoped"

    -- | The @seamless@ attribute.
    seamless_ :: Text -> Attribute
    seamless_ :: Text -> Attribute
    seamless_ = Text -> Text -> Attribute
    makeAttribute Text
    "seamless"

    -- | The @selected@ attribute.
    selected_ :: Text -> Attribute
    selected_ :: Text -> Attribute
    selected_ = Text -> Text -> Attribute
    makeAttribute Text
    "selected"

    -- | The @shape@ attribute.
    shape_ :: Text -> Attribute
    shape_ :: Text -> Attribute
    shape_ = Text -> Text -> Attribute
    makeAttribute Text
    "shape"

    -- | The @size@ attribute.
    size_ :: Text -> Attribute
    size_ :: Text -> Attribute
    size_ = Text -> Text -> Attribute
    makeAttribute Text
    "size"

    -- | The @sizes@ attribute.
    sizes_ :: Text -> Attribute
    sizes_ :: Text -> Attribute
    sizes_ = Text -> Text -> Attribute
    makeAttribute Text
    "sizes"

    -- | The @spellcheck@ attribute.
    spellcheck_ :: Text -> Attribute
    spellcheck_ :: Text -> Attribute
    spellcheck_ = Text -> Text -> Attribute
    makeAttribute Text
    "spellcheck"

    -- | The @src@ attribute.
    src_ :: Text -> Attribute
    src_ :: Text -> Attribute
    src_ = Text -> Text -> Attribute
    makeAttribute Text
    "src"

    -- | The @srcdoc@ attribute.
    srcdoc_ :: Text -> Attribute
    srcdoc_ :: Text -> Attribute
    srcdoc_ = Text -> Text -> Attribute
    makeAttribute Text
    "srcdoc"

    -- | The @start@ attribute.
    start_ :: Text -> Attribute
    start_ :: Text -> Attribute
    start_ = Text -> Text -> Attribute
    makeAttribute Text
    "start"

    -- | The @step@ attribute.
    step_ :: Text -> Attribute
    step_ :: Text -> Attribute
    step_ = Text -> Text -> Attribute
    makeAttribute Text
    "step"

    -- | The @subject@ attribute.
    subject_ :: Text -> Attribute
    subject_ :: Text -> Attribute
    subject_ = Text -> Text -> Attribute
    makeAttribute Text
    "subject"

    -- | The @tabindex@ attribute.
    tabindex_ :: Text -> Attribute
    tabindex_ :: Text -> Attribute
    tabindex_ = Text -> Text -> Attribute
    makeAttribute Text
    "tabindex"

    -- | The @target@ attribute.
    target_ :: Text -> Attribute
    target_ :: Text -> Attribute
    target_ = Text -> Text -> Attribute
    makeAttribute Text
    "target"

    -- | The @type@ attribute.
    type_ :: Text -> Attribute
    type_ :: Text -> Attribute
    type_ = Text -> Text -> Attribute
    makeAttribute Text
    "type"

    -- | The @usemap@ attribute.
    usemap_ :: Text -> Attribute
    usemap_ :: Text -> Attribute
    usemap_ = Text -> Text -> Attribute
    makeAttribute Text
    "usemap"

    -- | The @value@ attribute.
    value_ :: Text -> Attribute
    value_ :: Text -> Attribute
    value_ = Text -> Text -> Attribute
    makeAttribute Text
    "value"

    -- | The @width@ attribute.
    width_ :: Text -> Attribute
    width_ :: Text -> Attribute
    width_ = Text -> Text -> Attribute
    makeAttribute Text
    "width"

    -- | The @wrap@ attribute.
    wrap_ :: Text -> Attribute
    wrap_ :: Text -> Attribute
    wrap_ = Text -> Text -> Attribute
    makeAttribute Text
    "wrap"

    -- | The @xmlns@ attribute.
    xmlns_ :: Text -> Attribute
    xmlns_ :: Text -> Attribute
    xmlns_ = Text -> Text -> Attribute
    makeAttribute Text
    "xmlns"