Double reporting of desugarer warnings in where clauses
For some reason, the desugaring is ran twice (once with the long-distance information and once without) on the where clauses of a function. This causes all the warnings that are emitted from the where clauses to be reported twice. In the following example:
f x = f' (x + 1)
where
c b = if b then Just 2 else Nothing
f' x = do
c True
return x
the -Wunused-do-bind
warning is reported twice