great just what i needed. another excuse to rewrite everything in haskell and pretend i'm a real programmer