signature MLTON_WEAK =
sig
type 'a t
val get: 'a t -> 'a option
val new: 'a -> 'a t
end
A weak pointer is a pointer to an object that is nulled if the object
becomes unreachable due to garbage collection. The
weak pointer does not itself cause the object it points to be retained
by the garbage collector — only other strong pointers can do that.
For objects that are not allocated in the heap, like integers, a weak
pointer will always be nulled. So, if w: int Weak.t
, then
Weak.get w = NONE
.
-
type 'a t
the type of weak pointers to objects of type
'a
-
get w
returns
NONE
if the object pointed to byw
no longer exists. Otherwise, returnsSOME
of the object pointed to byw
. -
new x
returns a weak pointer to
x
.