package Dollars_And_Cents is

    type Dollars is private;

    -- Parses a string into a dollar value.
    --
    -- Legal string inputs are of the form  $0000.00.
    -- There MUST be two digits to the right of the decimal point.
    -- There can be any number of digits to the left of the decimal point.
    -- The dollar sign may or may not be present and there can be spaces
    -- between it and the first digit.
    function Value (String_Image : String) return Dollars;

    -- Generates an image of a dollar value with the specified width.
    -- The dollar sign (if added) is flush left.
    function Image (D : Dollars;  
                    Field_Width : Positive;  
                    Add_Dollar_Sign : Boolean := True) return String;

    function "+" (D1, D2 : Dollars) return Dollars;
    function "-" (D1, D2 : Dollars) return Dollars;
private
    type Dollars is new Integer;

end Dollars_And_Cents;