In Self 4.0, people write programs by directly constructing webs of ob
jects in a larger world of objects. But in order to save or share thes
e programs, the objects must be moved to other worlds. However, a conc
rete, directly constructed program is incomplete, in particular missin
g five items of information: which module to use, whether to transport
an actual value or a counterfactual initial value, whether to create
a new object in the new world or to refer to an existing one, whether
an object is immutable with respect to transportation, and whether an
object should be created by a low-level, concrete expression or an abs
tract, type-specific expression. In Self 4.0, the programmer records t
his extra information in annotations and attributes. Any system that s
aves directly constructed programs will have to supply this missing in
formation somehow.