Shameless plug. If you're interested in more on this, for a programmer's rather than academic perspective, this is going into my book [3]. I'm writing the chapter of capability passing right now.
Back to writing!
[0]: https://blog.acolyer.org/2016/02/16/capability-myths-demolis...
[1]: https://effekt-lang.org/tour/captures
[2]: https://docs.scala-lang.org/scala3/reference/experimental/cc...
I will take a look at your content, these topics interest me a lot.
- layout (adding components to the component tree) - event (handling user input events) - react (reacting to changes in reactive values)
https://github.com/creativescala/terminus/tree/main/ui/share...
This is the case study I'm using for the book chapter.
Capability passing is just extending that to the level of imports. Your files do not import the global I/O library and then use io.print(). They are passed a I/O library as the parameter {io} which defines a print() function and then call io.print().