package pkg is type enum is ('a', 'b', 'c'); type enum_vec is array (natural range <>) of enum; function resolved (v : enum_vec) return enum; subtype res_enum is (resolved) enum_vec; end pkg; package body pkg is function resolved (v : enum_vec) return enum is begin return v (v'left); end resolved; end; use work.pkg.all; entity repro is port (p : inout res_enum (3 downto 0)); end repro; architecture behav of repro is alias p_0 is p(0); begin p_0 <= 'a' after 1 ns, 'b' after 4 ns; end behav;