ndmitchell/weeder

Detect definitions used but not reexported

Aperta

#48 aperta il 13 feb 2019

 (4 commenti) (0 reazioni) (0 assegnatari)Haskell (7 fork)github user discovery
help wanted

Metriche repository

Star
 (125 stelle)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

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?

Guida contributor