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