Skip to content

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

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information