:- object(square(Side), extends(rectangle(Side, Side))). :- info([ authors is 'Paulo Moura', version is 1.0, date is 2000/4/22, comment is 'Parametric object for representing geometric squares.', parnames is ['Side']]). :- public(side/1). :- mode(side(?number), zero_or_one). :- info(side/1, [ comment is 'Square side.', argnames is ['Side']]). side(Side) :- parameter(1, Side). width(Width) :- parameter(1, Width). height(Height) :- parameter(1, Height). :- end_object.