diff --git a/hgeometry-ipe.cabal b/hgeometry-ipe.cabal
--- a/hgeometry-ipe.cabal
+++ b/hgeometry-ipe.cabal
@@ -1,5 +1,5 @@
 name:                hgeometry-ipe
-version:             0.9.0.0
+version:             0.10.0.0
 synopsis:            Reading and Writing ipe7 files.
 description:
    Reading and Writing ipe7 files and converting them to and from HGeometry types.
@@ -133,8 +133,6 @@
                     , DeriveFoldable
                     , DeriveTraversable
                     , DeriveGeneric
-                    , AutoDeriveTypeable
-
 
                     , FlexibleInstances
                     , FlexibleContexts
diff --git a/src/Data/Geometry/Ipe/FromIpe.hs b/src/Data/Geometry/Ipe/FromIpe.hs
--- a/src/Data/Geometry/Ipe/FromIpe.hs
+++ b/src/Data/Geometry/Ipe/FromIpe.hs
@@ -33,7 +33,7 @@
 -- let testPath :: Path Int
 --     testPath = Path . fromSingleton  . PolyLineSegment
 --              . PolyLine.fromPoints . map ext
---              $ [ origin, point2 10 10, point2 200 100 ]
+--              $ [ origin, Point2 10 10, Point2 200 100 ]
 --     testPathAttrs :: IpeAttributes Path Int
 --     testPathAttrs = attr SStroke (IpeColor "red")
 --     testObject :: IpeObject Int
diff --git a/src/Data/Geometry/Ipe/IpeOut.hs b/src/Data/Geometry/Ipe/IpeOut.hs
--- a/src/Data/Geometry/Ipe/IpeOut.hs
+++ b/src/Data/Geometry/Ipe/IpeOut.hs
@@ -159,6 +159,10 @@
   type DefaultIpeOut (Disk p r) = Path
   defIO = ipeDisk
 
+instance Num r => HasDefaultIpeOut (Rectangle p r) where
+  type DefaultIpeOut (Rectangle p r) = Path
+  defIO = ipeRectangle
+
 --------------------------------------------------------------------------------
 -- * Point Converters
 
@@ -200,6 +204,12 @@
                (SimplePolygon _)  -> pg^.re _asSimplePolygon :+ mempty
                (MultiPolygon _ _) -> pg^.re _asMultiPolygon  :+ mempty
 
+
+-- | Draw a Rectangle
+ipeRectangle   :: Num r => IpeOut (Rectangle p r) Path r
+ipeRectangle r = ipePolygon $ fromPoints [tl,tr,br,bl]
+  where
+    (tl, tr, br, bl) = corners r
 
 --------------------------------------------------------------------------------
 -- * Group Converters
diff --git a/src/Data/Geometry/Ipe/PathParser.hs b/src/Data/Geometry/Ipe/PathParser.hs
--- a/src/Data/Geometry/Ipe/PathParser.hs
+++ b/src/Data/Geometry/Ipe/PathParser.hs
@@ -129,7 +129,7 @@
 
 
 pPoint :: Coordinate r => Parser (Point 2 r)
-pPoint = point2 <$> pCoordinate <* pWhiteSpace <*> pCoordinate
+pPoint = Point2 <$> pCoordinate <* pWhiteSpace <*> pCoordinate
 
 
 pCoordinate :: Coordinate r => Parser r
diff --git a/src/Data/Geometry/Ipe/Writer.hs b/src/Data/Geometry/Ipe/Writer.hs
--- a/src/Data/Geometry/Ipe/Writer.hs
+++ b/src/Data/Geometry/Ipe/Writer.hs
@@ -453,7 +453,7 @@
 
 
 -- testPoly :: PolyLine 2 () Double
--- testPoly = fromPoints' [origin, point2 0 10, point2 10 10, point2 100 100]
+-- testPoly = fromPoints' [origin, Point2 0 10, Point2 10 10, Point2 100 100]
 
 
 
diff --git a/test/Data/Geometry/Ipe/ReaderSpec.hs b/test/Data/Geometry/Ipe/ReaderSpec.hs
--- a/test/Data/Geometry/Ipe/ReaderSpec.hs
+++ b/test/Data/Geometry/Ipe/ReaderSpec.hs
@@ -40,7 +40,7 @@
 
   where
     useTxt = "<use name=\"mark/disk(sx)\" pos=\"320 736\" size=\"normal\" stroke=\"black\"/>"
-    useSym = Symbol (point2 320 736) "mark/disk(sx)"
+    useSym = Symbol (Point2 320 736) "mark/disk(sx)"
 --     symAttrs =
 
     translatedUse = "<use matrix=\"1 0 0 1 4.44908 -4.21815\" name=\"mark/disk(sx)\" pos=\"320 736\" size=\"normal\" stroke=\"black\"/>"
@@ -48,8 +48,8 @@
 
 
 
-    ops = [ MoveTo $ point2 128 (656 :: Double)
-          , LineTo $ point2 224 768
-          , LineTo $ point2 304 624
-          , LineTo $ point2 432 752
+    ops = [ MoveTo $ Point2 128 (656 :: Double)
+          , LineTo $ Point2 224 768
+          , LineTo $ Point2 304 624
+          , LineTo $ Point2 432 752
           ]
