as a recent convert to haskell I absolutely love this