That looks to me, a lot more complicated than it needs to be. I think that has combined two separate things - atoms and cursors. Here they are in javascript:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;cjohansen&#x2F;js-atom&#x2F;blob&#x2F;master&#x2F;atom.js" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;cjohansen&#x2F;js-atom&#x2F;blob&#x2F;master&#x2F;atom.js</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;dustingetz&#x2F;react-cursor&#x2F;blob&#x2F;master&#x2F;src&#x2F;Cursor.js" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dustingetz&#x2F;react-cursor&#x2F;blob&#x2F;master&#x2F;src&#x2F;C...</a><p>Vastly less code than <a href="https:&#x2F;&#x2F;github.com&#x2F;mweststrate&#x2F;mobservable&#x2F;tree&#x2F;master&#x2F;src" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mweststrate&#x2F;mobservable&#x2F;tree&#x2F;master&#x2F;src</a>.
Cursor+Atom has nothing to do with Rx or core.async, of course, and is probably not the future. (I say this as the maintainer of react-cursor)