I’m looking forward to a stable 4.7 to help with the circular reference issues. That was the whole reason for me to try to use interfaces anyway, so in a way that has solved my problem.
But on the topic of a having a robust interface support, I’m not sure if the solution does that or not. It sounds like in order to use an object that supports an interface, I would need to cast to its type first. Since an interface is supposed to provide access to an assorted set of classes that are otherwise not related, this seems like it forces the caller to be able to determine those types, which somewhat defeats the purpose of using the interface. Maybe I don’t quite understand the setup. I’ll have to try it out.