% File 'prolog_types.pl'
%----
:- import(prolog_arith).


:- type char == top.
:- type char_code == int.

:- type list(T) --> [] ; [ T | list(T) ].



% The preceeding symbols can be seen as standard built-ins.
% Nevertheless they play an important role in Prolog and often
% they are explicitly given in grammar rules defining the syntax
% of Prolog clauses. (cf. SICStus manual p.166f)


% for Mycroft/O'Keefe compatibiblity,  s. prolog_meta.pl
% type any == top.
% type void == goal.


:- pred @T = @T.					% StdP
:- pred_neg '\\='(@T,@T).				% StdP, infix-op
:- pred @T == @T.					% StdP
:- pred_neg @T1 \== @T2.				% StdP

:- pred unify_with_occurs_check(@T,@T).		        % StdP

:- pred T @=< T.   % top instead of T ?                 % StdP
:- pred T @>= T.					% StdP
:- pred T @>  T.					% StdP
:- pred T @<  T.					% StdP


% control
:- pred abort.
:- pred false.
:- pred true.		% StdP
:- pred fail.		% StdP
:- pred succeed.
:- pred repeat.		% StdP
:- pred halt.		% StdP
:- pred halt(int).		% StdP

:- type term == top.       

:- pred catch(term).		% StdP
:- pred catch(goal,term,term).	% StdP

% I/O
% s. prolog_io


% meta
% s. prolog_meta


% pred 'dynamic'(name_arity).
:- pred dynamic top.

:- pred ensure_loaded(top).



