package body Ics is



    Side_Effect : Integer := 0;       -- IDENT FUNCTION HAS A SIDE EFFECT



    function Ident (X : in Integer) return Integer is

    begin

        Side_Effect := Side_Effect + 1;

        if Side_Effect < 0 then

            return Global;                     -- NEVER EXECUTED

        else

            Side_Effect := Side_Effect - 1;

            return X;

        end if;

    end Ident;





    procedure Let (X : out Integer; Y : in Integer) is

    begin

        Side_Effect := Side_Effect + 1;

        if Side_Effect < 0 then

            X := Global;                        -- NEVER EXECUTED

        else

            X := Y;

        end if;

        Side_Effect := Side_Effect - 1;

    end Let;



end Ics;