data SVGAttribute : String -> TypeSVG Attributes, indexed by the SVG element's name.
Implementation note: Numeric attributes get their own constructors.
This allows us to more efficiently set such attributes programmatically
at the DOM, avoiding unnecessary conversions to `String` and back.
Id : String -> SVGAttribute sStr : String -> String -> SVGAttribute sStyle : String -> String -> SVGAttribute sBool : String -> Bool -> SVGAttribute sLOP : String -> LengthOrPercentage -> SVGAttribute sPerc : String -> Percentage -> SVGAttribute sPth : String -> List PathCmd -> SVGAttribute sPoints : String -> List Double -> SVGAttribute sEmpty : SVGAttribute sdisplayAttributes : List (SVGAttribute s) -> Stringd : List PathCmd -> SVGAttribute "path"r : LengthOrPercentage -> SVGAttribute "circle"x1 : LengthOrPercentage -> SVGAttribute "line"y1 : LengthOrPercentage -> SVGAttribute "line"x2 : LengthOrPercentage -> SVGAttribute "line"y2 : LengthOrPercentage -> SVGAttribute "line"xmlns : String -> SVGAttribute "svg"xmlns_2000 : SVGAttribute "svg"transform : Transform -> SVGAttribute stransforms : List Transform -> SVGAttribute stranslateX : Double -> SVGAttribute stranslateY : Double -> SVGAttribute stranslate : Double -> Double -> SVGAttribute srotate : Double -> SVGAttribute sscaleX : Double -> SVGAttribute sscaleY : Double -> SVGAttribute sscaleXY : Double -> Double -> SVGAttribute sscale : Double -> SVGAttribute sclass : String -> SVGAttribute sclasses : List String -> SVGAttribute scx : {auto 0 _ : HasCX s} -> LengthOrPercentage -> SVGAttribute scy : {auto 0 _ : HasCX s} -> LengthOrPercentage -> SVGAttribute srx : {auto 0 _ : HasRX s} -> LengthOrPercentage -> SVGAttribute sry : {auto 0 _ : HasRY s} -> LengthOrPercentage -> SVGAttribute sx : {auto 0 _ : HasX s} -> LengthOrPercentage -> SVGAttribute sy : {auto 0 _ : HasY s} -> LengthOrPercentage -> SVGAttribute sfill : {auto 0 _ : HasFill s} -> SVGColor -> SVGAttribute sfillOpacity : {auto 0 _ : HasFill s} -> Percentage -> SVGAttribute sstroke : {auto 0 _ : HasStroke s} -> SVGColor -> SVGAttribute sstrokeLinecap : {auto 0 _ : HasStroke s} -> StrokeLinecap -> SVGAttribute sstrokeLinejoin : {auto 0 _ : HasStroke s} -> StrokeLinejoin -> SVGAttribute sstrokeOpacity : {auto 0 _ : HasStroke s} -> Percentage -> SVGAttribute swidth : {auto 0 _ : HasWidth s} -> LengthOrPercentage -> SVGAttribute sheight : {auto 0 _ : HasHeight s} -> LengthOrPercentage -> SVGAttribute sstrokeWidth : {auto 0 _ : HasStroke s} -> LengthOrPercentage -> SVGAttribute sstrokeDasharray : {auto 0 _ : HasStroke s} -> List Double -> SVGAttribute sstrokeDashoffset : {auto 0 _ : HasStroke s} -> Double -> SVGAttribute spoints : {auto 0 _ : HasPoints s} -> List Double -> SVGAttribute sviewBox : {auto 0 _ : HasViewBox s} -> LengthOrPercentage -> LengthOrPercentage -> LengthOrPercentage -> LengthOrPercentage -> SVGAttribute sdominantBaseline : {auto 0 _ : IsText s} -> DominantBaseline -> SVGAttribute stextAnchor : {auto 0 _ : IsText s} -> TextAnchor -> SVGAttribute sfont : {auto 0 _ : IsText s} -> String -> SVGAttribute sfontFamily : {auto 0 _ : IsText s} -> String -> SVGAttribute sfontWeight : {auto 0 _ : IsText s} -> FontWeight -> SVGAttribute slengthAdjust : {auto 0 _ : IsText s} -> LengthAdjust -> SVGAttribute stextLength : {auto 0 _ : IsText s} -> LengthOrPercentage -> SVGAttribute sdx : {auto 0 _ : IsText s} -> LengthOrPercentage -> SVGAttribute sdy : {auto 0 _ : IsText s} -> LengthOrPercentage -> SVGAttribute sfontSize : {auto 0 _ : IsText s} -> LengthOrPercentage -> SVGAttribute s