diff --git a/GI/Cairo/Structs/FontOptions.hs b/GI/Cairo/Structs/FontOptions.hs
--- a/GI/Cairo/Structs/FontOptions.hs
+++ b/GI/Cairo/Structs/FontOptions.hs
@@ -27,6 +27,12 @@
 import GI.Cairo.Callbacks
 
 newtype FontOptions = FontOptions (ForeignPtr FontOptions)
+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?
+instance WrappedPtr FontOptions where
+    wrappedPtrCalloc = return nullPtr
+    wrappedPtrCopy = return
+    wrappedPtrFree = Nothing
+
 noFontOptions :: Maybe FontOptions
 noFontOptions = Nothing
 
diff --git a/GI/Cairo/Structs/FontOptions.hs-boot b/GI/Cairo/Structs/FontOptions.hs-boot
--- a/GI/Cairo/Structs/FontOptions.hs-boot
+++ b/GI/Cairo/Structs/FontOptions.hs-boot
@@ -8,3 +8,4 @@
 import qualified Data.Map as Map
 
 newtype FontOptions = FontOptions (ForeignPtr FontOptions)
+instance WrappedPtr FontOptions where
diff --git a/GI/Cairo/Structs/FontType.hs b/GI/Cairo/Structs/FontType.hs
--- a/GI/Cairo/Structs/FontType.hs
+++ b/GI/Cairo/Structs/FontType.hs
@@ -27,6 +27,12 @@
 import GI.Cairo.Callbacks
 
 newtype FontType = FontType (ForeignPtr FontType)
+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?
+instance WrappedPtr FontType where
+    wrappedPtrCalloc = return nullPtr
+    wrappedPtrCopy = return
+    wrappedPtrFree = Nothing
+
 noFontType :: Maybe FontType
 noFontType = Nothing
 
diff --git a/GI/Cairo/Structs/FontType.hs-boot b/GI/Cairo/Structs/FontType.hs-boot
--- a/GI/Cairo/Structs/FontType.hs-boot
+++ b/GI/Cairo/Structs/FontType.hs-boot
@@ -8,3 +8,4 @@
 import qualified Data.Map as Map
 
 newtype FontType = FontType (ForeignPtr FontType)
+instance WrappedPtr FontType where
diff --git a/GI/Cairo/Structs/Matrix.hs b/GI/Cairo/Structs/Matrix.hs
--- a/GI/Cairo/Structs/Matrix.hs
+++ b/GI/Cairo/Structs/Matrix.hs
@@ -27,6 +27,12 @@
 import GI.Cairo.Callbacks
 
 newtype Matrix = Matrix (ForeignPtr Matrix)
+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?
+instance WrappedPtr Matrix where
+    wrappedPtrCalloc = return nullPtr
+    wrappedPtrCopy = return
+    wrappedPtrFree = Nothing
+
 noMatrix :: Maybe Matrix
 noMatrix = Nothing
 
diff --git a/GI/Cairo/Structs/Matrix.hs-boot b/GI/Cairo/Structs/Matrix.hs-boot
--- a/GI/Cairo/Structs/Matrix.hs-boot
+++ b/GI/Cairo/Structs/Matrix.hs-boot
@@ -8,3 +8,4 @@
 import qualified Data.Map as Map
 
 newtype Matrix = Matrix (ForeignPtr Matrix)
+instance WrappedPtr Matrix where
diff --git a/GI/Cairo/Structs/Path.hs b/GI/Cairo/Structs/Path.hs
--- a/GI/Cairo/Structs/Path.hs
+++ b/GI/Cairo/Structs/Path.hs
@@ -27,6 +27,12 @@
 import GI.Cairo.Callbacks
 
 newtype Path = Path (ForeignPtr Path)
+-- XXX Wrapping a foreign struct/union with no known destructor or size, leak?
+instance WrappedPtr Path where
+    wrappedPtrCalloc = return nullPtr
+    wrappedPtrCopy = return
+    wrappedPtrFree = Nothing
+
 noPath :: Maybe Path
 noPath = Nothing
 
diff --git a/GI/Cairo/Structs/Path.hs-boot b/GI/Cairo/Structs/Path.hs-boot
--- a/GI/Cairo/Structs/Path.hs-boot
+++ b/GI/Cairo/Structs/Path.hs-boot
@@ -8,3 +8,4 @@
 import qualified Data.Map as Map
 
 newtype Path = Path (ForeignPtr Path)
+instance WrappedPtr Path where
diff --git a/gi-cairo.cabal b/gi-cairo.cabal
--- a/gi-cairo.cabal
+++ b/gi-cairo.cabal
@@ -1,6 +1,6 @@
 -- Autogenerated, do not edit.
 name:               gi-cairo
-version:            0.1.14.14
+version:            0.1.14.15
 synopsis:           cairo bindings
 description:        Bindings for cairo, autogenerated by haskell-gi.
 homepage:           https://github.com/haskell-gi/haskell-gi
@@ -36,7 +36,7 @@
                         GI.Cairo.Structs.Surface
     pkgconfig-depends:  cairo-gobject >= 1.14
     build-depends: base >= 4.7 && <5,
-        haskell-gi-base >= 0.14 && < 1,
+        haskell-gi-base >= 0.15 && < 1,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
