diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Revision history for input-parsers
 
+## 0.2.3 -- 2021-03-26
+
+* Improved documentation
+* Fixed compilation with GHC 8.2.2
+
 ## 0.2.2 -- 2021-03-26
 
 * Move Data.ByteString and Data.ByteString.Lazy imports outside ifdef (by Gary Coady)
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -23,3 +23,7 @@
 which provides a number of parser methods that are guaranteed to succeed with a single (typically longest possible)
 result. This is most useful for writing the lexical layer of a parser, but it can help avoid ambiguities and
 inefficiencies in general.
+
+Finally, the package provides the class
+[`Position`](http://hackage.haskell.org/package/input-parsers/docs/Text-Parser-Input-Position.html#t:Position) to
+abstract over the position the parser reached in the input stream.
diff --git a/input-parsers.cabal b/input-parsers.cabal
--- a/input-parsers.cabal
+++ b/input-parsers.cabal
@@ -1,6 +1,6 @@
 cabal-version:       >=1.10
 name:                input-parsers
-version:             0.2.2
+version:             0.2.3
 synopsis:            Extension of the parsers library with more capability and efficiency
 description:
                      Extended version of the parsers library, with the additional classes providing more
@@ -13,6 +13,7 @@
 copyright:           (c) 2020 Mario Blažević
 category:            Parsing
 build-type:          Simple
+tested-with:         ghc==9.0.1, GHC==8.10.4, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2
 extra-source-files:  CHANGELOG.md, README.md
 
 flag binary
diff --git a/src/Text/Parser/Deterministic.hs b/src/Text/Parser/Deterministic.hs
--- a/src/Text/Parser/Deterministic.hs
+++ b/src/Text/Parser/Deterministic.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE TypeSynonymInstances #-}
 
--- | Deterministic parsers can be restricted to a single parsing result.
+-- | Deterministic parsers can be restricted to succeed with a single parsing result.
 
 module Text.Parser.Deterministic where
 
@@ -62,7 +62,7 @@
    (<<|>) :: m a -> m a -> m a
    -- | Like 'optional', but never succeeds with @Nothing@ if the argument parser can succeed.
    takeOptional :: m a -> m (Maybe a)
-   -- | Like 'some', but always consuming the longest matching sequence of input.
+   -- | Like 'many', but always consuming the longest matching sequence of input.
    takeMany :: m a -> m [a]
    -- | Like 'some', but always consuming the longest matching sequence of input.
    takeSome :: m a -> m [a]
diff --git a/src/Text/Parser/Input.hs b/src/Text/Parser/Input.hs
--- a/src/Text/Parser/Input.hs
+++ b/src/Text/Parser/Input.hs
@@ -31,7 +31,7 @@
 import Data.Functor ((<$>))
 import qualified Data.List as List
 import Data.Ord (Down)
-import Data.Monoid (Monoid, mappend, mempty)
+import Data.Monoid (Monoid, (<>))
 import Data.String (IsString (fromString))
 import Text.ParserCombinators.ReadP (ReadP)
 import qualified Text.ParserCombinators.ReadP as ReadP
diff --git a/src/Text/Parser/Input/Position.hs b/src/Text/Parser/Input/Position.hs
--- a/src/Text/Parser/Input/Position.hs
+++ b/src/Text/Parser/Input/Position.hs
@@ -6,6 +6,7 @@
 
 import Data.Char (isSpace)
 import Data.String (IsString(fromString))
+import Data.Monoid ((<>))
 import Data.Ord (Down(Down))
 import qualified Data.Monoid.Factorial as Factorial
 import qualified Data.Monoid.Textual as Textual
