I've been following ClojureScript with mild interest but letting the clojure enthusiasts make the cowpaths. What I haven't seen is how clojurescript significantly improves DOM interaction. I agree that the core problem of client side development is controlling state, which the DOM frustrates. Sproutcore works around this by essentially binding to the DOM and preferably building a nested state machine on top (statecharts) which doesn't solve mutable state but confines it to smaller pieces. Obviously clojurescript deals well with controlling state in memory but the clojurescript sample stuff I've seen has all deferred actual DOM manipulation to Closure. What's the deal?