package Discr9 is type IArr is Array (Natural range <>) of Integer; type CArr is Array (Natural range <>) of Character; type Var_R (D1 : Boolean; D2 : Boolean) is record case D1 is when True => L : IArr (1..4); M1, M2 : CArr (1..16); when False => null; end case; end record; type R (D1 : Boolean; D2 : Boolean) is record Field : Var_R (D1, D2); end record; procedure Proc (From : in R; To : out R); end Discr9;