Hello! @ocharles put me in charge of making this release
Weeder 2.7.0 has just been released on Github and on Hackage. Weeder is a utility to find unused declarations over an entire Haskell project.
This release contains the vast majority of my work on Weeder for Summer of Haskell 2023 (Teaching Weeder About Type Class Instances). Apart from some non-critical edge cases on the level of HIE files, just implementing support for uses of type class instances turned out to be relatively straightforward. There was therefore a lot of extra time left for implementing additional features, such as support for unused types and parallelism.
The full list of user-facing changes in this release is as follows:
Added
- Weeder now supports type class instances. Type class instances can be marked as roots with the
root-instances
configuration option. - Weeder now optionally detects uses of types, excluding type family instances. This can be enabled with the
unused-types
configuration option. - Weeder’s analysis now runs in parallel. This can almost halve execution time when given enough cores. Enabled by calling Weeder with
-j X
or-N
. -
--write-default-config
flag to write and read a default configuration, if no configuration file is found.
Changed
- All configuration options now have default values. This can be disabled with the
--no-default-fields
flag. - Weeder will now use distinct exit codes for certain failures. See
README.md
for more details.
Happy weeding!