fix-imports: Program to manage the imports of a haskell module

[ bsd3, editor, haskell, ide, program ] [ Propose Tags ]

A small standalone program to manage the import block of a haskell program. It will try to add import lines for qualified names with no corresponding import, remove unused import lines, and sort the import block according to some heuristic you can define. This only works for qualified imports! Unqualified imports are left untouched.

It's most convenient if bound to an editor key.

[Skip to Readme]
Versions 0.1.0, 0.1.1, 0.1.2, 0.1.3, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.1.0
Dependencies base (>=3 && <5), containers, cpphs, directory, filepath, haskell-src-exts, process, split, uniplate [details]
License BSD-3-Clause
Author Evan Laforge
Maintainer Evan Laforge <>
Category Editor, Haskell, IDE
Uploaded by EvanLaforge at Thu Jun 2 20:17:42 UTC 2011
Distributions NixOS:1.1.0
Executables FixImports
Downloads 3681 total (30 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-27 [all 7 reports]
Hackage Matrix CI


Maintainer's Corner

For package maintainers and hackage trustees

Readme for fix-imports-0.1.0

[back to package description]
There are a few things which can be configured.  Edit src/Main.hs and mess with
the Config it passes in.  There isn't much configurability but what there is
should be documented in the modules in which it is defined.

See the vimrc for an exmaple of how it can be bound to a key in vim.

It'll reformat the import lines, including an import list if you have one.
Sorry about that.  The formatting style of Language.Haskell.Exts.prettyPrint
is not my personal style.  If it ever bothers me enough maybe I'll write my
own formatter, or come up with a way to not reformat unqualified imports.

Also, it will search for modules starting from '.', so you should be in the
root of the module hierarchy.  It wouldn't be hard to add a -i flag though.

haskell-src-exts will crash the program if it gets an ambigious operator
fixity parse.  I don't know why it does that, but if you get a crash like that
you can add your custom operators to the Config.

It can be a little slow.  Most of this is probably that it rebuilds the
package index on every run.  So if you have a large package db and it's too
slow, caching the package index would probably help.