No offense intended, but I think re-implementing window managers in Haskell/Scheme/<current language of choice> seems a bit Not-Invented-Here syndrome-ish. If it ain't broke, don't fix it - since there's lots of other interesting things to fix/create.
I'm currently using stumpWM (a tiling WM written in Common Lisp), and I find it quite nice to be able to add code on the fly to the WM, and to be able to extend it in Lisp rather than in some configuration file with its own syntax. I'd compare it to emacs for extensibility. Debugging is also (probably, I've never had to try) much easier since you can simply use slime to connect to the running WM.
Of course, having a window manager running with Gambit would be even better. SCWM (Scheme Constraints Window Manager) could be a nice starting point, but does not seem to have been updated since 2000.
Vincent