node f(c:bool) = (o:int)
var last t:int^100 = 1^100;
let
  t = merge c ((last t) when c) ([((last t) whenot c) with [0] = 0]);
  o = t[0];
tel

node main() returns (o:int)
var c:bool;
let
  c = true fby true fby false fby c;
  o = f(c);
tel
