ndmitchell/weeder

Detect definitions used but not reexported

开放

#48 创建于 2019年2月13日

 (4 条评论) (0 个反应) (0 位负责人)Haskell (7 个派生)github user discovery
help wanted

仓库指标

星标
 (125 个星标)
PR 合并指标
 (30 天内没有已合并 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?

贡献者指南