A whirlwind tour of some Haskell design decisions