[NAME] ALL.misc.comparison.enumsym [TITLE] Enum Symbols (C++,Ruby) [DESCRIPTION] Dao supports a data type that is roughly a combination of C++ enum and Ruby symbol type s. Like in C++, enum symbol in Dao can be declared in the following way, 1 enum Boolean { False, True } And zero will be associated with False and one will be associated with True. But unlike in C++, this will not add integer constants named False and True to the curre nt namespace, so they have to be accessed in the following way, 1 bl1 = Boolean::False 2 bl2 = Boolean::True However, the more convenient way to use this type is to use them as symbols. A symbol is an identifier prefixed with a dollar symbol. A symbol is a like a "polymorphic" enum: it can be used freely without being fixed to a particular enum type, but its actually value will depend on the type of the variable that holds it. For example, 1 enum EnumRF{ Real, False } 2 3 A = $False 4 5 B: Boolean = $False 6 C: EnumRF = $False Here A will hold a free symbol $False with value zero. And B will hold a symbol $False of type Boolean with value zero. And C will hold a symbol $False of type EnumRF with value one. The main difference between Dao enum symbol and C++ enum and Ruby symbol is this polymoph ic behavior of Dao enum symbol.