diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,15 @@
+0.3.6 (25 January 2016)
+-----------------------
+
+* Change to types of `a`, `aa`, and `ar`, to correct a semantic bug
+  (see https://github.com/deepakjois/blaze-svg/pull/19).  Technically
+  this should require a major version bump, but since this only changes
+  the types of new functions just introduced in 0.3.5, which no one is
+  likely to be depending on yet, I judge it more prudent to avoid the
+  trouble of forcing lots of upper bound bumps.  As always, if this
+  causes problems for you, just yell, and we can deprecate this
+  version and do a proper 0.4 release.
+
 0.3.5 (4 January 2016)
 ----------------------
 
diff --git a/blaze-svg.cabal b/blaze-svg.cabal
--- a/blaze-svg.cabal
+++ b/blaze-svg.cabal
@@ -1,5 +1,5 @@
 name:                blaze-svg
-version:             0.3.5
+version:             0.3.6
 synopsis:            SVG combinator library
 homepage:            https://github.com/deepakjois/blaze-svg
 license:             BSD3
diff --git a/src/Text/Blaze/Svg/Internal.hs b/src/Text/Blaze/Svg/Internal.hs
--- a/src/Text/Blaze/Svg/Internal.hs
+++ b/src/Text/Blaze/Svg/Internal.hs
@@ -194,8 +194,8 @@
   => a -- ^ Radius in the x-direction
   -> a -- ^ Radius in the y-direction
   -> a -- ^ The rotation of the arc's x-axis compared to the normal x-axis
-  -> a -- ^ Draw the smaller or bigger arc satisfying the start point
-  -> a -- ^ To mirror or not
+  -> Bool -- ^ Draw the smaller or bigger arc satisfying the start point
+  -> Bool -- ^ To mirror or not
   -> a -- ^ The x-coordinate of the end point
   -> a -- ^ The y-coordinate of the end point
   -> Path
@@ -209,8 +209,8 @@
   => a -- ^ Radius in the x-direction
   -> a -- ^ Radius in the y-direction
   -> a -- ^ The rotation of the arc's x-axis compared to the normal x-axis
-  -> a -- ^ Draw the smaller or bigger arc satisfying the start point
-  -> a -- ^ To mirror or not
+  -> Bool -- ^ True to draw the larger of the two arcs satisfying constraints.
+  -> Bool -- ^ To mirror or not
   -> a -- ^ The x-coordinate of the end point
   -> a -- ^ The y-coordinate of the end point
   -> Path
@@ -218,7 +218,7 @@
   [ "A "
   , show rx, ",", show ry, " "
   , show xAxisRotation, " "
-  , show largeArcFlag, ",", show sweepFlag, " "
+  , if largeArcFlag then "1" else "0", ",", if sweepFlag then "1" else "0", " "
   , show x, ",", show y, " "
   ]
 
@@ -228,8 +228,8 @@
   => a -- ^ Radius in the x-direction
   -> a -- ^ Radius in the y-direction
   -> a -- ^ The rotation of the arc's x-axis compared to the normal x-axis
-  -> a -- ^ Draw the smaller or bigger arc satisfying the start point
-  -> a -- ^ To mirror or not
+  -> Bool -- ^ True to draw the larger of the two arcs satisfying constraints.
+  -> Bool -- ^ To mirror or not
   -> a -- ^ The x-coordinate of the end point
   -> a -- ^ The y-coordinate of the end point
   -> Path
@@ -237,7 +237,7 @@
   [ "a "
   , show rx, ",", show ry, " "
   , show xAxisRotation, " "
-  , show largeArcFlag, ",", show sweepFlag, " "
+  , if largeArcFlag then "1" else "0", ",", if sweepFlag then "1" else "0", " "
   , show x, ",", show y, " "
   ]
 
