If you build the Paths_pkgname module that Cabal generates on windows then you get these kinds of warnings:
dist\build\autogen/Paths_cabal_install.hs:12:0:
Warning: Module `Data.Maybe' is imported, but nothing from it is used,
except perhaps instances visible in `Data.Maybe'
To suppress this warning, use: import Data.Maybe()
dist\build\autogen/Paths_cabal_install.hs:19:0:
Warning: Definition but no type signature for `prefix'
Inferred type: prefix :: [Char]
dist\build\autogen/Paths_cabal_install.hs:20:0:
Warning: Definition but no type signature for `bindirrel'
Inferred type: bindirrel :: [Char]
dist\build\autogen/Paths_cabal_install.hs:73:14:
Warning: This binding for `p' shadows an existing binding
In a case alternative
dist\build\autogen/Paths_cabal_install.hs:80:9:
Warning: This binding for `path' shadows an existing binding
In a case alternative
It'd be nice if we generated code that gave no warnings so that people could make -Wall clean packages on Windows.