diff --git a/Data/Conduit/Parser/Internal.hs b/Data/Conduit/Parser/Internal.hs
--- a/Data/Conduit/Parser/Internal.hs
+++ b/Data/Conduit/Parser/Internal.hs
@@ -21,6 +21,7 @@
 import qualified Data.Conduit.List         as Conduit
 import           Data.DList                (DList (..), append, cons)
 import           Data.Maybe                (fromMaybe)
+import           Data.Semigroup
 import           Data.Text                 as Text (Text, pack, unpack)
 
 import           Safe
@@ -133,8 +134,10 @@
 backtrack = mapM_ leftover =<< withBuffer resetBuffer
 
 
-newtype Buffer i = Buffer (Maybe (DList i)) deriving(Monoid)
+newtype Buffer i = Buffer (Maybe (DList i))
 
+deriving instance Semigroup (Buffer i)
+deriving instance Monoid (Buffer i)
 deriving instance (Show i) => Show (Buffer i)
 
 instance Functor Buffer where
diff --git a/conduit-parse.cabal b/conduit-parse.cabal
--- a/conduit-parse.cabal
+++ b/conduit-parse.cabal
@@ -1,5 +1,5 @@
 name:                conduit-parse
-version:             0.2.0.0
+version:             0.2.1.0
 synopsis:            Parsing framework based on conduit.
 description:         Please refer to README.
 homepage:            https://github.com/k0ral/conduit-parse
