diff --git a/lucid-svg.cabal b/lucid-svg.cabal
--- a/lucid-svg.cabal
+++ b/lucid-svg.cabal
@@ -1,5 +1,5 @@
 name:                lucid-svg
-version:             0.5.0.0
+version:             0.6.0.0
 synopsis:            DSL for SVG using lucid for HTML
 description:         Easy to write SVG in the syle of lucid.
 homepage:            http://github.com/jeffreyrosenbluth/lucid-svg.git
diff --git a/src/Lucid/Svg/Elements.hs b/src/Lucid/Svg/Elements.hs
--- a/src/Lucid/Svg/Elements.hs
+++ b/src/Lucid/Svg/Elements.hs
@@ -12,7 +12,7 @@
 --
 -------------------------------------------------------------------------------
 
-module Lucid.Svg.Elements where 
+module Lucid.Svg.Elements where
 
 import Lucid.Base
 
@@ -21,7 +21,7 @@
 
 -- | @DOCTYPE@ element
 doctype_ :: Monad m => SvgT m ()
-doctype_ = makeElementNoEnd "?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\"" 
+doctype_ = makeElementNoEnd "?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
@@ -40,43 +40,43 @@
 
 -- | @altglyphdef@ element
 altGlyphDef_ :: Monad m => [Attribute] -> SvgT m ()
-altGlyphDef_ = with $ makeXmlElementNoEnd "altGlyphDef" 
+altGlyphDef_ = with $ makeXmlElementNoEnd "altGlyphDef"
 
 -- | @altglyphitem@ element
 altGlyphItem_ :: Monad m => [Attribute] -> SvgT m ()
-altGlyphItem_ = with $ makeXmlElementNoEnd "altGlyphItem" 
+altGlyphItem_ = with $ makeXmlElementNoEnd "altGlyphItem"
 
 -- | @animate@ element
 animate_ :: Monad m => [Attribute] -> SvgT m ()
-animate_ = with $ makeXmlElementNoEnd "animate" 
+animate_ = with $ makeXmlElementNoEnd "animate"
 
 -- | @animatecolor@ element
 animateColor_ :: Monad m => [Attribute] -> SvgT m ()
-animateColor_ = with $ makeXmlElementNoEnd "animateColor" 
+animateColor_ = with $ makeXmlElementNoEnd "animateColor"
 
 -- | @animatemotion@ element
 animateMotion_ :: Monad m => [Attribute] -> SvgT m ()
-animateMotion_ = with $ makeXmlElementNoEnd "animateMotion" 
+animateMotion_ = with $ makeXmlElementNoEnd "animateMotion"
 
 -- | @animatetransform@ element
 animateTransform_ :: Monad m => [Attribute] -> SvgT m ()
-animateTransform_ = with $ makeXmlElementNoEnd "animateTransform" 
+animateTransform_ = with $ makeXmlElementNoEnd "animateTransform"
 
 -- | @circle@ element
 circle_ :: Monad m => [Attribute] -> SvgT m ()
-circle_ = with $ makeXmlElementNoEnd "circle" 
+circle_ = with $ makeXmlElementNoEnd "circle"
 
 -- | @clipPath@ element or attribute
 clipPath_ :: Term arg result => arg -> result
 clipPath_ = term "clipPath"
 
--- | @colorProfile@ element 
+-- | @colorProfile@ element
 colorProfile_ :: Monad m => [Attribute] -> SvgT m ()
-colorProfile_ = with $ makeXmlElementNoEnd "color-profile" 
+colorProfile_ = with $ makeXmlElementNoEnd "color-profile"
 
 -- | @cursor@ element
 cursor_ :: Monad m => [Attribute] -> SvgT m ()
-cursor_ = with $ makeXmlElementNoEnd "cursor" 
+cursor_ = with $ makeXmlElementNoEnd "cursor"
 
 -- | @defs@ element
 defs_ :: Term arg result => arg -> result
@@ -84,139 +84,139 @@
 
 -- | @desc@ element
 desc_ :: Monad m => [Attribute] -> SvgT m ()
-desc_ = with $ makeXmlElementNoEnd "desc" 
+desc_ = with $ makeXmlElementNoEnd "desc"
 
 -- | @ellipse@ element
 ellipse_ :: Monad m => [Attribute] -> SvgT m ()
-ellipse_ = with $ makeXmlElementNoEnd "ellipse" 
+ellipse_ = with $ makeXmlElementNoEnd "ellipse"
 
 -- | @feblend@ element
 feBlend_ :: Monad m => [Attribute] -> SvgT m ()
-feBlend_ = with $ makeXmlElementNoEnd "feBlend" 
+feBlend_ = with $ makeXmlElementNoEnd "feBlend"
 
 -- | @fecolormatrix@ element
 feColorMatrix_ :: Monad m => [Attribute] -> SvgT m ()
