begin 
   comment This example fails with marst 2.3 because of incorrect
      generation of references to procedure blocks in some rare cases
      (however it works with marst 2.4). This program was provided by
      Jan van Katwijk <J.vanKatwijk@ITS.TUDelft.NL>;
   comment Note that due to very deep recursion at run-time the stack
      size should be large enough (about 8 Mb);
   integer I;
   integer procedure a (K, X1, X2, X3, X4, X5);
   value K; integer K, X1, X2, X3, X4, X5;
   begin 
      integer procedure b;
      begin 
         K := K - 1;
         a := b := a (K, b, X1, X2, X3, X4)
      end;
      if K <= 0 then a := X4 + X5 else b
   end;
   for I := 1 step 1 until 15 do 
   begin 
      OUTINTEGER (1, a (I, 1, -1, -1 , 1 , 1));
      OUTSTRING (1, "\N")
   end 
end