diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/benchmark/ParserBench.hs b/benchmark/ParserBench.hs
new file mode 100644
--- /dev/null
+++ b/benchmark/ParserBench.hs
@@ -0,0 +1,12 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+module ParserBench (benchmarks) where
+
+import           Criterion
+import           Network.HTTP.Link.Parser
+
+benchmarks :: [Benchmark]
+benchmarks = [
+    bench "minimal" $ whnf parseLinkHeader "<http://example.com>; rel=\"next\""
+  , bench "large" $ whnf parseLinkHeader "\n\t <  http://example.com>; rel=next; title=\"Hello world\",  <ftp://hello.world>; rev=license; someWeirdParam=\"YOLO LOL\", <https://long.ass.domain.name.just.because/lol>; rel=\"something something something http://some.thing/lol/rel\" "
+  ]
diff --git a/benchmark/WriterBench.hs b/benchmark/WriterBench.hs
new file mode 100644
--- /dev/null
+++ b/benchmark/WriterBench.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+module WriterBench (benchmarks) where
+
+import           Criterion
+import           Data.String              (IsString (..))
+import           Network.HTTP.Link.Types
+import           Network.HTTP.Link.Writer
+import           Network.URI
+
+instance IsString URI where
+    fromString str = case parseURI str of
+        Just uri -> uri
+        Nothing -> error $ "Failed to parse URI: " ++ str
+
+benchmarks :: [Benchmark]
+benchmarks = [
+    bench "minimal" $ whnf writeLinkHeader
+        [ Link "http://example.com/thing" [ (Rel, "next") ] ]
+  , bench "large" $ whnf writeLinkHeader
+        [ Link "http://example.com/something_long"
+               [ (Rel, "next prev http://hello.world/undefined")
+               , (Title, "this is a test benchmark thingy")
+               ]
+        , Link "https://use.tls.everywhere.pls"
+               [ (Rel, "license")
+               , (Rev, "author") ]]
+  ]
diff --git a/http-link-header.cabal b/http-link-header.cabal
--- a/http-link-header.cabal
+++ b/http-link-header.cabal
@@ -1,11 +1,11 @@
 name:            http-link-header
-version:         1.0.1
+version:         1.0.2
 synopsis:        A parser and writer for the HTTP Link header as specified in RFC 5988 "Web Linking".
 description:     https://github.com/myfreeweb/http-link-header
 category:        Web
 homepage:        https://github.com/myfreeweb/http-link-header
 author:          Greg V
-copyright:       2014-2015 Greg V <greg@unrelenting.technology>
+copyright:       2014-2016 Greg V <greg@unrelenting.technology>
 maintainer:      greg@unrelenting.technology
 license:         PublicDomain
 license-file:    UNLICENSE
@@ -14,7 +14,7 @@
 extra-source-files:
     README.md
 tested-with:
-    GHC == 7.10.2
+    GHC == 7.10.3
 
 source-repository head
     type: git
@@ -35,7 +35,6 @@
         Network.HTTP.Link.Types
         Network.HTTP.Link.Parser
         Network.HTTP.Link.Writer
-    ghc-prof-options: -prof
     ghc-options: -Wall
     hs-source-dirs: library
 
@@ -63,9 +62,12 @@
       , text
       , http-link-header
       , directory
+      , network-uri
       , transformers
       , criterion
     default-language: Haskell2010
     hs-source-dirs: benchmark
     main-is: Bench.hs
+    other-modules: ParserBench
+                   WriterBench
     type: exitcode-stdio-1.0
diff --git a/library/Network/HTTP/Link/Parser.hs b/library/Network/HTTP/Link/Parser.hs
--- a/library/Network/HTTP/Link/Parser.hs
+++ b/library/Network/HTTP/Link/Parser.hs
@@ -20,7 +20,7 @@
 import           Data.Text.Encoding (decodeUtf8)
 import           Data.ByteString (ByteString)
 import           Data.Char (isSpace)
-#if __GLASGOW_HASKELL__ < 709
+#if !MIN_VERSION_base(4,8,0)
 import           Data.Monoid (mconcat)
 #endif
 import           Data.Attoparsec.Text
diff --git a/library/Network/HTTP/Link/Writer.hs b/library/Network/HTTP/Link/Writer.hs
--- a/library/Network/HTTP/Link/Writer.hs
+++ b/library/Network/HTTP/Link/Writer.hs
@@ -6,7 +6,7 @@
 ) where
 
 import           Data.Text hiding (map)
-#if __GLASGOW_HASKELL__ < 709
+#if !MIN_VERSION_base(4,8,0)
 import           Data.Monoid (mconcat)
 #endif
 import           Network.URI
