For your WM you probably want to use a precompiled binary form your distro. What you're trying is equivalent of trying to get the whole gcc stack and deps to build a c-based WM. Haskell isn't a dynamic language and doesn't require anything Haskell-specific to be installed on the target system to run a binary.
If you really do want to compile your window manager from source, newer versions of cabal, the Haskell package manager, have something called sandboxes which basically remedy the problems you're talking about. I don't recommend compiling from source unless you know what you're doing though and if you're not using sandboxes, you probably don't.