diff --git a/damnpacket.cabal b/damnpacket.cabal
--- a/damnpacket.cabal
+++ b/damnpacket.cabal
@@ -1,12 +1,11 @@
 name:                damnpacket
-version:             1.0.0
+version:             1.0.1
 synopsis:            Parsing dAmn messages
 description:         This module provides a datatype and convenience functions for parsing, manipulating, and rendering deviantART Message Network messages.
 license:             MIT
 license-file:        LICENSE
 author:              Jude Taylor
 maintainer:          me@jude.bio
--- copyright:           
 category:            Network
 build-type:          Simple
 extra-source-files:  ChangeLog.md
@@ -20,7 +19,6 @@
                        Network.Damn.Tablumps.TH
                        Network.Damn.Format.Base
                        Network.Damn.Format.Damn.Internal
-  -- other-extensions:    
   build-depends:       base == 4.*
                      , attoparsec
                      , bytestring
@@ -28,6 +26,7 @@
                      , html-entities
                      , template-haskell
                      , text
+                     , th-lift-instances
   hs-source-dirs:      src
   default-language:    Haskell2010
   ghc-options:         -Wall
@@ -35,6 +34,7 @@
 test-suite parse
   main-is:             parse.hs
   hs-source-dirs:      test
+  default-language:    Haskell2010
   type:                exitcode-stdio-1.0
   build-depends:       base, bytestring, damnpacket, HUnit, hspec, QuickCheck
 
diff --git a/src/Network/Damn.hs b/src/Network/Damn.hs
--- a/src/Network/Damn.hs
+++ b/src/Network/Damn.hs
@@ -1,7 +1,13 @@
+{-# LANGUAGE CPP               #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE PatternSynonyms   #-}
 {-# LANGUAGE RankNTypes        #-}
+
+#define PATTERNS (__GLASGOW_HASKELL__ >= 710)
+
+#if PATTERNS
 {-# LANGUAGE ViewPatterns      #-}
+#endif
 
 -- | This module provides a datatype and convenience functions for parsing,
 -- manipulating, and rendering deviantART Message Network messages.
@@ -15,7 +21,9 @@
     toBody, toBodyText,
     -- *** Working with sub-messages
     subMessage,
+#if PATTERNS
     pattern SubM,
+#endif
     -- *** Parsing
     parseMessage,
     messageP,
@@ -42,6 +50,9 @@
 import           Network.Damn.Format.Damn.Internal (textToBytes)
 import           Network.Damn.Tablumps
 import           Prelude                           hiding (fail)
+#if __GLASGOW_HASKELL__ <= 708
+import           Data.Foldable                     (foldMap)
+#endif
 
 -- | A top-level dAmn message.
 --
@@ -113,6 +124,7 @@
 instance Eq MessageBody where
     MessageBody b _ == MessageBody b1 _ = b == b1
 
+#if PATTERNS
 -- | 'subMessage' as a pattern.
 --
 -- @
@@ -133,6 +145,7 @@
 -- @
 pattern SubM :: SubMessage -> Maybe MessageBody
 pattern SubM pkt <- ((>>= subMessage) -> Just pkt)
+#endif
 
 -- | Convert a 'MessageBody' to some stringlike representation using the
 -- given 'Formatter'. (See 'Network.Damn.Format.Damn.damnFormat').
diff --git a/src/Network/Damn/Format/IRC.hs b/src/Network/Damn/Format/IRC.hs
--- a/src/Network/Damn/Format/IRC.hs
+++ b/src/Network/Damn/Format/IRC.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP                        #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE OverloadedStrings          #-}
 
@@ -13,6 +14,9 @@
 import           Data.Text.Encoding
 import           Network.Damn.Format.Base
 import           Network.Damn.Format.Damn.Internal
+#if __GLASGOW_HASKELL__ <= 708
+import           Data.Monoid
+#endif
 
 newtype Lines = Lines ByteString deriving (Show, Monoid, IsString)
 
diff --git a/src/Network/Damn/Tablumps.hs b/src/Network/Damn/Tablumps.hs
--- a/src/Network/Damn/Tablumps.hs
+++ b/src/Network/Damn/Tablumps.hs
@@ -1,4 +1,3 @@
-{-# OPTIONS_GHC -ddump-splices #-}
 {-# LANGUAGE NoMonomorphismRestriction #-}
 {-# LANGUAGE OverloadedStrings         #-}
 {-# LANGUAGE TemplateHaskell           #-}
@@ -25,7 +24,7 @@
 -- data Lump = Lump deriving (Eq, Show)
 
 tablumpP :: Parser [Either ByteString Lump]
-tablumpP = many $ (Left <$> (C.takeWhile1 (/= '&')))
+tablumpP = many $ (Left <$> C.takeWhile1 (/= '&'))
        <|> lump
        <|> fmap Left (C.string "&")
 
@@ -97,10 +96,6 @@
      , $(ary 0 "/ul" 'C_Ul)
      ]
     where
-        -- ary n s = do
-        --     string s
-        --     C.char '\t'
-        --     fmap (Right . (,) s) $ count n arg
         link = do
             _ <- string "link"
             _ <- C.char '\t'
diff --git a/src/Network/Damn/Tablumps/TH.hs b/src/Network/Damn/Tablumps/TH.hs
--- a/src/Network/Damn/Tablumps/TH.hs
+++ b/src/Network/Damn/Tablumps/TH.hs
@@ -1,16 +1,17 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
 {-# LANGUAGE CPP             #-}
-{-# LANGUAGE DeriveLift      #-}
 {-# LANGUAGE TemplateHaskell #-}
 
 #define ARG ByteString
 
 module Network.Damn.Tablumps.TH where
 
+import           Data.Attoparsec.ByteString       (string)
 import qualified Data.Attoparsec.ByteString.Char8 as C
-import           Data.ByteString                  (ByteString, unpack)
+import           Data.ByteString                  (ByteString)
 import           Language.Haskell.TH
-import           Language.Haskell.TH.Syntax
+#if __GLASGOW_HASKELL__ <= 708
+import           Control.Applicative
+#endif
 
 ary :: Int -> String -> Name -> ExpQ
 ary n s con = [e|do
@@ -67,8 +68,6 @@
           | C_U
           | Ul
           | C_Ul
-          deriving (Lift, Eq, Show)
+          deriving (Eq, Show)
 
-instance Lift ByteString where
-    lift b = [e|pack ws|]
-        where ws = unpack b
+{-# ANN module ("HLint: ignore Use camelCase" :: String) #-}
