I wrote:
> On Mac OS X, it's normalized Unicode.

Brandon Allbery wrote:
This is only true for higher level OS X APIs. ghc normally operates in the BSD layer, which mostly follows POSIX semantics; in particular, filesystem paths are bytestrings in the BSD layer, and only normalized in Cocoa APIs.

If I happen to be writing a program that only interacts with the
BSD layer, then I can use the POSIX-style FilePath.
But as an application writer, most of the time I'll be dealing
with Mac OS X paths that need to work correctly with Cocoa.