type Pointer … // Make creates a weak pointer from a strong pointer to some value of type T. func Make[T any](ptr *T) Pointer[T] { … } // Strong creates a strong pointer from the weak pointer. // Returns nil if the original value for the weak pointer was reclaimed by // the garbage collector. // If a weak pointer points to an object with a finalizer, then Strong will // return nil as soon as the object's finalizer is queued for execution. func (p Pointer[T]) Strong() *T { … } //go:linkname runtime_registerWeakPointer func runtime_registerWeakPointer(unsafe.Pointer) unsafe.Pointer //go:linkname runtime_makeStrongFromWeak func runtime_makeStrongFromWeak(unsafe.Pointer) unsafe.Pointer