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.1.0.1
+version:             3.1.0.2
 synopsis:            mid-level bindings to CasADi
 category:            Numerical, Math
 description:
@@ -46,6 +46,7 @@
                        Casadi.DM
                        Casadi.Function
                        Casadi.GenericType
+                       Casadi.Interpolant
                        Casadi.MX
                        Casadi.Overloading
                        Casadi.Slice
diff --git a/src/Casadi/Interpolant.hs b/src/Casadi/Interpolant.hs
new file mode 100644
--- /dev/null
+++ b/src/Casadi/Interpolant.hs
@@ -0,0 +1,20 @@
+{-# OPTIONS_GHC -Wall -fno-cse #-}
+
+module Casadi.Interpolant
+       ( interpolant
+       ) where
+
+import Data.Map ( Map )
+import qualified Data.Traversable as T
+import Data.Vector ( Vector )
+import System.IO.Unsafe ( unsafePerformIO )
+
+import qualified Casadi.Core.Tools as C
+
+import Casadi.GenericType ( GenericType, GType, fromGType )
+import Casadi.Function ( Function )
+
+interpolant :: String -> String -> Vector (Vector Double) -> Vector Double -> Map String GType -> Function
+interpolant name solver grid values opts0 = unsafePerformIO $ do
+  opts <- T.mapM fromGType opts0 :: IO (Map String GenericType)
+  C.interpolant__1 name solver grid values opts
