namespace System;
using System.Threading;
/// A reference that doesn't keep its value: what it reaches may be gone
/// (Rust's `Weak`, .NET's `WeakReference<T>`).
[Intrinsic]
[Threads(ThreadSafety.Shared)]
public readonly sealed class Weak<T> {
public Weak(T value) {}
/// The value, while something still keeps it.
public readonly T? TryGet();
}