The effect of the INPUT declaration is to make an assignment from the actual parameters to the corresponding formal parameters. Thus, in instance ``bit0'', the declaration
INPUT carry_in, clear : boolean;has the effect of assigning
bit0.carry_in := carry[0]; bit0.clear := clear;
Similarly, the effect of the OUTPUT declaration is to make an assignment from the formal parameters to the corresponding actual parameters. Thus, in instance ``bit0'', the declaration
OUTPUT bit_out, carry_out : boolean;has the effect of assigning
count[0] := bit0.bit_out; carry[1] := bit0.carry_out;