%---------------------------------------------------------------------------%
% vim: ts=4 sw=4 et ft=mercury
%---------------------------------------------------------------------------%
%
% Abother test for circular equivalence insts.
% This test is the same as circ_inst_2.m except that we
% also have a predicate which makes use of the insts.
%

:- module circ_mode_4.

:- interface.
:- import_module list.

:- mode circ1(I) == circ1(I).               % error -- cyclic
:- mode circ2(I) == circ2(list_skel(I)).    % error -- cyclic

:- mode left(I) == right(I).                % error -- cyclic
:- mode right(I) == left(I).                % error -- cyclic

:- pred p(int, int, int, int).
:- mode p(circ1(ground), circ2(ground),
    left(ground), right(ground))
    is det.

:- implementation.

p(A, A, B, B).
