diff --git a/benchmarks/parse.hs b/benchmarks/parse.hs
--- a/benchmarks/parse.hs
+++ b/benchmarks/parse.hs
@@ -1,7 +1,6 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-# OPTIONS_GHC -fno-warn-unused-do-bind #-}
 {-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE StandaloneDeriving #-}
 
 import Control.Exception (evaluate)
 import Criterion.Main
@@ -12,8 +11,7 @@
 import Data.Text         (Text)
 
 main :: IO ()
-main = do
-    defaultMain [
+main = defaultMain [
         bgroup "Parsing" [
             bench "phony"            $ nf parse ""
           , bench "cmd"              $ nf parse cmd
diff --git a/damnpacket.cabal b/damnpacket.cabal
--- a/damnpacket.cabal
+++ b/damnpacket.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                damnpacket
-version:             0.1.0.1
+version:             0.1.0.2
 synopsis:            Parsing dAmn packets
 license:             MIT
 license-file:        LICENSE
diff --git a/src/Text/Damn/Packet/Internal.hs b/src/Text/Damn/Packet/Internal.hs
--- a/src/Text/Damn/Packet/Internal.hs
+++ b/src/Text/Damn/Packet/Internal.hs
@@ -1,7 +1,6 @@
 {-# LANGUAGE CPP #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE TemplateHaskell #-}
 
 -- | Internal functions for Packets.
 module Text.Damn.Packet.Internal (
@@ -18,9 +17,6 @@
 import Data.Data
 import Data.Map            (Map)
 import Data.Text           (Text)
-#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ < 707
-import Data.Typeable       (Typeable)
-#endif
 
 -- | A type synonym--because pressing spacebar is pretty irritating.
 type Arguments = Map Text Text
diff --git a/src/Text/Damn/Packet/Parser.hs b/src/Text/Damn/Packet/Parser.hs
--- a/src/Text/Damn/Packet/Parser.hs
+++ b/src/Text/Damn/Packet/Parser.hs
@@ -13,11 +13,7 @@
 ) where
 
 import           Prelude                   hiding (null)
-import           Control.Applicative       ((<$>), (*>), liftA3, pure
-#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ < 707
-                                               , (<*>), many
-#endif
-                                           )
+import           Control.Applicative       ((<$>), (*>), liftA3, pure)
 import           Control.Arrow             (second)
 import           Data.Attoparsec.Text      hiding (parse)
 import           Data.Char
@@ -30,7 +26,7 @@
 -- | A lens on 'pktSubpacket''.
 pktSubpacketL :: Functor f => (Maybe Packet -> f (Maybe Packet)) -> Packet -> f Packet
 pktSubpacketL afb s = setter s <$> afb (getter s)
-    where getter p = pktSubpacket' p
+    where getter = pktSubpacket'
           setter pkt m = pkt { pktBody = render <$> m }
 {-# INLINE pktSubpacketL #-}
 
@@ -70,13 +66,13 @@
           (header, body) = second (T.drop 2) $ T.breakOn "\n\n" adjustedStr
           packet = parseOnly headP header
           addBody (Right s) = Right $ s { pktBody = Just body }
-          addBody (Left l) = Left l
+          addBody l@Left{..} = l
 
 -- | Parse some text, discarding any failure message.
 parse' :: Text -> Maybe Packet
 parse' s = case parse s of
-               Right pk -> Just pk
                Left _ -> Nothing
+               Right pk -> Just pk
 {-# INLINE parse' #-}
 
 headP :: Parser Packet
