with ada.text_io;
package pairpkg is
Unknown_Pair_Error, Pair_Distance_Too_Large: Exception;
type Pair is private;
origin: Constant Pair; -- Deferred constant
function NewPair(x, y: Integer) return Pair;
function toString(p: Pair) return String;
function distanceToOrigin(p: Pair) return Natural;
function distanceBetween(p1, p2: Pair) return Natural;
function reflect(p: in Pair) return Pair;
procedure reflectMe(p: in out Pair);
procedure put(p: in Pair);
procedure put(f: ada.text_io.file_type; p: in Pair);
private
type pair is record
x: Integer;
y: Integer;
end record;
origin: Constant Pair := (0, 0);
end pairpkg;