diff --git a/midi.cabal b/midi.cabal
--- a/midi.cabal
+++ b/midi.cabal
@@ -1,5 +1,5 @@
 Name:             midi
-Version:          0.2.2.3
+Version:          0.2.2.4
 License:          GPL
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -30,7 +30,7 @@
 Source-Repository this
   type:     darcs
   location: https://hub.darcs.net/thielema/midi/
-  tag:      0.2.2.3
+  tag:      0.2.2.4
 
 Library
   Build-Depends:
@@ -38,7 +38,7 @@
     non-negative >=0.0.1 && <0.2,
     semigroups >=0.1 && <1.0,
     utility-ht >=0.0.10 && <0.1,
-    explicit-exception >=0.1 && <0.2,
+    explicit-exception >=0.1 && <0.3,
     bytestring >=0.9.0.1 && <0.12,
     binary >=0.4.2 && <0.11,
     transformers >=0.2 && <0.7,
diff --git a/parser/Sound/MIDI/Parser/Stream.hs b/parser/Sound/MIDI/Parser/Stream.hs
--- a/parser/Sound/MIDI/Parser/Stream.hs
+++ b/parser/Sound/MIDI/Parser/Stream.hs
@@ -71,11 +71,11 @@
    fmap = liftM
 
 instance Applicative (T str) where
-   pure = return
+   pure = Cons . return
    (<*>) = ap
 
 instance Monad (T str) where
-   return = Cons . return
+   return = pure
    x >>= y = Cons $ decons . y =<< decons x
 
 
diff --git a/src/Sound/MIDI/Parser/ByteString.hs b/src/Sound/MIDI/Parser/ByteString.hs
--- a/src/Sound/MIDI/Parser/ByteString.hs
+++ b/src/Sound/MIDI/Parser/ByteString.hs
@@ -68,11 +68,11 @@
    fmap = liftM
 
 instance Applicative T where
-   pure = return
+   pure = Cons . return
    (<*>) = ap
 
 instance Monad T where
-   return = Cons . return
+   return = pure
    x >>= y = Cons $ decons . y =<< decons x
 
 
diff --git a/src/Sound/MIDI/Parser/File.hs b/src/Sound/MIDI/Parser/File.hs
--- a/src/Sound/MIDI/Parser/File.hs
+++ b/src/Sound/MIDI/Parser/File.hs
@@ -61,11 +61,11 @@
    fmap = liftM
 
 instance Applicative T where
-   pure = return
+   pure = Cons . return
    (<*>) = ap
 
 instance Monad T where
-   return = Cons . return
+   return = pure
    x >>= y = Cons $ decons . y =<< decons x
 
 fromIO :: (IO.Handle -> IO a) -> T a
diff --git a/src/Sound/MIDI/Writer/Basic.hs b/src/Sound/MIDI/Writer/Basic.hs
--- a/src/Sound/MIDI/Writer/Basic.hs
+++ b/src/Sound/MIDI/Writer/Basic.hs
@@ -51,7 +51,7 @@
 
 instance Monoid ByteList where
    mempty = ByteList mempty
-   mappend = genAppend ByteList unByteList
+   mappend = (<>)
    mconcat = genConcat ByteList unByteList
 
 instance C ByteList where
@@ -81,7 +81,7 @@
 
 instance Monoid ByteString where
    mempty = ByteString $ mempty
-   mappend = genAppend ByteString unByteString
+   mappend = (<>)
    mconcat = genConcat ByteString unByteString
 
 instance C ByteString where
