Reduceron
Reduceron copied to clipboard
York Lava is unsafe
York Lava uses unsafePerformIO to implement Observable Sharing, but unsurprisingly this is extremely fragile. It currently can break down when experimenting in the interpreter, leading to bizarrely malfunctioning RTL from correct Lava. It only works so far because of the GHC options -fno-cse -fno-full-laziness. It seems a little scary to depend on these.
At the moment it's not clear how to fix this without disruptive changes to Lava.
Kansas Lava have a better solution based on the new StableNames features, which alas is completely GHC proprietary. Still, porting to Kansas Lava may bring other upsides?
The other obvious solution is to change York Lava to use StableNames as well. I'm investigating that.