public fun makeLazy (f) { local value, set = false; fun () { if set then value else set := true; value := f (); value fi } } public fun force (f) { f () }