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:             3.0.0.5
+version:             3.1.0.0
 synopsis:            mid-level bindings to CasADi
 category:            Numerical, Math
 description:
@@ -33,7 +33,7 @@
 license-file:        LICENSE
 author:              Greg Horn
 maintainer:          gregmainland@gmail.com
-copyright:           (c) Greg Horn 2013-2015
+copyright:           (c) Greg Horn 2013-2016
 build-type:          Simple
 cabal-version:       >=1.10
 
@@ -61,14 +61,15 @@
                        cereal,
                        binary,
                        vector-binary-instances,
-                       casadi-bindings-internal == 0.1.4.0,
-                       casadi-bindings-core     == 3.0.0.0
+                       casadi-bindings-internal == 0.1.5.0,
+                       casadi-bindings-core     == 3.1.0.0
   default-language:    Haskell2010
 
   C-sources:           cbits/casadi_bindings.cpp
-  extra-libraries:     stdc++
-  pkgconfig-depends:   casadi
-  cc-options: -Wall -Wno-sign-compare -std=c++11
+  extra-libraries:     stdc++ casadi
+  cc-options:          -Wall -Wno-sign-compare -std=c++11
+  ghc-prof-options:    -O2
+  ghc-options:         -O2
 
 source-repository head
   type: git
diff --git a/src/Casadi/Function.hs b/src/Casadi/Function.hs
--- a/src/Casadi/Function.hs
+++ b/src/Casadi/Function.hs
@@ -4,7 +4,7 @@
        ( C.Function, AlwaysInline(..), NeverInline(..)
        , mxFunction, mxFunction', sxFunction, sxFunction'
        , callMX, callMX', callSX, callSX', callDM, callDM'
-       , hessian, jacobian, gradient, derivative
+       , hessian, jacobian, gradient
        , externalFunction, externalFunction'
        , generateCode, generateCode'
        ) where
@@ -64,18 +64,15 @@
 gradient :: C.FunctionClass a => a -> Int -> Int -> IO C.Function
 gradient = C.function_gradient__6
 
-derivative :: C.FunctionClass a => a -> Int -> Int -> IO C.Function
-derivative = C.function_derivative__0
-
-generateCode :: C.FunctionClass a => a -> String -> Map String GType -> IO ()
+generateCode :: C.FunctionClass a => a -> String -> Map String GType -> IO String
 generateCode f n opts0 = do
   opts <- T.mapM fromGType opts0 :: IO (Map String GenericType)
   C.function_generate__3 (C.castFunction f) n opts
 
-generateCode' :: C.FunctionClass a => a -> Map String GType -> IO String
-generateCode' f opts0 = do
+generateCode' :: C.FunctionClass a => a -> String -> Map String GType -> IO String
+generateCode' f name opts0 = do
   opts <- T.mapM fromGType opts0 :: IO (Map String GenericType)
-  cg <- C.codeGenerator__1 opts
+  cg <- C.codeGenerator__1 name opts
   C.codeGenerator_add cg (C.castFunction f)
   C.codeGenerator_generate__0 cg
 
diff --git a/src/Casadi/SX.hs b/src/Casadi/SX.hs
--- a/src/Casadi/SX.hs
+++ b/src/Casadi/SX.hs
@@ -129,7 +129,7 @@
   copy m = sx__9 m
   densify x = unsafePerformIO (C.casadi_densify__0 x)
   {-# NOINLINE densify #-}
-  fromDM x = unsafePerformIO (sx__1 x)
+  fromDM x = unsafePerformIO (sx__0 x)
   {-# NOINLINE fromDM #-}
   fromDVector x = fromDM (fromDVector x)
   {-# NOINLINE fromDVector #-}
diff --git a/src/Casadi/Sparsity.hs b/src/Casadi/Sparsity.hs
--- a/src/Casadi/Sparsity.hs
+++ b/src/Casadi/Sparsity.hs
@@ -67,7 +67,7 @@
 {-# NOINLINE get_col #-}
 
 sparse :: Int -> Int -> V.Vector Int -> V.Vector Int -> Sparsity
-sparse nr nc r c = unsafePerformIO (sparsity__0 nr nc r c)
+sparse nr nc r c = unsafePerformIO (sparsity__1 nr nc r c)
 {-# NOINLINE sparse #-}
 
 dense :: Int -> Int -> Sparsity
