The type system knows how to copy, assign, and destroy values belonging to any of the registered types.
This basic functionality is used for implementing GValue, a type of generic container that can hold values of any type known by the type system.