On 2025-03-20 18:09, Gina P. Banyard wrote:
And another user [2] was basically suggesting my previous solution of
adding support for type classes/runtime implementation of interfaces.
Hey,
There are two ideas -- the `$object implements Iface` that you suggested
and the `SomeClass implements Iface` that was suggested on reddit. I see
the instance-specific one as something that a consumer can do in their
project if they know that the `$object` actually fits where needed. That
would be a cool feature per se. But it seems to me it would take a lot
of bridging code to provide such "dynamically implementing" objects if
you're the package author.
I'll address the `SomeClass implements Iface` expression vs `class
SomeClass implements ?Iface` hereinafter.
The `?OptionalInterface` would always be within the class definition and
in a real-life project with PSR-4 you could check the interface
existence by inspecting the file tree or click-throughing the name in an
IDE.
It's not obvious to me how the runtime implementation expressions could
be in such a discoverable spot. The expression could be anywhere in the
project. And it will likely be inside conditionals. It would surely be
hard to discover manually. I'm not a developer of stan tooling, but I
expect it would complicate automated static analysis as well.
BR,
Juris