diff --git a/FontyFruity.cabal b/FontyFruity.cabal
--- a/FontyFruity.cabal
+++ b/FontyFruity.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                FontyFruity
-version:             0.4
+version:             0.4.1
 synopsis:            A true type file format loader
 description:         
     A haskell Truetype file parser.
@@ -28,7 +28,7 @@
 Source-Repository this
     Type:      git
     Location:  https://github.com/Twinside/FontyFruity.git
-    Tag:       v0.4
+    Tag:       v0.4.1
 
 library
   exposed-modules: Graphics.Text.TrueType
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,35 +1,38 @@
 -*-change-log-*-
 
+v0.4.1 January 2015
+ * Fixing: Warnings under GHC 7.1O
+
 v0.4
- * Adding function to get back unplaced glyph.
- * Adding Binary instance for Font cache.
- * Fixing font cache.
+ * Adding: function to get back unplaced glyph.
+ * Adding: Binary instance for Font cache.
+ * Fixing: font cache.
 
 v0.3 June 2014
- * Adding a font finding function
- * Adding a font cache type to speed-up frequent font
+ * Adding: a font finding function
+ * Adding: a font cache type to speed-up frequent font
    finding.
 
 v0.2.1 April 2014
- * Fixing some character map loading problem (again)
- * Fixing font loading with out of order tables
+ * Fixing: some character map loading problem (again)
+ * Fixing: font loading with out of order tables
 
 v0.2 March 2014
- * Fixing character map loading when identical table
+ * Fixing: character map loading when identical table
    offset are used.
- * Adding bounding box extraction for test snippet.
+ * Adding: bounding box extraction for test snippet.
 
 v0.1.0.4 February 2014
- * Fixing hackage's haddock generation
+ * Fixing: hackage's haddock generation
 
 v0.1.0.3 February 2014
  * Dropping base upper bound.
 
 v0.1.0.2 February 2014
- * Fixing compilation with old version of binary.
+ * Fixing: compilation with old version of binary.
 
 v0.1.0.1 February 2014
- * Fixing some missing information in the cabal file.
+ * Fixing: some missing information in the cabal file.
 
 v0.1 February 2014
  * Initial version.
diff --git a/src/Graphics/Text/TrueType.hs b/src/Graphics/Text/TrueType.hs
--- a/src/Graphics/Text/TrueType.hs
+++ b/src/Graphics/Text/TrueType.hs
@@ -32,13 +32,16 @@
     , CompositeScaling ( .. )
     ) where
 
