diff --git a/Graphics/UI/SDL/Basic.hs b/Graphics/UI/SDL/Basic.hs
--- a/Graphics/UI/SDL/Basic.hs
+++ b/Graphics/UI/SDL/Basic.hs
@@ -61,9 +61,9 @@
 foreign import ccall "SDL.h SDL_SetMainReady" setMainReady :: IO ()
 foreign import ccall "SDL.h SDL_WasInit" wasInit :: Word32 -> IO Word32
 
-foreign import ccall "SDL.h SDL_AddHintCallback" addHintCallback :: CString -> FunPtr (Ptr () -> CString -> CString -> CString -> IO ()) -> Ptr () -> IO ()
+foreign import ccall "SDL.h SDL_AddHintCallback" addHintCallback :: CString -> HintCallback -> Ptr () -> IO ()
 foreign import ccall "SDL.h SDL_ClearHints" clearHints :: IO ()
-foreign import ccall "SDL.h SDL_DelHintCallback" delHintCallback :: CString -> FunPtr (Ptr () -> CString -> CString -> CString -> IO ()) -> Ptr () -> IO ()
+foreign import ccall "SDL.h SDL_DelHintCallback" delHintCallback :: CString -> HintCallback -> Ptr () -> IO ()
 foreign import ccall "SDL.h SDL_GetHint" getHint :: CString -> IO CString
 foreign import ccall "SDL.h SDL_SetHint" setHint :: CString -> CString -> IO Bool
 foreign import ccall "SDL.h SDL_SetHintWithPriority" setHintWithPriority :: CString -> CString -> HintPriority -> IO Bool
@@ -80,4 +80,4 @@
 
 foreign import ccall "SDL.h SDL_GetRevision" getRevision :: IO CString
 foreign import ccall "SDL.h SDL_GetRevisionNumber" getRevisionNumber :: IO CInt
-foreign import ccall "SDL.h SDL_GetVersion" getVersion :: Ptr () -> IO ()
+foreign import ccall "SDL.h SDL_GetVersion" getVersion :: Ptr Version -> IO ()
diff --git a/Graphics/UI/SDL/Types.hsc b/Graphics/UI/SDL/Types.hsc
--- a/Graphics/UI/SDL/Types.hsc
+++ b/Graphics/UI/SDL/Types.hsc
@@ -10,6 +10,7 @@
 	GestureID,
 	GLContext,
 	Haptic,
+	HintCallback,
 	Joystick,
 	JoystickID,
 	Keycode,
@@ -44,7 +45,8 @@
 	Rect(..),
 	RendererInfo(..),
 	RWops(..),
-	Surface(..)
+	Surface(..),
+	Version(..)
 ) where
 
 #include "SDL.h"
@@ -68,6 +70,7 @@
 type GestureID = Int64
 type GLContext = Ptr ()
 type Haptic = Ptr ()
+type HintCallback = FunPtr (Ptr () -> CString -> CString -> CString -> IO ())
 type Joystick = Ptr ()
 type JoystickID = Int32
 type Keycode = Int32
@@ -1301,3 +1304,22 @@
 		(#poke SDL_Surface, userdata) ptr userdata
 		(#poke SDL_Surface, clip_rect) ptr cliprect
 		(#poke SDL_Surface, refcount) ptr refcount
+
+data Version = Version {
+               versionMajor :: Word8
+             , versionMinor :: Word8
+             , versionPatch :: Word8
+             } deriving (Eq, Show)
+
+instance Storable Version where
+	sizeOf _ = (#size SDL_version)
+	alignment = sizeOf
+	peek ptr = do
+		major <- (#peek SDL_version, major) ptr
+		minor <- (#peek SDL_version, minor) ptr
+		patch <- (#peek SDL_version, patch) ptr
+		return $! Version major minor patch
+	poke ptr (Version major minor patch) = do
+		(#poke SDL_version, major) ptr major
+		(#poke SDL_version, minor) ptr minor
+		(#poke SDL_version, patch) ptr patch
diff --git a/sdl2.cabal b/sdl2.cabal
--- a/sdl2.cabal
+++ b/sdl2.cabal
@@ -1,5 +1,5 @@
 name:                sdl2
-version:             1.0.0
+version:             1.0.1
 synopsis:            Bindings to SDL2
 description:         Bindings to the SDL2 library, version 2.0.1.
 license:             BSD3
