Some half-baked thoughts on language design: Functional programming is a