Immutable data trees in JavaScript.