*  recgo.ref

$ENTRY Go {
   = <TimeElapsed 0 >
     <A <Arg 1>  > ;
 }

T {
  = <Prout (' ' <Step > ' ') ' ' <TimeElapsed >  >;
 }

A {
 e.1 = <Prout e.1> <B (e.1) (<A1 e.1>) >;
 }

A1 {
   = ;
  '1' e.1 = ( ) <A1 e.1>;
 }

B {
 (e.1) (e.2) = <B1 (e.1) (<Next (e.1) e.2>) >;
 }

Next {
   (e.1) (e.1) e.3 = ( ) <Next (e.1) e.3>;
   (e.1) = End ;
   (e.1) (e.2) e.3 = (e.2 '1') e.3;
 }

B1 {
  (e.1) (e.2 End) = <Prout 'End'> <T >;
  (e.1) (e.2) = <Proutt (e.2) <RecNumb e.2>> <B (e.1) (e.2)>;
 }

Proutt {
 e.2 F = ;
 (e.2) T = <Prout e.2>;
 e.2     = <Prout e.2>;
 }

RecNumb {
   e.1 = <Rec ( ) e.1>;
 }

Rec {
  (e.1)  =  e.1;
  (e.1) e.3 (e.2) = <Rec1 (e.2) <Rec ((e.2) e.1) e.3> >;
 }

Rec1 {
  ( ) = ;
  ('1' e.1) ( ) e.3 = <Rec1 (e.1) e.3>;
  (e.1) ('1' e.2) e.3 = (e.2) <Rec1 (e.1) e.3>;
  e.1 = F ;
 }