:- ensure_loaded(typeops).
% :- typical_intern(assert(alltrace)).

% examples for simplication of declarations

%+++++++++++++++++++++ type imports and definitions +++++++++++++++++++ 

:- import(prolog_io).

%----------------------------

:- type a.
:- type b.


%+++++++++++++++++++++++++++++ declarations  +++++++++++++++++++++++ 

% test

% simplify declarations


:- pred p(T).
% is identical with p( @T' )

:- pred q(T,T).  
% is identical with q( @T1, @T2) -> T1 =< T, T2 =< T.

:- pred r(a,T) -> T =< b. 
% is identical with r(a,@T1) -> T1 =< b.

:- pred r2(a,T,T) -> T =< b.
% is identical with r2(a, @T1, @T2) -> T1 =< T, T2 =< T, T =< b.

:- pred s(a,T) -> T =< T.
% is identical with s(a, @T1).

:- pred s2(a,T).







