System and method for automatic versioning and data mutation for
user-defined data types. A program development environment may be
operable to: create a first version of a data type definition in response
to user input; instantiate and store an object of the first version of
the data type, optionally including a version identifier indicating the
version of the object; modify the first version of the data type
definition in response to user input, thereby creating a second version
of the data type definition; load the object from storage; and
automatically (without user intervention) modify the object to conform to
the second version of the data type definition. Successive modifications
of the data type definition may generate successive versions of the data
type. Objects instantiated and stored according to a previous version of
the data type may be loaded from storage and automatically modified to
conform to a specified subsequent version.