A Value object (value) is a wrapper around a
data value. There are different value types for different datatypes. For example, an
IntValue has an integer, a StringValue has a string, a DateValue has a date,
etc. A value can convert its value to a variety of datatypes, and format it.
A value list has a list of Value objects. A ValueListValue is a Value that
wraps a value list.