An interesting idea which occurred to me for a JiT runtime for Alonzo: What if any datastructure you define in Alonzo can provide instructions for how it can be compressed?
These could be invoked by the garbage collector as it compacts memory!
The other intriguing thing about building an Alonzo interpreter or compiler: Order of execution doesn't matter! As long as the dataflow's right the code can be executed in any order.
It can be evaluated lazily, but it doesn't have to be.
1/2tangentially
A recent addition I've made to my Alonzo plans is to add exceptions.
I was motivated to do so because allocating memory is a foundational building block of computing, which might occasionally fail. Though it might have other uses.
An exception would be non-deterministically returned from a function, & get propagated unless handled. Possibly winding up in your UI. Reading that data again will attempt to recompute the deterministic data.
How does this sound?
2/2 Tangentially!