private with Ada.Containers.Vectors; package WL.Random.Names is type Name_Generator is private; procedure Load_Lexicon (Generator : out Name_Generator; Vowels_Path : String; Consonants_Path : String); function Load_Lexicon (Vowels_Path : String; Consonants_Path : String) return Name_Generator; function Random_Name (Generator : Name_Generator) return String; private type Lexeme_Info is record Lexeme : String (1 .. 3) := (others => ' '); Can_Middle : Boolean := True; Can_Begin : Boolean := True; Can_End : Boolean := True; end record; package Lexeme_Info_Vectors is new Ada.Containers.Vectors (Positive, Lexeme_Info); type Name_Generator is record Vowels : Lexeme_Info_Vectors.Vector; Consonants : Lexeme_Info_Vectors.Vector; end record; end WL.Random.Names;