type Lazy<'T> = | Lazy of 'T ref static member RefValue(Lazy a) = a member l.Force() = (Lazy.RefValue l) |> (!) let lazyValue = Lazy (ref 10) let res = lazyValue.Force()