Did this start as an effect system and then capabilities shook out naturally?
Yes! It started as an implementation of the effect system I always wanted: effects passed on the value level, rather than implicitly on the type level. Once I'd done that I realise that it was actually a capability system (and that was the better way of describing it, because more people already know what a "capability system" is).
That’s not surprising there’s a lot of mechanical overlap between the two. It’s a really interesting relationship.
Yeah, I think they're basically identical concepts. I'm writing an article on that topic right now.
I’d love to read it!
Here you go! It's a complete document, but I'll continue to edit it over the next few days before I announce it. I'd love to hear any thoughts you have.