diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,13 +1,14 @@
-# binary package #
+# binary package
 
 [![Hackage version](https://img.shields.io/hackage/v/binary.svg?label=Hackage)](https://hackage.haskell.org/package/binary) [![Stackage version](https://www.stackage.org/package/binary/badge/lts?label=Stackage)](https://www.stackage.org/package/binary) [![Build Status](https://api.travis-ci.org/kolmodin/binary.png?branch=master)](http://travis-ci.org/kolmodin/binary)
 
-*Efficient, pure binary serialisation using lazy ByteStrings.*
+*Pure binary serialisation using lazy ByteStrings.*
 
 The ``binary`` package provides Data.Binary, containing the Binary class,
 and associated methods, for serialising values to and from lazy
 ByteStrings. 
-A key feature of ``binary`` is that the interface is both pure, and efficient.
+A key feature of ``binary`` is that the interface is both pure, and 
+moderately efficient.
 The ``binary`` package is portable to GHC and Hugs.
 
 ## Installing binary from Hackage ##
diff --git a/binary.cabal b/binary.cabal
--- a/binary.cabal
+++ b/binary.cabal
@@ -9,7 +9,7 @@
 --   sed -i 's/\(binary\),/\1-cabal-is-broken,/' binary.cabal
 
 name:            binary
-version:         0.8.9.1
+version:         0.8.9.2
 license:         BSD-3-Clause
 license-file:    LICENSE
 author:          Lennart Kolmodin <kolmodin@gmail.com>
@@ -27,13 +27,14 @@
 category:        Data, Parsing
 stability:       provisional
 build-type:      Simple
-tested-with:     GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC ==8.2.2, GHC == 8.4.4, GHC == 8.6.5
+tested-with:     GHC == 8.0.2, GHC ==8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.6, GHC == 9.4.4, GHC == 9.6.3, GHC == 9.8.1
 extra-source-files:
-  README.md changelog.md docs/hcar/binary-Lb.tex tools/derive/*.hs
-
+  tools/derive/*.hs
 -- from the benchmark 'bench'
 extra-source-files:
   benchmarks/CBenchmark.h
+extra-doc-files:
+  README.md changelog.md docs/hcar/binary-Lb.tex
 
 source-repository head
   type: git
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,6 +1,13 @@
 binary
 ======
 
+binary-0.8.9.2
+--------------
+
+- Documentation improvements
+- Ensure that `many` has an unfolding
+- Import `Data.List` as qualified
+
 binary-0.8.9.1
 --------------
 
diff --git a/src/Data/Binary/Class.hs b/src/Data/Binary/Class.hs
--- a/src/Data/Binary/Class.hs
+++ b/src/Data/Binary/Class.hs
@@ -47,6 +47,9 @@
 
     ) where
 
+import Prelude hiding (Foldable(..))
+import Data.Foldable (Foldable(..))
+
 import Data.Word
 import Data.Bits
 import Data.Int
@@ -79,7 +82,7 @@
 import qualified Data.ByteString.Lazy as L
 import qualified Data.ByteString.Builder.Prim as Prim
 
-import Data.List    (unfoldr, foldl')
+import Data.List    (unfoldr)
 
 -- And needed for the instances:
 #if MIN_VERSION_base(4,10,0)
@@ -683,6 +686,7 @@
 ------------------------------------------------------------------------
 -- Floating point
 
+-- | Uses non-IEEE754 encoding. Does not round-trip NaN.
 instance Binary Double where
     put d = put (decodeFloat d)
     get   = do
@@ -690,6 +694,7 @@
         y <- get
         return $! encodeFloat x y
 
+-- | Uses non-IEEE754 encoding. Does not round-trip NaN.
 instance Binary Float where
     put f = put (decodeFloat f)
     get   =  do
diff --git a/src/Data/Binary/Get/Internal.hs b/src/Data/Binary/Get/Internal.hs
--- a/src/Data/Binary/Get/Internal.hs
+++ b/src/Data/Binary/Get/Internal.hs
@@ -282,7 +282,7 @@
     case v of
       Nothing -> pure []
       Just x -> (:) x <$> many p
-  {-# INLINE many #-}
+  {-# INLINEABLE many #-} -- many will never inline because it's recursive, so mark it INLINEABLE instead.
 
 -- | Run a decoder and keep track of all the input it consumes.
 -- Once it's finished, return the final decoder (always 'Done' or 'Fail'),
