1package body Self is
2   function G (X : Integer) return Lim is
3   begin
4      return R : Lim := (Comp => X, others => <>);
5   end G;
6
7   procedure Change (X : in out Lim; Incr : Integer) is
8   begin
9      X.Comp := X.Comp + Incr;
10      X.Self_Default.Comp := X.Comp + Incr;
11      X.Self_Anon_Default.Comp := X.Comp + Incr;
12   end Change;
13
14   function Get (X : Lim) return Integer is
15   begin
16      return X.Comp;
17   end;
18end Self;
19