I'm trying to port persistent-sorted-set to ClojureDart with the ultimate goal to have Datascript persistence. Due to higher familiarity with Clojure I choose to start with the CLJS version but I'm stuck on the direct field access on BTSet that isn't going through a protocol .-root , .-left etc. (The Node and Leaf I wrote getters and that worked fine. But if CLJS doesn't have persistence yet, then maybe that's a fool's errand anyway and I have to bite the bullet and look at the Java implementation as the source for the port. Any general guidance for the situation?