-feColorMatrix_ = with $ makeXmlElementNoEnd "feColorMatrix" 
+feColorMatrix_ = with $ makeXmlElementNoEnd "feColorMatrix"
 
 -- | @fecomponenttransfer@ element
 feComponentTransfer_ :: Monad m => [Attribute] -> SvgT m ()
-feComponentTransfer_ = with $ makeXmlElementNoEnd "feComponentTransfer" 
+feComponentTransfer_ = with $ makeXmlElementNoEnd "feComponentTransfer"
 
 -- | @fecomposite@ element
 feComposite_ :: Monad m => [Attribute] -> SvgT m ()
-feComposite_ = with $ makeXmlElementNoEnd "feComposite" 
+feComposite_ = with $ makeXmlElementNoEnd "feComposite"
 
 -- | @feconvolvematrix@ element
 feConvolveMatrix_ :: Monad m => [Attribute] -> SvgT m ()
-feConvolveMatrix_ = with $ makeXmlElementNoEnd "feConvolveMatrix" 
+feConvolveMatrix_ = with $ makeXmlElementNoEnd "feConvolveMatrix"
 
 -- | @fediffuselighting@ element
 feDiffuseLighting_ :: Monad m => [Attribute] -> SvgT m ()
-feDiffuseLighting_ = with $ makeXmlElementNoEnd "feDiffuseLighting" 
+feDiffuseLighting_ = with $ makeXmlElementNoEnd "feDiffuseLighting"
 
 -- | @fedisplacementmap@ element
 feDisplacementMap_ :: Monad m => [Attribute] -> SvgT m ()
-feDisplacementMap_ = with $ makeXmlElementNoEnd "feDisplacementMap" 
+feDisplacementMap_ = with $ makeXmlElementNoEnd "feDisplacementMap"
 
 -- | @fedistantlight@ element
 feDistantLight_ :: Monad m => [Attribute] -> SvgT m ()
-feDistantLight_ = with $ makeXmlElementNoEnd "feDistantLight" 
+feDistantLight_ = with $ makeXmlElementNoEnd "feDistantLight"
 
 -- | @feflood@ element
 feFlood_ :: Monad m => [Attribute] -> SvgT m ()
-feFlood_ = with $ makeXmlElementNoEnd "feFlood" 
+feFlood_ = with $ makeXmlElementNoEnd "feFlood"
 
 -- | @fefunca@ element
 feFuncA_ :: Monad m => [Attribute] -> SvgT m ()
-feFuncA_ = with $ makeXmlElementNoEnd "feFuncA" 
+feFuncA_ = with $ makeXmlElementNoEnd "feFuncA"
 
 -- | @fefuncb@ element
 feFuncB_ :: Monad m => [Attribute] -> SvgT m ()
-feFuncB_ = with $ makeXmlElementNoEnd "feFuncB" 
+feFuncB_ = with $ makeXmlElementNoEnd "feFuncB"
 
 -- | @fefuncg@ element
 feFuncG_ :: Monad m => [Attribute] -> SvgT m ()
-feFuncG_ = with $ makeXmlElementNoEnd "feFuncG" 
+feFuncG_ = with $ makeXmlElementNoEnd "feFuncG"
 
 -- | @fefuncr@ element
 feFuncR_ :: Monad m => [Attribute] -> SvgT m ()
-feFuncR_ = with $ makeXmlElementNoEnd "feFuncR" 
+feFuncR_ = with $ makeXmlElementNoEnd "feFuncR"
 
 -- | @fegaussianblur@ element
 feGaussianBlur_ :: Monad m => [Attribute] -> SvgT m ()
-feGaussianBlur_ = with $ makeXmlElementNoEnd "feGaussianBlur" 
+feGaussianBlur_ = with $ makeXmlElementNoEnd "feGaussianBlur"
 
 -- | @feimage@ element
 feImage_ :: Monad m => [Attribute] -> SvgT m ()
-feImage_ = with $ makeXmlElementNoEnd "feImage" 
+feImage_ = with $ makeXmlElementNoEnd "feImage"
 
 -- | @femerge@ element
 feMerge_ :: Monad m => [Attribute] -> SvgT m ()
-feMerge_ = with $ makeXmlElementNoEnd "feMerge" 
+feMerge_ = with $ makeXmlElementNoEnd "feMerge"
 
 -- | @femergenode@ element
 feMergeNode_ :: Monad m => [Attribute] -> SvgT m ()
-feMergeNode_ = with $ makeXmlElementNoEnd "feMergeNode" 
+feMergeNode_ = with $ makeXmlElementNoEnd "feMergeNode"
 
 -- | @femorphology@ element
 feMorphology_ :: Monad m => [Attribute] -> SvgT m ()
