----------------------------------------------------------------------
-- node Alternate
-- input: integer stream X
-- output: integer stream Y
-- Y starts at X and keeps alternating between the curren
-- and the initial value of X
----------------------------------------------------------------------

node Alternate( X : int ) returns ( Y : int );
var A : bool;
    X1 : int;
let
   A = false -> not (pre A);
   X1 = X -> pre X1; 
   Y = X -> if A then X else X1;
tel