diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,16 @@
 The format is based on [Keep a Changelog](http://keepachangelog.com/)
 and this project adheres to [Semantic Versioning](http://semver.org/).
 
+## [0.3.4] - 2017-10-04
+
+### Fixed
+- Support for Protolude 0.2.* ((<>) is exported from Monoid, not Semigroup)
+
+## [0.3.3] - 2017-10-04
+
+### Fixed
+- Remove (broken) support for megaparsec 6.*
+
 ## [0.3.2] - 2017-10-02
 
 ### Fixed
diff --git a/src/Yarn/Lock.hs b/src/Yarn/Lock.hs
--- a/src/Yarn/Lock.hs
+++ b/src/Yarn/Lock.hs
@@ -18,7 +18,8 @@
 , LockfileError(..), PackageErrorInfo(..)
 ) where
 
-import Protolude
+import Protolude hiding ((<>))
+import Data.Semigroup ((<>))
 import qualified Data.Text as T
 import qualified Data.List.NonEmpty as NE
 import qualified Text.Megaparsec as MP
diff --git a/yarn-lock.cabal b/yarn-lock.cabal
--- a/yarn-lock.cabal
+++ b/yarn-lock.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           yarn-lock
-version:        0.3.3
+version:        0.3.4
 synopsis:       Represent and parse yarn.lock files
 description:    Types and parser for the lock file format of the npm successor yarn. All modules should be imported qualified.
 category:       Data
@@ -32,7 +32,7 @@
     , containers
     , text
     , megaparsec == 5.*
-    , protolude >= 0.1
+    , protolude == 0.1.* || == 0.2.*
     , either == 4.*
   exposed-modules:
       Data.MultiKeyedMap
@@ -56,7 +56,7 @@
     , containers
     , text
     , megaparsec == 5.*
-    , protolude >= 0.1
+    , protolude == 0.1.* || == 0.2.*
     , either == 4.*
     , yarn-lock
     , ansi-wl-pprint >= 0.6
