om-plugin-imports: Plugin-based import warnings

[ compiler-plugin, library, mit, program ] [ Propose Tags ]

This is a plutin that acts similar to `-ddump-minimal-imports`, but the style of imports dumped to the dump directory is better. Where "better" means it will satisfy `-Wmissing-import-lists` (which `-ddump-minimal-imports does not always), and it will omit the explicit import list for imports that are already qualified. The files are dumped to dump-dir/module-name.full-imports. No files will be dumped unless `-dumpdir` is explicitly passed by the user.

[Skip to Readme]


[Index] [Quick Jump]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,
Dependencies base (>=4.17 && <4.18), containers (>= && <0.7), ghc (>=9.4.0 && <9.5), om-plugin-imports, safe (>=0.3.19 && <0.4) [details]
License MIT
Copyright 2022 Rick Owens
Author Rick Owens
Category Compiler Plugin
Home page
Uploaded by rickowens at 2023-05-04T14:28:28Z
Distributions NixOS:
Executables om-import-warnings-test
Downloads 108 total (4 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for om-plugin-imports-

[back to package description]


This plugin behaves similarly to the native GHC options -ddump-minimal-imports. If (and only if) you specify a -dumpdir directory to GHC, this plugin will emit files to that directory that contain a normalized, complete set of explicit imports for your module. This is sort of what -ddump-minimal-imports does, but -ddump-minimal-imports has the following deficiencies:

  • It will not always produce output that satisfies -Wmissing-import-lists. E.g. it will sometimes produce something like:

    import Foo (Bar(..))
  • It will explicitly import all the names from modules which are already qualified, E.g:

    import qualified Foo as F (foo, bar, baz)

This plugin solves these problems. It will dump a file in the user-supplied -dumpdir of the form <dumpdir>/<module-name>.full-imports. The file will contain a set of imports which can be copy/pasted over the imports in your module in a way that satisfies -Wmissing-import-lists.