Description: Fix compatibility with haskell-src-exts 1.14
Author: Raúl Benencia <rul@kalgan.cc>
--- a/Main.hs
+++ b/Main.hs
@@ -39,7 +39,7 @@
 
     extractPat (L.PVar _ name) = extractName name
     extractPat (L.PApp _ _ pats) = concatMap extractPat pats
-    extractPat (L.PTuple _ pats) = concatMap extractPat pats
+    extractPat (L.PTuple _ _ pats) = concatMap extractPat pats
     extractPat (L.PList _ pats) = concatMap extractPat pats
     extractPat (L.PParen _ pat) = extractPat pat
     extractPat (L.PAsPat _ name pat) = extractName name ++ extractPat pat
@@ -175,11 +175,12 @@
 haskellSource :: FilePath -> IO String
 haskellSource file = do
     contents <- readFile file
-    let needsCpp = maybe False (L.CPP `elem`) (L.readExtensions contents)
+    let needsCpp = maybe False ((L.EnableExtension L.CPP) `elem`) $ exts contents
     if needsCpp
         then CPP.runCpphs cppOpts file contents
         else return contents
     where
+    exts contents = fmap (\(_, exts') -> exts') $ L.readExtensions contents
     cppOpts = CPP.defaultCpphsOptions { CPP.boolopts = CPP.defaultBoolOptions { CPP.hashline = False } }
     
 
@@ -198,7 +199,10 @@
     where
     mode filename = L.ParseMode {
         L.parseFilename = filename,
-        L.extensions = [L.MultiParamTypeClasses, L.ExistentialQuantification, L.FlexibleContexts],
+        L.baseLanguage = L.Haskell98,
+        L.extensions = [L.EnableExtension L.MultiParamTypeClasses,
+                        L.EnableExtension L.ExistentialQuantification,
+                        L.EnableExtension L.FlexibleContexts],
         L.ignoreLanguagePragmas = False,
         L.ignoreLinePragmas = False,
         L.fixities = Nothing
--- a/hothasktags.cabal
+++ b/hothasktags.cabal
@@ -37,7 +37,7 @@
         base == 4.*,
         containers,
         filepath,
-        haskell-src-exts >= 1.11 && < 1.14,
+        haskell-src-exts >= 1.14 && < 1.15,
         cpphs >= 1.11 && < 1.17
     main-is: Main.hs
     ghc-options: -W
