In ULC, Variable parts have work to do that standard VisualAge Variable parts do not. ULC Variable parts must be able to communicate with both ULC and standard Smalltalk classes, for example, pre-existing business domain objects. This task is complicated by the need for compile-time resolution of run-time UI/application connections under ULC. The UlcVariable class (which appears on the palette as the Variable part) does this largely without your having to be concerned with what is happening.
The type of a ULC variable cannot be changed at run time. However, the contents can be changed at any time as long as the new value is of the correct type. nil is also a valid object for variables of any type.