To do any of that justice, you end up with a language that looks basically like Haskell. So why not just use Haskell?
> On Aug 22, 2014, at 1:11 PM, gael.mc...@gmail.com wrote: > > I'm not familiar with lazy evaluation (I've not used any language > implementing it). But I was wondering... > > Why not have a 'calculate_now' function to let the programmer choose when a > result is guaranteed to be calculated? Otherwise, resort to lazy > representations. > > There could be some heuristic also: if at least one of the original object is > freed by the GC, perform all the calculations depending on it. > > That could also be simpler: defer actual calculations until the end of the > current block.