Thanks for the link. I actually was considering something along these lines when I started Solid. I was a bit too married to succinctness of template binding that comes with implicit change detection. RxJS in particular I was finding a bit clunky since I was looking for all Behavior Subjects all the time. And I found defaults of unicast and cold not really where I wanted things to be. It’s all manageable with the right wrappers I imagine.
That being said I like your API. Similar attempts in the past I’ve seen are much coarser grain. So I’m stoked to see someone taking things this way. In fact, I’d imagine that the code that comes out of Solid’s compiler looks a lot like what is written there other than the explicit vs implicit dependencies. Solids primitives are very similar to observables except there is only next, no error or done, they are only multicast and hot, and explicit dependencies are optional. This reduction of API surface while less robust allows for implicit tracking and easy ES6 proxy wrapping. I did those things for familiarity as you can see Solid makes a pretty good React impression on the surface. But really that goal ultimately is the main reason I went the way I have.
I look forward to see how this progresses.