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;