+#if !MIN_VERSION_base(4,8,0)
+import Data.Monoid( mempty )
+#endif
+
 import Control.Applicative( (<$>) )
 import Control.Monad( foldM, forM )
 import Data.Function( on )
 import Data.Int ( Int16 )
 import Data.List( sortBy, mapAccumL, foldl' )
 import Data.Word( Word16 )
-import Data.Monoid( mempty )
 import Data.Binary( Binary( .. ) )
 import Data.Binary.Get( Get
                       , bytesRead
@@ -344,7 +347,7 @@
 getGlyphIndexCurvesAtPointSizeAndPos Font { _fontGlyph = Nothing } _ _ _ _ = []
 getGlyphIndexCurvesAtPointSizeAndPos
     Font { _fontHeader = Just hdr, _fontGlyph = Just allGlyphs }
-        dpi maximumSize (pointSize, topGlyph) (baseX, baseY) = glyphReverse <$> glyphExtract topGlyph
+        dpi _maximumSize (pointSize, topGlyph) (baseX, baseY) = glyphReverse <$> glyphExtract topGlyph
   where
     go index | index >= V.length allGlyphs = []
              | otherwise = glyphExtract $ allGlyphs V.! index
@@ -352,7 +355,6 @@
     pixelSize = fromIntegral (pointSize * dpi) / 72
     emSize = fromIntegral $ _fUnitsPerEm hdr
 
-    maxiF = toPixelCoordinate (0 :: Int) maximumSize
     baseYF = toPixelCoordinate (0 :: Int) baseY
 
     glyphReverse = VU.map (\(x,y) -> (x, baseYF - y))
diff --git a/src/Graphics/Text/TrueType/Bytecode.hs b/src/Graphics/Text/TrueType/Bytecode.hs
--- a/src/Graphics/Text/TrueType/Bytecode.hs
+++ b/src/Graphics/Text/TrueType/Bytecode.hs
@@ -1,12 +1,15 @@
 {-# LANGUAGE CPP #-}
 module Graphics.Text.TrueType.Bytecode where
 
+#if !MIN_VERSION_base(4,8,0)
+import Data.Monoid( mempty )
+#endif
+
 import Prelude hiding ( EQ, GT, LT )
 import Control.Applicative( (<$>) )
 {-import Control.Monad.State.Strict( modify )-}
 import Data.Bits( (.&.), testBit )
 import Data.Binary.Get( Get, getWord8, getWord16be )
-import Data.Monoid( mempty )
 import Data.Int( Int32 )
 import qualified Data.Map as M
 import Data.Word( Word8, Word16 )
diff --git a/src/Graphics/Text/TrueType/CharacterMap.hs b/src/Graphics/Text/TrueType/CharacterMap.hs
--- a/src/Graphics/Text/TrueType/CharacterMap.hs
+++ b/src/Graphics/Text/TrueType/CharacterMap.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE CPP #-}
 module Graphics.Text.TrueType.CharacterMap
     ( TtfEncoding( .. )
     , CharacterMaps
@@ -6,7 +7,12 @@
     , findCharGlyph
     ) where
 
-import Control.Applicative( (<$>), (<*>) )
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative( (<*>) )
+#endif
+
+import Control.Applicative( (<$>) )
+
 import Control.DeepSeq( NFData( .. ) )
 import Control.Monad( replicateM,  when, foldM  )
 import Data.Binary( Binary( .. ) )
diff --git a/src/Graphics/Text/TrueType/FontFolders.hs b/src/Graphics/Text/TrueType/FontFolders.hs
--- a/src/Graphics/Text/TrueType/FontFolders.hs
+++ b/src/Graphics/Text/TrueType/FontFolders.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP #-}
 module Graphics.Text.TrueType.FontFolders
     ( loadUnixFontFolderList
     , loadWindowsFontFolderList
@@ -11,10 +12,13 @@
     , enumerateFonts
     ) where
 
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative( (<*>) )
+#endif
+
+import Control.Applicative( (<$>) )
+
 import Control.Monad( when, replicateM )
-import Control.Applicative( (<$>), (<*>) )
-{-import Control.DeepSeq( ($!!) )-}
-{-import Data.Monoid( (<>) )-}
 import System.Directory( getDirectoryContents
                        , getHomeDirectory
                        , doesDirectoryExist
diff --git a/src/Graphics/Text/TrueType/Glyph.hs b/src/Graphics/Text/TrueType/Glyph.hs
--- a/src/Graphics/Text/TrueType/Glyph.hs
+++ b/src/Graphics/Text/TrueType/Glyph.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE TupleSections #-}
+{-# LANGUAGE CPP #-}
 module Graphics.Text.TrueType.Glyph
     ( GlyphHeader( .. )
     , GlyphContour( .. )
@@ -11,12 +12,17 @@
     , emptyGlyph
     ) where
 
+#if !MIN_VERSION_base(4,8,0)
+import Data.Monoid( mempty )
+import Control.Applicative( (<*>) )
+#endif
+
+import Control.Applicative( (<$>) )
+
 import Control.DeepSeq
-import Control.Applicative( (<$>), (<*>) )
 import Data.Bits( setBit, testBit, shiftL )
 import Data.Int( Int16 )
 import Data.List( mapAccumL, mapAccumR, zip4 )
-import Data.Monoid( mempty )
 import Data.Word( Word8, Word16 )
 import Data.Binary( Binary( .. ) )
 import Data.Binary.Get( Get
diff --git a/src/Graphics/Text/TrueType/Header.hs b/src/Graphics/Text/TrueType/Header.hs
--- a/src/Graphics/Text/TrueType/Header.hs
+++ b/src/Graphics/Text/TrueType/Header.hs
@@ -1,10 +1,16 @@
+{-# LANGUAGE CPP #-}
 module Graphics.Text.TrueType.Header
     ( FontHeader( .. )
     , FontStyle( .. )
     , HeaderFlags( .. )
     ) where
 
-import Control.Applicative( (<$>), (<*>) )
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative( (<*>) )
+#endif
+
+import Control.Applicative( (<$>) )
+
 import Control.DeepSeq( NFData( .. ) )
 import Data.Bits( (.|.), setBit, testBit )
 import Data.Binary( Binary( .. ) )
diff --git a/src/Graphics/Text/TrueType/HorizontalInfo.hs b/src/Graphics/Text/TrueType/HorizontalInfo.hs
--- a/src/Graphics/Text/TrueType/HorizontalInfo.hs
+++ b/src/Graphics/Text/TrueType/HorizontalInfo.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Graphics.Text.TrueType.HorizontalInfo
     ( HorizontalHeader( .. )
     , HorizontalMetricsTable( .. )
@@ -5,7 +6,12 @@
     , getHorizontalMetrics
     ) where
 
-import Control.Applicative( (<$>), (<*>) )
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative( (<*>) )
+#endif
+
+import Control.Applicative( (<$>) )
+
 import Control.DeepSeq( NFData( .. ) )
 import Control.Monad( when, replicateM_ )
 import Data.Word( Word16 )
diff --git a/src/Graphics/Text/TrueType/MaxpTable.hs b/src/Graphics/Text/TrueType/MaxpTable.hs
--- a/src/Graphics/Text/TrueType/MaxpTable.hs
+++ b/src/Graphics/Text/TrueType/MaxpTable.hs
@@ -1,6 +1,12 @@
+{-# LANGUAGE CPP #-}
 module Graphics.Text.TrueType.MaxpTable( MaxpTable( .. ) ) where
 
-import Control.Applicative( (<$>), (<*>) )
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative( (<*>) )
+#endif
+
+import Control.Applicative( (<$>) )
+
 import Control.DeepSeq( NFData( .. ) )
 import Data.Word( Word16 )
 import Data.Binary( Binary( .. ) )
diff --git a/src/Graphics/Text/TrueType/Name.hs b/src/Graphics/Text/TrueType/Name.hs
--- a/src/Graphics/Text/TrueType/Name.hs
+++ b/src/Graphics/Text/TrueType/Name.hs
@@ -1,17 +1,23 @@
+{-# LANGUAGE CPP #-}
 module Graphics.Text.TrueType.Name
     ( NameTable
     , NameRecords
     , fontFamilyName
     ) where
 
+#if !MIN_VERSION_base(4,8,0)
+import Data.Monoid( mempty )
+import Control.Applicative( (<*>), pure )
+#endif
+
+import Control.Applicative( (<$>) )
+
 import Control.DeepSeq( NFData( .. ) )
-import Control.Applicative( (<$>), (<*>), pure )
 import Control.Monad( when, replicateM )
 import Data.Foldable( asum )
 import Data.Function( on )
 import Data.List( maximumBy )
 import Data.Maybe( fromMaybe )
-import Data.Monoid( mempty )
 import Data.Binary( Binary( .. ) )
 import Data.Binary.Get( getWord16be, getByteString )
 import Data.Binary.Put( putWord16be )
diff --git a/src/Graphics/Text/TrueType/OffsetTable.hs b/src/Graphics/Text/TrueType/OffsetTable.hs
--- a/src/Graphics/Text/TrueType/OffsetTable.hs
+++ b/src/Graphics/Text/TrueType/OffsetTable.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Graphics.Text.TrueType.OffsetTable
     ( OffsetTableHeader( .. )
     , OffsetTable( .. )
@@ -5,7 +6,12 @@
     , filterTable
     ) where
 
-import Control.Applicative( (<$>), (<*>) )
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative( (<*>) )
+#endif
+
+import Control.Applicative( (<$>) )
+
 import Data.Word( Word16, Word32 )
 import Data.Binary( Binary( .. ) )
 import Data.Binary.Get( getWord16be
diff --git a/src/Graphics/Text/TrueType/Types.hs b/src/Graphics/Text/TrueType/Types.hs
--- a/src/Graphics/Text/TrueType/Types.hs
+++ b/src/Graphics/Text/TrueType/Types.hs
@@ -1,11 +1,17 @@
+{-# LANGUAGE CPP #-}
 module Graphics.Text.TrueType.Types
     ( Fixed
     , FWord
     , F26Dot6( .. )
     ) where
 
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative( (<*>) )
+#endif
+
+import Control.Applicative( (<$>) )
+
 import Data.Int( Int32 )
-import Control.Applicative( (<$>), (<*>) )
 import Data.Word( Word16 )
 import Data.Binary( Binary( .. ) )
 import Data.Binary.Get( getWord16be)
