Here’s a bit of a geeky thought experiment: Parameterized Modules (aka “Abstract Modules”) were an experimental feature in Erlang that never left the experimental stage and were ultimately abandoned in R16.
It got me thinking—if Elixir had such a feature, could it have influenced the way libraries like Ecto, Phoenix, or Ash were implemented, particularly when it comes to component-building abstractions?
Additionally, I wonder if Parameterized Modules might have offered interesting alternatives for implementing Protocols in Elixir. Their dynamic dispatch nature seems like it could align with what parameterized modules were designed to address.
Would this feature have simplified certain patterns, or would it have introduced unnecessary complexity?
I’m curious to hear thoughts, especially from those who’ve used both Elixir and Erlang and can reflect on how parameterized modules might (or might not) fit into Elixir’s design philosophy.