Very cool! Hadn't heard of Juniper before. Do you use something like regions to group and inline memory allocations?
Can you elaborate? Do you mean something like closures and function pointers will be distinguished, with closures essentially being something like an existential package paired with a function pointer? ie. ∃'x.'x * 'a -> 'b