ndmitchell/hlint
Ver no GitHubIncorrect "Use map" when folding over a `Foldable`
Open
#1.601 aberto em 29 de mai. de 2024
good first issue
Métricas do repositório
- Stars
- (1.594 stars)
- Métricas de merge de PR
- (Nenhuma PRs mesclada em 30d)
Description
The code
triggersUseMap :: Foldable f => f a -> [a]
triggersUseMap = foldr (\k acc -> identity k : acc) []
-- to get rid of "Avoid lambda" and "Redundant id"
identity :: a -> a
identity = id
triggers the hint
Warning: Use map
Found:
foldr (\ k acc -> identity k : acc) []
Perhaps:
map (\ k -> identity k)
but obviously triggersUseMap = map (\k -> identity k) does not compile, since map wants a list and the argument is a general Foldable.
The same warning is not emitted with the eta reduced version:
noHint :: Foldable f => f a -> [a]
noHint = foldr ((:) . identity) [] -- no hint even with foldr (:) []
This is using GHC 9.6.5 with HLint 3.6.1 (apologies if this was already fixed in 3.8, but I didn't see anything of the sort in the changelog)