ndmitchell/weeder

Detect definitions used but not reexported

Offen

#48 geöffnet am 13.02.2019

 (4 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Haskell (7 Forks)github user discovery
help wanted

Repository-Metriken

Stars
 (125 Sterne)
PR-Merge-Metriken
 (Keine gemergten PRs in 30 T)

Beschreibung

When working in a large project, I don't want to duplicate the dependencies of files/packages I use. In other words, I would like my abstraction to be complete: no other imports are needed to work with it.

For example, assume a package defines X. Another package defines a Producer and Consumer of X (and thus depends on the package defining X). A third package, which wants to use the Producer and Consumer in a decoupled way needs to store the results in buffer of type X. When the package of the Producer and Consumer does NOT re-export X, the third package must also depends on the package defining X. I consider this dependency unwanted: you must be able to use an interface as is, i.e., in a context where Producer is defined also X must be defined.

However, I was unable to find any tool, including weeder, that performs such a check!

So my question: can weeder check that all necessary definitions are include in the export of a file / package?

Contributor Guide