exception Already_forced let nondef () = lazy ( raise Lazy.Undefined ) let set (dest:'a Lazy.t) (src:'a Lazy.t) = (if Obj.tag dobj <> Obj.lazy_tag || Obj.tag sobj <> Obj.lazy_tag then raise Already_forced else Obj.set_field dobj 0 (Obj.field sobj 0)) where {dobj = Obj.repr dest and sobj = Obj.repr src}