diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 Changelog for HLint (* = breaking change)
 
+2.1.20, released 2019-05-15
+*   Fix a dumb break in the API on parseModuleEx
 2.1.19, released 2019-05-14
 *   Revert PVP breakage
 2.1.18, released 2019-05-13
diff --git a/hlint.cabal b/hlint.cabal
--- a/hlint.cabal
+++ b/hlint.cabal
@@ -1,7 +1,7 @@
 cabal-version:      >= 1.18
 build-type:         Simple
 name:               hlint
-version:            2.1.19
+version:            2.1.20
 license:            BSD3
 license-file:       LICENSE
 category:           Development
diff --git a/src/HSE/All.hs b/src/HSE/All.hs
--- a/src/HSE/All.hs
+++ b/src/HSE/All.hs
@@ -209,7 +209,7 @@
 -- This version uses both hs-src-exts AND ghc-lib. It's considered to be an unrecoverable error if one
 -- parsing method succeeds whilst the other fails.
 parseModuleEx :: ParseFlags -> FilePath -> Maybe String -> IO (Either ParseError (Module SrcSpanInfo, [Comment]))
-parseModuleEx flags file str = fmap undefined <$> parseModuleExInternal flags file str
+parseModuleEx flags file str = fmap pm_hsext <$> parseModuleExInternal flags file str
 
 parseModuleExInternal :: ParseFlags -> FilePath -> Maybe String -> IO (Either ParseError ParsedModuleResults)
 parseModuleExInternal flags file str = timedIO "Parse" file $ do
