with Candidates; with Rationals; private with Ada.Containers.Vectors; generic Number_Of_Candidates : Positive; package Bundles is type Bundle is private; subtype Preference_Array is array (1 .. Number_Of_Candidates) of Candidates.CandidateID; Empty_Bundle : constant Bundle; procedure Add (To : in out Bundle; Item : in Preference_Array); procedure Transfer (From, To : in out Bundle; Value : in Rationals.Fraction); function Count (This : in Bundle) return Natural; private type Paper_Lot is record How_Many : Positive := 1; Prefs : Preference_Array; end record; type Bundle is record Empty_Bundle := end Bundles;