A similar question was asked Parameterised Modules in Erlang, it is about \"what\". My question is about \"why\"?
OTP Technical Board - Decisions affecting R16 conta
I can't tell you what the discussion was within the Great Cabal That Controls Everything, but I can tell you a few reasons why I never have considered using this feature:
It introduces syntactic complexity and semantic abiguity but grants me no new superpowers.
Complexity:
X
of Foo
equal to 10 or 20 right now?"dict:is_key(Value, Thingy)
here and then Thingy:is_key(Value)
over there?dict:is_key(Key, Foo:get_value(Key2))
all the time?"Ambiguity:
This introduces opaque state (bad) instead of an ADT (good, and something we already have).
Foo:is_key(Key)
than dict:is_key(Key, Foo)
. Other than the fact that I am certain on first reading, even in a complete absence of context, that the data object being operated upon in the second version is definitely a dict.Erlang's symbol assignment (aka "single assignment") is great, why destroy that?