generic

    type Vocabulary_Size is range <>;
    type Program_Length is range <>;

package Halstead_Program_Volume is

    --========================================================================
    -- Halstead V = N * (log n / log 2)
    --========================================================================

    type Result is digits 6;
    procedure Of_Any_Program_Unit (Lc_N : in Vocabulary_Size;
                                   Uc_N : in Program_Length;
                                   V : out Result);

end Halstead_Program_Volume;