Files
mercury/tests/invalid/ambiguous_method_1.m
Zoltan Somogyi 107a5d42d4 Regularize filenames in tests/invalid.
Like most test directories, tests/invalid contains several groups of
related tests. The names of these tests followed several different patterns:

    x_1, x_2, x_3
    x, x_2, x_3
    x, x2, x3

This diff changes all these groups to follow the first pattern above
by renaming all the relevant tests in the groups that used to follow
one of the other patterns.
2024-05-11 02:21:45 +10:00

42 lines
924 B
Mathematica

%---------------------------------------------------------------------------%
% vim: ts=4 sw=4 et ft=mercury
%---------------------------------------------------------------------------%
:- module ambiguous_method_1.
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.
:- implementation.
:- import_module list.
main(!IO) :-
( if test(intcoll([0]), 1) then
io.write_string("yes\n", !IO)
else
io.write_string("no\n", !IO)
).
:- typeclass coll(C, E) where [
func e = C,
func i(C, E) = C,
pred m(E::in, C::in) is semidet
].
:- type intcoll
---> intcoll(list(int)).
:- instance coll(intcoll, int) where [
(e = intcoll([])),
(i(intcoll(Ns), N) = intcoll([N | Ns])),
m(N, intcoll([N | _])),
m(N, intcoll([_ | Ns])) :- m(N, intcoll(Ns))
].
:- pred test(C, E) <= coll(C, E).
:- mode test(in, in) is semidet.
test(C, E) :-
m(E, i(C, E)).