-feMorphology_ = with $ makeXmlElementNoEnd "feMorphology" 
+feMorphology_ = with $ makeXmlElementNoEnd "feMorphology"
 
 -- | @feoffset@ element
 feOffset_ :: Monad m => [Attribute] -> SvgT m ()
-feOffset_ = with $ makeXmlElementNoEnd "feOffset" 
+feOffset_ = with $ makeXmlElementNoEnd "feOffset"
 
 -- | @fepointlight@ element
 fePointLight_ :: Monad m => [Attribute] -> SvgT m ()
-fePointLight_ = with $ makeXmlElementNoEnd "fePointLight" 
+fePointLight_ = with $ makeXmlElementNoEnd "fePointLight"
 
 -- | @fespecularlighting@ element
 feSpecularLighting_ :: Monad m => [Attribute] -> SvgT m ()
-feSpecularLighting_ = with $ makeXmlElementNoEnd "feSpecularLighting" 
+feSpecularLighting_ = with $ makeXmlElementNoEnd "feSpecularLighting"
 
 -- | @fespotlight@ element
 feSpotLight_ :: Monad m => [Attribute] -> SvgT m ()
-feSpotLight_ = with $ makeXmlElementNoEnd "feSpotLight" 
+feSpotLight_ = with $ makeXmlElementNoEnd "feSpotLight"
 
 -- | @fetile@ element
 feTile_ :: Monad m => [Attribute] -> SvgT m ()
-feTile_ = with $ makeXmlElementNoEnd "feTile" 
+feTile_ = with $ makeXmlElementNoEnd "feTile"
 
 -- | @feturbulence@ element
 feTurbulence_ :: Monad m => [Attribute] -> SvgT m ()
-feTurbulence_ = with $ makeXmlElementNoEnd "feTurbulence" 
+feTurbulence_ = with $ makeXmlElementNoEnd "feTurbulence"
 
 -- | @filter_@ element
 filter_ :: Monad m => [Attribute] -> SvgT m ()
-filter_ = with $ makeXmlElementNoEnd "filter" 
+filter_ = with $ makeXmlElementNoEnd "filter"
 
 -- | @font@ element
 font_ :: Monad m => [Attribute] -> SvgT m ()
-font_ = with $ makeXmlElementNoEnd "font" 
+font_ = with $ makeXmlElementNoEnd "font"
 
 -- | @fontFace@ element
 fontFace_ :: Monad m => [Attribute] -> SvgT m ()
-fontFace_ = with $ makeXmlElementNoEnd "font-face" 
+fontFace_ = with $ makeXmlElementNoEnd "font-face"
 
 -- | @fontFaceFormat@ element
 fontFaceFormat_ :: Monad m => [Attribute] -> SvgT m ()
-fontFaceFormat_ = with $ makeXmlElementNoEnd "font-face-format" 
+fontFaceFormat_ = with $ makeXmlElementNoEnd "font-face-format"
 
 -- | @fontFaceName@ element
 fontFaceName_ :: Monad m => [Attribute] -> SvgT m ()
-fontFaceName_ = with $ makeXmlElementNoEnd "font-face-name" 
+fontFaceName_ = with $ makeXmlElementNoEnd "font-face-name"
 
 -- | @fontFaceSrc@ element
 fontFaceSrc_ :: Monad m => [Attribute] -> SvgT m ()
-fontFaceSrc_ = with $ makeXmlElementNoEnd "font-face-src" 
+fontFaceSrc_ = with $ makeXmlElementNoEnd "font-face-src"
 
 -- | @fontFaceUri@ element
 fontFaceUri_ :: Monad m => [Attribute] -> SvgT m ()
-fontFaceUri_ = with $ makeXmlElementNoEnd "font-face-uri" 
+fontFaceUri_ = with $ makeXmlElementNoEnd "font-face-uri"
 
 -- | @foreignobject@ element
 foreignObject_ :: Monad m => [Attribute] -> SvgT m ()
-foreignObject_ = with $ makeXmlElementNoEnd "foreignObject" 
+foreignObject_ = with $ makeXmlElementNoEnd "foreignObject"
 
 -- | @g@ element
 g_ :: Term arg result => arg -> result
@@ -228,19 +228,19 @@
 
 -- | @glyphref@ element
 glyphRef_ :: Monad m => [Attribute] -> SvgT m ()
-glyphRef_ = with $ makeXmlElementNoEnd "glyphRef" 
+glyphRef_ = with $ makeXmlElementNoEnd "glyphRef"
 
 -- | @hkern@ element
 hkern_ :: Monad m => [Attribute] -> SvgT m ()
-hkern_ = with $ makeXmlElementNoEnd "hkern" 
+hkern_ = with $ makeXmlElementNoEnd "hkern"
 
 -- | @image@ element
 image_ :: Monad m => [Attribute] -> SvgT m ()
