Most of the Pugs Win32 support comes directly from what GHC provides, because Pugs doesn't have much C code in it. If GHC doesn't provide it, it can still be done if it is just a matter of finding the correct Win32 API call. If it requires anything more, it won't be done quickly, because that means hard work. As I've been mostly concerned about supporting the stuff that I want in Pugs, like sleep(), async() and system() and %*ENV, I've worked mostly on these parts. And that these parts were not supported by GHC as transparently as one might have liked is, I think, because of the difference between POSIX 2.x systems and Win32.