(* tra04.h9.element.p SJ *)

module element interface;

export element = ( element, nullelement, printelement,
	elementless, elementsame, copyelement);

type element = integer;

const nullelement = 0;

procedure printelement(x : element);
function elementless(x, y : element) : boolean;
function elementsame(x, y : element) : boolean;
function copyelement(x : element) : element;

end.

module element implementation;

procedure printelement(x : element);
begin
	write(x);
end;

function elementless(x, y : element) : boolean;
begin
	elementless := x < y;
end;

function elementsame(x, y : element) : boolean;
begin
	elementsame := x = y;
end;

(* jos elementti on monimutkainen, tässä joudutaan tekemään muutakin *)
function copyelement(x : element) : element;
begin
	copyelement := x;
end;

end. (* module element *)
