node cross<<l:int>>(x:int) returns (y:int; c:bool)
let
  c = x = l;
  y = x when c;
tel

node main() returns (z:int)
var x,y,t : int; c : bool;
let
  x = -5 fby x + 1;
  y = 0 fby (y+1);
  (t,c) = cross<<4>>(x);
  z = merge c (true -> y + t) (false -> 0)
tel

