package Geometry is -- ignoring private for simplicity type Shape is ABSTRACT TAGGED record x, y: float; end record; function area(s: Shape) return float is ABSTRACT; end Geometry;