Safe object initialization

Local variables should be initialized before being used as in most modern languages.

All fields should be either initialized in their declarations or in the constructors. There are restrictions on the values used in the initialization in the declaration and several restrictions on the constructors for avoiding the use of non-initialized fields. Although the mechanism is not full-proof, it covers all but very uncommon cases. In some rare cases in which a field is going to be used before initialization, there is a runtime error. See the Cyan manual for more details.