program ForwardTest{

    forward
    {
        function f1(Integer i):void;
        function f2(Integer i):void;
    }

    function Main():void;
    {
        try
        {
            f2(10);
        }catch
        {
            writeLn("Error: StackOverflow");
        }
    }

    function f1(Integer i):void;
    {
        if(i > 0)
        {
            writeLn("in f1 'i' = "+i);
            f2(i-1);
        }
    }

    function f2(Integer i):void;
    {
        if(i > 0)
        {
            writeLn("in f2 'i' = "+i);
            f1(i-1);
        }
    }
}