Yeah, I get where you're coming from. I'm writing a compiler right now so ML is a bit of a godsend, which led me to reevaluate some of this stuff--not that I was ever super enamored of OOP, but I'm starting to feel like it's actively getting in the way. I guess my question was more sort of born of frustration that I can't do the things I can in ML in almost any mainstream language, when it is precisely those things that I actually need. E.g., destructuring of objects via pattern matching--and I'm not just talking about the usual Java/C++ suspects here, even languages like Python and Ruby don't really support it well at all. And while mutable state is fine when efficiency is on the line, I *hate* how most nonfunctional modern languages assume it by default--hell, in some cases (Java) I
can't even declare a local immutable, as far as I can tell. Anyway, this is starting to turn rantlike so I'll end this here