XMonad is a tiling window manager written and configured in Haskell. I switched to it from the Ion Window Manager, and am pleased. It gives me everything that ion2 did (and everything ion3 would have if I ever upgraded), and seems to do some things even better (such as dealing with dynamic screen changes, like rotation or adding a 2nd screen (projector)).