----------------------------------------------------------------------
-- node Adder
----------------------------------------------------------------------
node Adder (A,B,Cin : bool) returns (S,Cout : bool);
let
  S = A xor B xor Cin;
  Cout = (A and B) or
         (B and Cin) or
         (A and Cin);
tel


----------------------------------------------------------------------
-- node FourbitAdder
-- multiple instances of the same node
-- local variables
-- tuple returns
----------------------------------------------------------------------
node FourbitAdder (A3,A2,A1,A0,B3,B2,B1,B0,Cin:bool) 
returns (Cout,S3,S2,S1,S0:bool);
  var C2,C1,C0:bool;
let
  (S0,C0) = Adder(A0,B0,Cin);
  (S1,C1) = Adder(A1,B1,C0);
  (S2,C2) = Adder(A2,B2,C1);
  (S3,Cout) = Adder(A3,B3,C2);
tel