% $Id: signature.mod,v 1.1 1994/04/27 15:23:27 leavens Exp leavens $
%
% Signatures for for mini Cecil
%
% AUTHOR: Gary T. Leavens

module signature.

kind sig	type -> type.

type empty_signature	(sig T).
type add_type		T -> (sig T) -> (sig T).
type add_message	string -> (list T) -> T -> (sig T) -> (sig T).

type resType		(sig T) -> string -> (list T) -> T -> o.
type is_type		(sig T) -> T -> o.

resType (add_type Typ Sigma) MName Args ResultType :-
	resType Sigma  MName Args ResultType.
resType (add_message MName Args ResultType Sigma ) MName Args ResultType :- !.
resType (add_message MName' Args' ResultType' Sigma) MName Args ResultType :-
	resType Sigma MName Args ResultType.


is_type (add_type Typ Sigma) Typ :- !.
is_type (add_type Typ' Sigma) Typ :- is_type Sigma Typ.
is_type (add_message MName Args ResultType Sigma) Typ :- is_type Sigma Typ.
