The example I've found where this is necessary is on Windows:
canonicalizePath on its own doesn't upper-case the drive letter, but
normalise does.
#else
do c_realpath pInPath pOutPath
#endif
#else
do c_realpath pInPath pOutPath
#endif
+ path <- peekCString pOutPath
+ return (normalise path)
+ -- normalise does more stuff, like upper-casing the drive letter
#if defined(mingw32_HOST_OS)
foreign import stdcall unsafe "GetFullPathNameA"
#if defined(mingw32_HOST_OS)
foreign import stdcall unsafe "GetFullPathNameA"