squint 2026-07-07

I'm playing around with a prototype of fully immutable (HAMT) optional data structures in squint. So no copy on write (like squint's default ones and e.g. cljs-lite). for an app already using squint, you'd pay 3kb gzip more. a minimal HAMT using example is ~5.7kb gzip. Compare to Immutabe.js: 18.5kb gzip

🔥 12
😮 2

There isn't a downside to shipping this with squint since it has no impact when not used, on DCE. I just need a nice way to annotate when you want to use it instead of a COW one. Perhaps ^clj {:a 1} but not sure if ^clj is used a lot in normal CLJS programs and if in that case squint always want the HAMT one.

what implementation are you using? some existing or did you build new?

a re-implementation of CLJS's data structures in JS

👍 1