Present: Michael Lawrence (chair), Hong Ooi, Luke Tierney, Hadley Wickham, Will Landau, Henrik Bengtsson
Discussion
Process (ML)
Active discussion in GitHub issues: https://github.com/RConsortium/S7
Need a little process to finalise discussion. Proposal: original author reads discussion, summarises, and creates a pull request that closes the issue. Any participants in the discussion should be added as reviewers.
Once issues are resolved, we can start to move forward on next steps for syntax, implementation, …
Do you have a sense for what the system might look like? (HB)
- Unfortunately don’t have a lot of time, but reading and happy to review. how much of an implementation do you have in your head?
- ML: Quite a bit; but wanted to make sure to step back and make sure we have all the requirements. But yes, have some vision in my head.
- HW: Have some clear idea in my head; mostly building on top of S3
Would it look more like S3, S4, or something completely new? (HB)
- ML: one of the main restrictions is to build off existing system
- HW: one of the advantages is NAMESPACE
- ML: and that base uses
- LT: want to be able to define new methods for “[”, which means has to be maximally compatible with base.
Double dispatch (HW/LT)
- LT: no double dispatch in S3. S4 overly ambitious and v hard to maintain. CLOS written be v. smart people and still got things wrong.
- HW: may need to carve double dispatch into v2.
- HO: multiple inheritance is falling out of favour (diamond inheritance problem etc). Could we use interface based approach instead?
Generic “interfaces” (LT)
- LT: need to consider not just generics by themselves, but how they are related.
- Related to contracts in Eiffel, concepts in C++20, ...