@@ -12,7 +12,8 @@ import Control.Monad.Writer (Writer, tell)
12
12
import Data.Generics (everywhere , mkT )
13
13
import Data.Maybe (fromMaybe )
14
14
import Data.List (nub , (\\) , intersect )
15
- import Language.Haskell.Exts.Parser (parseModule , ParseResult (.. ))
15
+ import Language.Haskell.Exts.Extension (Extension (EnableExtension ), KnownExtension (RankNTypes ))
16
+ import Language.Haskell.Exts.Parser (defaultParseMode , parseModuleWithMode , ParseMode (.. ), ParseResult (.. ))
16
17
import Language.Haskell.Exts.SrcLoc (SrcLoc , SrcSpanInfo , srcFilename , srcColumn , srcLine , fromSrcInfo )
17
18
import Language.Haskell.Exts.Syntax
18
19
-- import Language.Haskell.Syntax;
@@ -72,13 +73,15 @@ import Language.Haskell.FreeTheorems.Frontend.Error
72
73
-- successfully.
73
74
74
75
parse :: String -> Parsed [S. Declaration ]
75
- parse text = case parseModule text of
76
+ parse text = case parseModuleWithMode mode text of
76
77
ParseOk hsModule -> let decls = transform . filterDeclarations $ hsModule
77
78
in foldM collectDeclarations [] decls
78
79
ParseFailed l _ -> do tell [pp (" Parse error at (" ++ show (srcLine l)
79
80
++ " :" ++ show (srcColumn l) ++ " )." )]
80
81
return []
81
82
where
83
+ mode = defaultParseMode { extensions = [EnableExtension RankNTypes ] }
84
+
82
85
collectDeclarations :: [S. Declaration ] -> Decl SrcSpanInfo -> Parsed [S. Declaration ]
83
86
collectDeclarations ds d =
84
87
case mkDeclaration d of
0 commit comments