I haven't had enough experience with Haskell to do so, but it is my understanding that one can interface with C (and would need to do so, to get a native GUI on Windows, access the registry, etc).
Those are no doubt buggy to some degree.
Those are no doubt buggy to some degree.
The headaches you run into have more to do with getting Haskell to recognize where the relevant dev and runtime libraries are, especially on non-Unix systems where library locations are not standardized. It's possible, but you end up having to hack the Cabal package, a process that is not particularly well documented at the moment.
Another issue is simple bitrot. Many libraries in Hackage were developed by students who have no interest in maintaining their thesis work post-graduation.