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 tthe type of weak pointers to objects of type
'a -
get wreturns
NONEif the object pointed to bywno longer exists. Otherwise, returnsSOMEof the object pointed to byw. -
new xreturns a weak pointer to
x.