Pretty cool! I am always using elm-analyse to find unused imports, but I can never quite get rid of all of them, so having an automatic tool would be super useful for me. Thanks for working on this.
However, I did apply the unused import tool to four big modules of mine, and I had a lot of problems:
0 It would delete this import: import Data.Id exposing(Id(Id, New)), where the module contained…
type Id
= Id String
| New
1 I had an import that was like import Data.A as A exposing (B), and I had functions that used B in both aliased and unaliased forms like String -> A.B -> ... and String -> B and it removed the import for B entirely
2 I import a union type and expose many constructors like import Tracking exposing (Event(A,B,C)) and it would format that to import Tracking exposing (A, B, C)