ndmitchell/weeder

Detect definitions used but not reexported

オープン

#48 opened on 2019/02/13

 (4 件のコメント) (0 件のリアクション) (0 人の担当者)Haskell (7 件のフォーク)github user discovery
help wanted

Repository metrics

Stars
 (125 個のスター)
PR merge metrics
 (30d に merged PR はありません)

説明

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?

コントリビューターガイド