

node lent(coeff:int) returns (y:int)
let
  y = do_stuff(coeff);
tel


node rapide<<size:int>>() returns (z:int)
var y,cpt : int; big_step : bool;
let
  big_step = cpt = 0;
  cpt = size fby (if big_step then size else cpt - 1);
  y = merge big_step
        (true  -> 0 -> (pre (lent(size))))
  (false -> 0 fby y when false(big_step));
  z = do_stuff(1) - y;
tel


node main() returns(r: int)
let
  r = rapide<<1000>>();
tel
