6.4. Uniting {Uniting does not change the mode of the run-time value yielded by a construct, but simply gives more freedom to it. That value must be acceptable to not just that one mode, but rather to the whole of a given set of modes. However, after uniting, that value may be subject to a primitive action only after being dynamically tested in a conformity-clause {3.4.1.q }; indeed, no primitive action can be programmed with a construct of a 'UNITED' mode (except to assign it to a UNITED-variable, of course).
Example:
UNION(BOOL, CHAR) t, v;
t := "a"; t := TRUE; v := t
.
6.4.1. Syntax a) united to{61B } UNITED FORM : MEEK{61C} MOID FORM, where MOID unites to UNITED{b}.
b) WHETHER MOID1 unites to MOID2{a,34i ,71m} : where MOID1 equivalent MOID2{73a } , WHETHER false ; unless MOID1 equivalent MOID2{73a } , WHETHER safe MOODS1 subset of safe MOODS2{73l,m,n } , where (MOODS1) is (MOID1) or (union of MOODS1 mode) is (MOID1), where (MOODS2) is (MOID2) or (union of MOODS2 mode) is (MOID2). {Examples:
}