    {-# LANGUAGE OverloadedStrings #-}
    {-# LANGUAGE FlexibleContexts  #-}

    -------------------------------------------------------------------------------
    -- |
    -- Module      :  Lucid.Svg.Elements
    -- Copyright   :  (c) 2015 Jeffrey Rosenbluth
    -- License     :  BSD-style (see LICENSE)
    -- Maintainer  :  jeffrey.rosenbluth@gmail.com
    --
    -- SVG elements.
    --
    -------------------------------------------------------------------------------

    module Lucid.Svg.Elements where

    import Lucid.Base

    -- | A type alias for the 'SvgT m a' monad transformer.
    type SvgT = HtmlT

    -- | @DOCTYPE@ element
    doctype_ :: Monad m => SvgT m ()
    doctype_ :: forall (m :: * -> *). Monad m => SvgT m ()
    doctype_ = Text -> HtmlT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeElementNoEnd Text
    "?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n    \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\""

    -- | @svg@ element + svg 1.1 attributes
    svg11_:: Term [Attribute] (s -> t) => s -> t
    svg11_ :: forall s t. Term [Attribute] (s -> t) => s -> t
    svg11_ s
    m = [Attribute] -> s -> t
    forall arg result. Term arg result => arg -> result
    svg_ [ Text -> Text -> Attribute
    makeAttribute Text
    "xmlns" Text
    "http://www.w3.org/2000/svg"
                    , Text -> Text -> Attribute
    makeAttribute Text
    "xmlns:xlink" Text
    "http://www.w3.org/1999/xlink"
                    , Text -> Text -> Attribute
    makeAttribute Text
    "version" Text
    "1.1" ]
               s
    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"

    -- | @altglyph@ element
    altGlyph_ :: Monad m => [Attribute] -> SvgT m ()
    altGlyph_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    altGlyph_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "altGlyph"

    -- | @altglyphdef@ element
    altGlyphDef_ :: Monad m => [Attribute] -> SvgT m ()
    altGlyphDef_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    altGlyphDef_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "altGlyphDef"

    -- | @altglyphitem@ element
    altGlyphItem_ :: Monad m => [Attribute] -> SvgT m ()
    altGlyphItem_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    altGlyphItem_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "altGlyphItem"

    -- | @animate@ element
    animate_ :: Monad m => [Attribute] -> SvgT m ()
    animate_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    animate_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "animate"

    -- | @animatecolor@ element
    animateColor_ :: Monad m => [Attribute] -> SvgT m ()
    animateColor_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    animateColor_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "animateColor"

    -- | @animatemotion@ element
    animateMotion_ :: Monad m => [Attribute] -> SvgT m ()
    animateMotion_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    animateMotion_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "animateMotion"

    -- | @animatetransform@ element
    animateTransform_ :: Monad m => [Attribute] -> SvgT m ()
    animateTransform_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    animateTransform_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "animateTransform"

    -- | @circle@ element
    circle_ :: Monad m => [Attribute] -> SvgT m ()
    circle_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    circle_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "circle"

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

    -- | @colorProfile@ element
    colorProfile_ :: Monad m => [Attribute] -> SvgT m ()
    colorProfile_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    colorProfile_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "color-profile"

    -- | @cursor@ element
    cursor_ :: Monad m => [Attribute] -> SvgT m ()
    cursor_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    cursor_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "cursor"

    -- | @defs@ element
    defs_ :: Term arg result => arg -> result
    defs_ :: forall arg result. Term arg result => arg -> result
    defs_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "defs"

    -- | @desc@ element
    desc_ :: Term arg result => arg -> result
    desc_ :: forall arg result. Term arg result => arg -> result
    desc_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "desc"

    -- | @ellipse@ element
    ellipse_ :: Monad m => [Attribute] -> SvgT m ()
    ellipse_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    ellipse_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "ellipse"

    -- | @feblend@ element
    feBlend_ :: Monad m => [Attribute] -> SvgT m ()
    feBlend_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feBlend_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feBlend"

    -- | @fecolormatrix@ element
    feColorMatrix_ :: Monad m => [Attribute] -> SvgT m ()
    feColorMatrix_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feColorMatrix_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feColorMatrix"

    -- | @fecomponenttransfer@ element
    feComponentTransfer_ :: Monad m => [Attribute] -> SvgT m ()
    feComponentTransfer_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feComponentTransfer_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feComponentTransfer"

    -- | @fecomposite@ element
    feComposite_ :: Monad m => [Attribute] -> SvgT m ()
    feComposite_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feComposite_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feComposite"

    -- | @feconvolvematrix@ element
    feConvolveMatrix_ :: Monad m => [Attribute] -> SvgT m ()
    feConvolveMatrix_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feConvolveMatrix_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feConvolveMatrix"

    -- | @fediffuselighting@ element
    feDiffuseLighting_ :: Monad m => [Attribute] -> SvgT m ()
    feDiffuseLighting_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feDiffuseLighting_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feDiffuseLighting"

    -- | @fedisplacementmap@ element
    feDisplacementMap_ :: Monad m => [Attribute] -> SvgT m ()
    feDisplacementMap_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feDisplacementMap_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feDisplacementMap"

    -- | @fedistantlight@ element
    feDistantLight_ :: Monad m => [Attribute] -> SvgT m ()
    feDistantLight_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feDistantLight_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feDistantLight"

    -- | @feflood@ element
    feFlood_ :: Monad m => [Attribute] -> SvgT m ()
    feFlood_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feFlood_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feFlood"

    -- | @fefunca@ element
    feFuncA_ :: Monad m => [Attribute] -> SvgT m ()
    feFuncA_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feFuncA_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feFuncA"

    -- | @fefuncb@ element
    feFuncB_ :: Monad m => [Attribute] -> SvgT m ()
    feFuncB_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feFuncB_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feFuncB"

    -- | @fefuncg@ element
    feFuncG_ :: Monad m => [Attribute] -> SvgT m ()
    feFuncG_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feFuncG_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feFuncG"

    -- | @fefuncr@ element
    feFuncR_ :: Monad m => [Attribute] -> SvgT m ()
    feFuncR_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feFuncR_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feFuncR"

    -- | @fegaussianblur@ element
    feGaussianBlur_ :: Monad m => [Attribute] -> SvgT m ()
    feGaussianBlur_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feGaussianBlur_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feGaussianBlur"

    -- | @feimage@ element
    feImage_ :: Monad m => [Attribute] -> SvgT m ()
    feImage_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feImage_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feImage"

    -- | @femerge@ element
    feMerge_ :: Monad m => [Attribute] -> SvgT m ()
    feMerge_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feMerge_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feMerge"

    -- | @femergenode@ element
    feMergeNode_ :: Monad m => [Attribute] -> SvgT m ()
    feMergeNode_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feMergeNode_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feMergeNode"

    -- | @femorphology@ element
    feMorphology_ :: Monad m => [Attribute] -> SvgT m ()
    feMorphology_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feMorphology_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feMorphology"

    -- | @feoffset@ element
    feOffset_ :: Monad m => [Attribute] -> SvgT m ()
    feOffset_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feOffset_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feOffset"

    -- | @fepointlight@ element
    fePointLight_ :: Monad m => [Attribute] -> SvgT m ()
    fePointLight_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    fePointLight_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "fePointLight"

    -- | @fespecularlighting@ element
    feSpecularLighting_ :: Monad m => [Attribute] -> SvgT m ()
    feSpecularLighting_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feSpecularLighting_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feSpecularLighting"

    -- | @fespotlight@ element
    feSpotLight_ :: Monad m => [Attribute] -> SvgT m ()
    feSpotLight_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feSpotLight_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feSpotLight"

    -- | @fetile@ element
    feTile_ :: Monad m => [Attribute] -> SvgT m ()
    feTile_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feTile_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feTile"

    -- | @feturbulence@ element
    feTurbulence_ :: Monad m => [Attribute] -> SvgT m ()
    feTurbulence_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    feTurbulence_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "feTurbulence"

    -- | @filter_@ element
    filter_ :: Term arg result => arg -> result
    filter_ :: forall arg result. Term arg result => arg -> result
    filter_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "filter"

    -- | @font@ element
    font_ :: Monad m => [Attribute] -> SvgT m ()
    font_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    font_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "font"

    -- | @fontFace@ element
    fontFace_ :: Monad m => [Attribute] -> SvgT m ()
    fontFace_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    fontFace_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "font-face"

    -- | @fontFaceFormat@ element
    fontFaceFormat_ :: Monad m => [Attribute] -> SvgT m ()
    fontFaceFormat_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    fontFaceFormat_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "font-face-format"

    -- | @fontFaceName@ element
    fontFaceName_ :: Monad m => [Attribute] -> SvgT m ()
    fontFaceName_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    fontFaceName_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "font-face-name"

    -- | @fontFaceSrc@ element
    fontFaceSrc_ :: Monad m => [Attribute] -> SvgT m ()
    fontFaceSrc_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    fontFaceSrc_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "font-face-src"

    -- | @fontFaceUri@ element
    fontFaceUri_ :: Monad m => [Attribute] -> SvgT m ()
    fontFaceUri_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    fontFaceUri_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "font-face-uri"

    -- | @foreignobject@ element
    foreignObject_ :: Monad m => [Attribute] -> SvgT m ()
    foreignObject_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    foreignObject_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "foreignObject"

    -- | @g@ element
    g_ :: Term arg result => arg -> result
    g_ :: forall arg result. Term arg result => arg -> result
    g_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "g"

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

    -- | @glyphref@ element
    glyphRef_ :: Monad m => [Attribute] -> SvgT m ()
    glyphRef_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    glyphRef_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "glyphRef"

    -- | @hkern@ element
    hkern_ :: Monad m => [Attribute] -> SvgT m ()
    hkern_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    hkern_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "hkern"

    -- | @image@ element
    image_ :: Monad m => [Attribute] -> SvgT m ()
    image_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    image_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "image"

    -- | @line@ element
    line_ :: Term arg result => arg -> result
    line_ :: forall arg result. Term arg result => arg -> result
    line_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "line"

    -- | @lineargradient@ element
    linearGradient_ :: Term arg result => arg -> result
    linearGradient_ :: forall arg result. Term arg result => arg -> result
    linearGradient_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "linearGradient"

    -- | @marker@ element
    marker_ :: Term arg result => arg -> result
    marker_ :: forall arg result. Term arg result => arg -> result
    marker_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "marker"

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

    -- | @metadata@ element
    metadata_ :: Monad m => [Attribute] -> SvgT m ()
    metadata_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    metadata_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "metadata"

    -- | @missingGlyph@ element
    missingGlyph_ :: Term arg result => arg -> result
    missingGlyph_ :: forall arg result. Term arg result => arg -> result
    missingGlyph_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "missing-glyph"

    -- | @mpath@ element
    mpath_ :: Monad m => [Attribute] -> SvgT m ()
    mpath_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    mpath_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "mpath"

    -- | @path@ element
    path_ :: Monad m => [Attribute] -> SvgT m ()
    path_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    path_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "path"

    -- | @pattern@ element
    pattern_ :: Term arg result => arg -> result
    pattern_ :: forall arg result. Term arg result => arg -> result
    pattern_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "pattern"

    -- | @polygon@ element
    polygon_ :: Monad m => [Attribute] -> SvgT m ()
    polygon_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    polygon_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "polygon"

    -- | @polyline@ element
    polyline_ :: Monad m => [Attribute] -> SvgT m ()
    polyline_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    polyline_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "polyline"

    -- | @radialgradient@ element
    radialGradient_ :: Term arg result => arg -> result
    radialGradient_ :: forall arg result. Term arg result => arg -> result
    radialGradient_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "radialGradient"

    -- | @rect@ element
    rect_ :: Monad m => [Attribute] -> SvgT m ()
    rect_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    rect_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "rect"

    -- | @script@ element
    script_ :: Monad m => [Attribute] -> SvgT m ()
    script_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    script_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "script"

    -- | @set@ element
    set_ :: Monad m => [Attribute] -> SvgT m ()
    set_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    set_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "set"

    -- | @stop@ element
    stop_ :: Monad m => [Attribute] -> SvgT m ()
    stop_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    stop_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "stop"

    -- | @style@ element
    style_ :: Term arg result => arg -> result
    style_ :: forall arg result. Term arg result => arg -> result
    style_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "style"

    -- | @svg@ element
    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"

    -- | @switch@ element
    switch_ :: Term arg result => arg -> result
    switch_ :: forall arg result. Term arg result => arg -> result
    switch_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "switch"

    -- | @symbol@ element
    symbol_ :: Term arg result => arg -> result
    symbol_ :: forall arg result. Term arg result => arg -> result
    symbol_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "symbol"

    -- | @text_@ element
    text_ :: Term arg result => arg -> result
    text_ :: forall arg result. Term arg result => arg -> result
    text_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "text"

    -- | @textpath@ element
    textPath_ :: Term arg result => arg -> result
    textPath_ :: forall arg result. Term arg result => arg -> result
    textPath_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "textPath"

    -- | @title@ element
    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"

    -- | @tref@ element
    tref_ :: Monad m => [Attribute] -> SvgT m ()
    tref_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    tref_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "tref"

    -- | @tspan@ element
    tspan_ :: Term arg result => arg -> result
    tspan_ :: forall arg result. Term arg result => arg -> result
    tspan_ = Text -> arg -> result
    forall arg result. Term arg result => Text -> arg -> result
    term Text
    "tspan"

    -- | @use@ element
    use_ :: Monad m => [Attribute] -> SvgT m ()
    use_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    use_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "use"

    -- | @view@ element
    view_ :: Monad m => [Attribute] -> SvgT m ()
    view_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    view_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "view"

    -- | @vkern@ element
    vkern_ :: Monad m => [Attribute] -> SvgT m ()
    vkern_ :: forall (m :: * -> *). Monad m => [Attribute] -> SvgT m ()
    vkern_ = SvgT m () -> [Attribute] -> SvgT m ()
    forall a. With a => a -> [Attribute] -> a
    with (SvgT m () -> [Attribute] -> SvgT m ())
    -> SvgT m () -> [Attribute] -> SvgT m ()
    forall a b. (a -> b) -> a -> b
    $ Text -> SvgT m ()
    forall (m :: * -> *). Applicative m => Text -> HtmlT m ()
    makeXmlElementNoEnd Text
    "vkern"