Overview

Because all values in MUFL are immutable, no possibility of a reference loop inside values exists, so garbage collection is unnecessary. Values not referenced by any variable or code are automatically destroyed by the evaluation environment.

MUFL References

MUFL references refer to data by name rather than by value. Consequently, they don’t hold a memory lock on the data to which they refer. For example:

X = (1->"hello"). // Construct a 1-element dictionary. 
Y = &(X 1). // Construct a reference to element in X with key '1'
X 1->"world". // Mutate 'X' such that key '1' now refers to value "world". 
_assert (#Y == "world"). // Reference Y now returns the new value of element '1'