Skip to end of metadata
Go to start of metadata


Boxed numbers are a performance disaster, both for operations and, more important, for storage/access. Clojure has support for primitives in local contexts, but with some semantic inconsistencies with boxed arithmetic, and no support for primitives across function call boundaries.


  • Normalize semantics between operations involving primitives and boxed numbers
  • Support collections of primitives
  • Support arguments and return types of primitives
    • longs/doubles only
  • Support higher-order ops involving primitives


  • Involves some breaking changes
  • How to integrate with important abstractions?