draft blog post: a brutal introduction to haskell