diff --git a/System/Locale/SetLocale.hsc b/System/Locale/SetLocale.hsc
--- a/System/Locale/SetLocale.hsc
+++ b/System/Locale/SetLocale.hsc
@@ -13,9 +13,14 @@
 
 #include <locale.h>
 
-import Data.Typeable
-import Foreign.C
-import Foreign.Ptr
+import Data.Typeable (Typeable)
+import Foreign.C ( peekCString
+                 , CString
+                 , withCString
+                 , CInt(CInt) -- Newtypes are only allowed in foreign
+                 )            -- declarations if their constructor is
+                              -- in scope.
+import Foreign.Ptr (nullPtr)
 
 data Category = LC_ALL
               | LC_COLLATE
@@ -39,7 +44,7 @@
 categoryToCInt LC_NUMERIC = #const LC_NUMERIC
 categoryToCInt LC_TIME = #const LC_TIME
 
-foreign import ccall "locale.h setlocale" c_setlocale :: CInt -> CString -> IO (CString)
+foreign import ccall "locale.h setlocale" c_setlocale :: CInt -> CString -> IO CString
 
 setLocale :: Category -> Maybe String -> IO (Maybe String)
 #ifndef LC_MESSAGES
diff --git a/setlocale.cabal b/setlocale.cabal
--- a/setlocale.cabal
+++ b/setlocale.cabal
@@ -1,6 +1,6 @@
 name:                setlocale
 -- Version numbers of the form a.b.c.d.1 are development versions.
-version:             1.0.0.2
+version:             1.0.0.3
 synopsis:            Haskell bindings to setlocale
 -- description:         
 license:             BSD3
@@ -10,6 +10,8 @@
 copyright:           2014, Sven Bartscher
 category:            System
 build-type:          Simple
+homepage: https://bitbucket.org/IchUndNichtDu/haskell-setlocale
+bug-reports: https://bitbucket.org/IchUndNichtDu/haskell-setlocale/issues
 -- extra-source-files:  
 cabal-version:       >=1.10
 
@@ -17,7 +19,7 @@
   exposed-modules:     System.Locale.SetLocale
   -- other-modules:       
   other-extensions:    DeriveDataTypeable, ForeignFunctionInterface
-  build-depends:       base >=4.6 && <4.8.1
+  build-depends:       base >=4.6 && <4.9
   -- hs-source-dirs:      
   build-tools:         hsc2hs
   default-language:    Haskell2010
