Examples (GNAT Reference Manual)

#### 17.2.2.4 Examples ¶

    declare
       type Point is record
          X, Y : Integer;
       end record;

       type Segment is array (1 .. 2) of Point;
       type Triangle is array (1 .. 3) of Segment;

       S : Segment := (1 .. 2 => (0, 0));
       T : Triangle := (1 .. 3 => (1 .. 2 => (0, 0)));
    begin
       S := (S with delta (1).X | (2).Y => 12, (1).Y => 15);

       pragma Assert (S (1).X = 12);
       pragma Assert (S (2).Y = 12);
       pragma Assert (S (1).Y = 15);

       T := (T with delta (2)(1).Y => 18);
       pragma Assert (T (2)(1).Y = 18);
    end;