with Candidates.Containers; private with Ada.Containers; generic Above_Ballot : Candidates.Containers.Above_Line_Ballot; Below_Ballot : Candidates.Containers.Below_Line_Ballot; package Preferences is subtype Preference_Range is Positive range 1 .. Integer (Below_Ballot.Length); type Preference_Array is array (Preference_Range) of Candidates.Extended_CandidateID; pragma Pack (Preference_Array); Empty_Array : constant Preference_Array := (others => Candidates.No_Candidate); function Parse_Preferences (Input : in String) return Preference_Array; private Min_Above_Line : constant Positive := 1; Min_Below_Line : constant Positive := 6; subtype Above_Range is Ada.Containers.Count_Type range 1 .. Above_Ballot.Length; type Above_Pref_Array is array (Above_Range) of Natural; subtype Below_Range is Ada.Containers.Count_Type range 1 .. Below_Ballot.Length; type Below_Pref_Array is array (Below_Range) of Natural; end Preferences;