> The basis of Erlang/Elixir/Clojure is that structs are just inflexible maps.

I mean the difference is that Erlang and Elixir have high-quality pattern matching baked in, not to mention stuff like dialyzer and set-theoretic types.

Clojure has multi-methods I guess, and stuff like defrecord that no one uses...and the turd that is spec. In my experience every Clojure codebase turns into map soup at some point without a tremendous amount of manual labor.

...so it's not as black and white as you're saying, I guess is my point. And for example, I'd always take Haskell over Erlang or Elixir even though Haskell's records are widely and justifiably derided, because the language taken as a whole is that much nicer to use, and stuff like lens smooths some of the rough edges over pretty well.