diff --git a/casadi-bindings.cabal b/casadi-bindings.cabal
--- a/casadi-bindings.cabal
+++ b/casadi-bindings.cabal
@@ -1,5 +1,5 @@
 name:                casadi-bindings
-version:             2.4.1.3
+version:             2.4.1.4
 synopsis:            mid-level bindings to CasADi
 category:            Numerical, Math
 description:
diff --git a/src/Casadi/CMatrix.hs b/src/Casadi/CMatrix.hs
--- a/src/Casadi/CMatrix.hs
+++ b/src/Casadi/CMatrix.hs
@@ -16,6 +16,7 @@
 import Casadi.Slice ( Slice, slice )
 import Casadi.Viewable ( Viewable )
 
+-- TODO(greg): alphabetize this, it's getting too big to manage
 class (Eq a, Show a, Floating a, Fmod a, ArcTan2 a, SymOrd a, Erf a, Viewable a)
       => CMatrix a where
   blocksplit :: a -> V.Vector Int -> V.Vector Int -> V.Vector (V.Vector a)
@@ -57,6 +58,7 @@
   fromDVector :: V.Vector Double -> a
   fromDouble :: Double -> a
   allocEmpty :: IO a
+  reshape :: a -> (Int, Int) -> a
 {-# DEPRECATED solve' "use the new solve, this one is going away" #-}
 
 
diff --git a/src/Casadi/DMatrix.hs b/src/Casadi/DMatrix.hs
--- a/src/Casadi/DMatrix.hs
+++ b/src/Casadi/DMatrix.hs
@@ -146,6 +146,8 @@
   fromDouble x = unsafePerformIO (dmatrix__3 x)
   {-# NOINLINE fromDouble #-}
   allocEmpty = dmatrix__8
+  reshape x s = unsafePerformIO (C.casadi_reshape__4 x s)
+  {-# NOINLINE reshape #-}
 
 
 instance Num DMatrix where
diff --git a/src/Casadi/MX.hs b/src/Casadi/MX.hs
--- a/src/Casadi/MX.hs
+++ b/src/Casadi/MX.hs
@@ -147,6 +147,8 @@
   fromDouble x = unsafePerformIO (mx__3 x)
   {-# NOINLINE fromDouble #-}
   allocEmpty = mx__7
+  reshape x s = unsafePerformIO (C.casadi_reshape__10 x s)
+  {-# NOINLINE reshape #-}
 
 
 instance Num MX where
diff --git a/src/Casadi/SX.hs b/src/Casadi/SX.hs
--- a/src/Casadi/SX.hs
+++ b/src/Casadi/SX.hs
@@ -142,6 +142,8 @@
   fromDouble x = unsafePerformIO (sx__5 x)
   {-# NOINLINE fromDouble #-}
   allocEmpty = sx__10
+  reshape x s = unsafePerformIO (C.casadi_reshape__1 x s)
+  {-# NOINLINE reshape #-}
 
 
 instance Num SX where
