ndmitchell/weeder

Detect definitions used but not reexported

Open

#48 opened on 2019年2月13日

GitHub で見る
 (4 comments) (0 reactions) (0 assignees)Haskell (7 forks)github user discovery
help wanted

Repository metrics

Stars
 (125 stars)
PR merge metrics
 (PR metrics pending)

説明

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?

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