> Base types would likely resolve the "value object" problem for lists: They > would (I think) naturally pass like arrays, not like objects. However, it's > fairly clear that we want to have methods on collection objects, not just > free-floating functions, so if they're implemented as their own types then we > would *need* to have extension functions for them to support a more robust > standard library for them. If implemented as objects, we could use built-in > methods or extension functions, but then we have to deal with the passing > semantics problem.
We could save a lot of conversations if everyone just agreed that my Roadmap for 9.0 with implementations for Monomorphized Generics, Structs, Modules, Extensions, and Surfaces could be considered accepted as a rough outline for the future. PHP needs meaningful growth to avoid settling back into a 5.x slumber. For anyone who hasn’t checked it out yet, I would encourage you to do so at https://EventuallyWrong.com/php9. I update it regularly as I expand my proposals. Most recently I added Generics. Variadic Generics will probably be added today as well.
