diff --git a/ChangeLog.md b/ChangeLog.md
new file mode 100644
--- /dev/null
+++ b/ChangeLog.md
@@ -0,0 +1,4 @@
+# Jan 12, 2016
+Release 0.5.1
+
+* Compile with ghc-7.10
diff --git a/Ipopt/PP.hs b/Ipopt/PP.hs
--- a/Ipopt/PP.hs
+++ b/Ipopt/PP.hs
@@ -6,7 +6,8 @@
 import Ipopt.Raw
 import Ipopt.NLP
 import Ipopt.AnyRF
-import Text.PrettyPrint.ANSI.Leijen hiding ((<>))
+import Text.PrettyPrint.ANSI.Leijen hiding ((<>), (<$>))
+import qualified Text.PrettyPrint.ANSI.Leijen as PP
 
 import Text.Printf
 import qualified Data.IntMap as IM
@@ -42,14 +43,14 @@
                                 toList (f (s^.x&VG.convert)) `zip` [1 .. ] of
         [_] -> return ()
         [] -> return ()
-        xs -> for_ xs $ \(x,i) -> tell $ "obj" <> int i <> colon <$> double x
+        xs -> for_ xs $ \(x,i) -> tell $ "obj" <> int i <> colon PP.<$> double x
 
     for_ (st ^. variablesInv . from ixMap . to IM.toList) $ \(k,desc) -> do
         br
         tell $ string desc <> "(" <> int k <> ")" <> "=" <>
             string (printf "%.3g" (s ^?! x . ix k))
     br
-    tell $ "g" <$> foldMap (\e -> mempty <$$> double e) (s ^. g & VG.convert :: V.Vector Double)
+    tell $ "g" PP.<$> foldMap (\e -> mempty <$$> double e) (s ^. g & VG.convert :: V.Vector Double)
 
     return s
 
diff --git a/ipopt-hs.cabal b/ipopt-hs.cabal
--- a/ipopt-hs.cabal
+++ b/ipopt-hs.cabal
@@ -1,5 +1,5 @@
 name:                ipopt-hs
-version:             0.5.0.0
+version:             0.5.1.0
 synopsis:            haskell binding to ipopt and nlopt including automatic differentiation
 description:  a haskell binding to the nonlinear programming solver
               <http://projects.coin-or.org/Ipopt Ipopt>. Bindings to
@@ -38,6 +38,8 @@
 category:            Optimisation, Math, Numeric
 build-type:          Simple
 cabal-version:       >=1.10
+extra-source-files:  ChangeLog.md
+tested-with:      GHC == 7.10.2
 
 flag build_examples
   description: build executable from examples/
