Please don’t be shy to use contracted forms of declarations. They can make the program much more readable and they make it easier to add new declarations, because they prevent writing the same text again and again.
However, care should be taken when declaring operators and procedures. In these cases, contracted declarations should only be used when declaring very short, one or two lines long routines. The last routine in the list of joined declarations can be a bit longer.
Examples:
{ Contracted declarations lead to compact and very
readable code }
int disconnected = 0, connected = 0, unknown = 2;
pub ref JSON_Val json_no_val = nil,
ref JSON_Elm json_no_elm = nil;
ref JSON_Fld json_no_fld = nil;
{ Use contracted declarations for short routines }
op + = (States ss, State s) States: MoreStates (heap States := ss, s),
+ = (Transitions ts, Transition t) Transitions:
MoreTransitions (heap Transitions := ts, t)