-image_ = with $ makeXmlElementNoEnd "image" 
+image_ = with $ makeXmlElementNoEnd "image"
 
 -- | @line@ element
 line_ :: Monad m => [Attribute] -> SvgT m ()
-line_ = with $ makeXmlElementNoEnd "line" 
+line_ = with $ makeXmlElementNoEnd "line"
 
 -- | @lineargradient@ element
 linearGradient_ :: Term arg result => arg -> result
@@ -256,7 +256,7 @@
 
 -- | @metadata@ element
 metadata_ :: Monad m => [Attribute] -> SvgT m ()
-metadata_ = with $ makeXmlElementNoEnd "metadata" 
+metadata_ = with $ makeXmlElementNoEnd "metadata"
 
 -- | @missingGlyph@ element
 missingGlyph_ :: Term arg result => arg -> result
@@ -264,11 +264,11 @@
 
 -- | @mpath@ element
 mpath_ :: Monad m => [Attribute] -> SvgT m ()
-mpath_ = with $ makeXmlElementNoEnd "mpath" 
+mpath_ = with $ makeXmlElementNoEnd "mpath"
 
 -- | @path@ element
 path_ :: Monad m => [Attribute] -> SvgT m ()
-path_ = with $ makeXmlElementNoEnd "path" 
+path_ = with $ makeXmlElementNoEnd "path"
 
 -- | @pattern@ element
 pattern_ :: Term arg result => arg -> result
@@ -276,11 +276,11 @@
 
 -- | @polygon@ element
 polygon_ :: Monad m => [Attribute] -> SvgT m ()
-polygon_ = with $ makeXmlElementNoEnd "polygon" 
+polygon_ = with $ makeXmlElementNoEnd "polygon"
 
 -- | @polyline@ element
 polyline_ :: Monad m => [Attribute] -> SvgT m ()
-polyline_ = with $ makeXmlElementNoEnd "polyline" 
+polyline_ = with $ makeXmlElementNoEnd "polyline"
 
 -- | @radialgradient@ element
 radialGradient_ :: Term arg result => arg -> result
@@ -292,19 +292,19 @@
 
 -- | @script@ element
 script_ :: Monad m => [Attribute] -> SvgT m ()
-script_ = with $ makeXmlElementNoEnd "script" 
+script_ = with $ makeXmlElementNoEnd "script"
 
 -- | @set@ element
 set_ :: Monad m => [Attribute] -> SvgT m ()
-set_ = with $ makeXmlElementNoEnd "set" 
+set_ = with $ makeXmlElementNoEnd "set"
 
 -- | @stop@ element
 stop_ :: Monad m => [Attribute] -> SvgT m ()
-stop_ = with $ makeXmlElementNoEnd "stop" 
+stop_ = with $ makeXmlElementNoEnd "stop"
 
 -- | @style@ element
 style_ :: Monad m => [Attribute] -> SvgT m ()
-style_ = with $ makeXmlElementNoEnd "style" 
+style_ = with $ makeXmlElementNoEnd "style"
 
 -- | @svg@ element
 svg_ :: Term arg result => arg -> result
@@ -323,29 +323,29 @@
 text_ = term "text"
 
 -- | @textpath@ element
-textPath_ :: Monad m => [Attribute] -> SvgT m ()
-textPath_ = with $ makeXmlElementNoEnd "textPath" 
+textPath_ :: Term arg result => arg -> result
+textPath_ = term "textPath"
 
 -- | @title@ element
 title_ :: Monad m => [Attribute] -> SvgT m ()
-title_ = with $ makeXmlElementNoEnd "title" 
+title_ = with $ makeXmlElementNoEnd "title"
 
 -- | @tref@ element
 tref_ :: Monad m => [Attribute] -> SvgT m ()
-tref_ = with $ makeXmlElementNoEnd "tref" 
+tref_ = with $ makeXmlElementNoEnd "tref"
 
 -- | @tspan@ element
 tspan_ :: Monad m => [Attribute] -> SvgT m ()
-tspan_ = with $ makeXmlElementNoEnd "tspan" 
+tspan_ = with $ makeXmlElementNoEnd "tspan"
 
 -- | @use@ element
 use_ :: Monad m => [Attribute] -> SvgT m ()
-use_ = with $ makeXmlElementNoEnd "use" 
+use_ = with $ makeXmlElementNoEnd "use"
 
 -- | @view@ element
 view_ :: Monad m => [Attribute] -> SvgT m ()
-view_ = with $ makeXmlElementNoEnd "view" 
+view_ = with $ makeXmlElementNoEnd "view"
 
 -- | @vkern@ element
 vkern_ :: Monad m => [Attribute] -> SvgT m ()
-vkern_ = with $ makeXmlElementNoEnd "vkern" 
+vkern_ = with $ makeXmlElementNoEnd "vkern"
