diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for ghc-lib-parser-ex
 
+## 8.10.0.2 released 2020-03-30
+- Rework cabal flags; allow full configurability with a good default:
+  - Have two flags `auto` and `no-ghc-lib`. Default behavior exactly as `hlint` linking `ghc-lib-parser-8.10.*` if not on `ghc-8.10.*` and `ghc-8.10.*` otherwise.
+
 ## 8.10.0.1 released 2020-03-28
 - Unless the Cabal flag `ghc-lib` is `true` link native ghc-libs (without regard for the compiler version)
 - Change the signature of `hasPFieldsDotDot`
diff --git a/ghc-lib-parser-ex.cabal b/ghc-lib-parser-ex.cabal
--- a/ghc-lib-parser-ex.cabal
+++ b/ghc-lib-parser-ex.cabal
@@ -1,6 +1,6 @@
 cabal-version: >= 1.18
 name:           ghc-lib-parser-ex
-version:        8.10.0.1
+version:        8.10.0.2
 description:    Please see the README on GitHub at <https://github.com/shayne-fletcher/ghc-lib-parser-ex#readme>
 homepage:       https://github.com/shayne-fletcher/ghc-lib-parser-ex#readme
 bug-reports:    https://github.com/shayne-fletcher/ghc-lib-parser-ex/issues
@@ -22,10 +22,15 @@
   type: git
   location: https://github.com/shayne-fletcher/ghc-lib-parser-ex
 
-flag ghc-lib
+flag auto
+  default: True
+  manual: True
+  description: Used default configuration
+
+flag no-ghc-lib
   default: False
   manual: True
-  description: Force dependency on ghc-lib-parser even if GHC API in the ghc package is supported
+  description: Force dependency on native ghc-libs
 
 library
   exposed-modules:
@@ -50,15 +55,24 @@
       uniplate >= 1.5,
       bytestring >= 0.10.8.2,
       containers >= 0.5.8.1
-  -- Unless explicitly told to link ghc-lib-parser, assume ghc native.
-  if !flag(ghc-lib)
-      build-depends:
-        ghc,
-        ghc-boot-th,
-        ghc-boot
+  if flag(auto) && impl(ghc >= 8.10.0) && impl(ghc < 8.11.0)
+    build-depends:
+      ghc == 8.10.*,
+      ghc-boot-th,
+      ghc-boot
   else
+    if flag(auto)
       build-depends:
-        ghc-lib-parser
+        ghc-lib-parser == 8.10.*
+    else
+      if flag(no-ghc-lib)
+        build-depends:
+          ghc,
+          ghc-boot-th,
+          ghc-boot
+      else
+        build-depends:
+          ghc-lib-parser
   include-dirs:
       cbits
   install-includes:
@@ -84,11 +98,22 @@
     , filepath >= 1.4.2
     , extra >=1.6
     , ghc-lib-parser-ex
-  if !flag(ghc-lib) && impl(ghc >= 8.10.0) && impl(ghc < 8.11.0)
-      build-depends:
-        ghc == 8.10.*,
-        ghc-boot-th
+  if flag(auto) && impl(ghc >= 8.10.0) && impl(ghc < 8.11.0)
+    build-depends:
+      ghc == 8.10.*,
+      ghc-boot-th,
+      ghc-boot
   else
+    if flag(auto)
       build-depends:
-        ghc-lib-parser
+        ghc-lib-parser == 8.10.*
+    else
+      if flag(no-ghc-lib)
+        build-depends:
+          ghc,
+          ghc-boot-th,
+          ghc-boot
+      else
+        build-depends:
+          ghc-lib-parser
   default-language: Haskell2010
