diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,8 @@
 
+0.8.1 to 0.8.2:
+
+  * Updated to compile with ghc-8.4. Thanks to Evan Laforge.
+
 0.8.0 to 0.8.1:
 
   * Fixed error with missing CPP directive in ZMidi.Core.Pretty.
diff --git a/src/ZMidi/Core/Internal/ParserMonad.hs b/src/ZMidi/Core/Internal/ParserMonad.hs
--- a/src/ZMidi/Core/Internal/ParserMonad.hs
+++ b/src/ZMidi/Core/Internal/ParserMonad.hs
@@ -336,7 +336,7 @@
                 + (shiftL `flip`  8  $ fromIntegral b) 
                 + fromIntegral c
 
--- | Build a Word16 (big endian).
+-- | Build a Word32 (big endian).
 --
 w32be :: Word8 -> Word8 -> Word8 -> Word8 -> Word32
 w32be a b c d   = (shiftL `flip` 24  $ fromIntegral a) 
diff --git a/src/ZMidi/Core/Internal/SimpleFormat.hs b/src/ZMidi/Core/Internal/SimpleFormat.hs
--- a/src/ZMidi/Core/Internal/SimpleFormat.hs
+++ b/src/ZMidi/Core/Internal/SimpleFormat.hs
@@ -290,6 +290,10 @@
   mempty                                = WString 0 id
   WString w1 f1 `mappend` WString w2 f2 = WString (w1+w2) (f1 . f2)
 
+#if MIN_VERSION_base(4,11,0)
+instance Semigroup WString where
+    (<>) = mappend
+#endif
 
 
 infixr 6 <+>
@@ -358,4 +362,4 @@
 -- | Show an Integral value as a base 10 number.
 --
 integral :: (Show a, Integral a) => a -> WString
-integral = wstring . show 
+integral = wstring . show
diff --git a/zmidi-core.cabal b/zmidi-core.cabal
--- a/zmidi-core.cabal
+++ b/zmidi-core.cabal
@@ -1,5 +1,5 @@
 name:             zmidi-core
-version:          0.8.1
+version:          0.8.2
 license:          BSD3
 license-file:     LICENSE
 copyright:        Stephen Tetley <stephen.tetley@gmail.com>
@@ -13,6 +13,10 @@
   dependencies only on ByteString, Containers and Data.Binary.
   .
   Changelog:
+  .
+  v0.8.1 to v0.8.2:
+  .
+  * Updated to compile with ghc-8.4. Thanks to Evan Laforge.
   .
   v0.8.0 to v0.8.1:
   . 
