Files
mercury/tests/invalid/ho_default_func_3.m
Julien Fischer f3a34e4651 Replace uses of __ as a module qualifier.
samples/muz.zbstract.m:
tests/*/*.m:
    As above.
2022-04-14 20:25:10 +10:00

42 lines
800 B
Mathematica

%---------------------------------------------------------------------------%
% vim: ts=4 sw=4 et ft=mercury
%---------------------------------------------------------------------------%
%
% Compiling this module should generate an error message since
% it tries to cast a non-standard func inst to ground.
:- module ho_default_func_3.
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.
:- implementation.
:- import_module int.
:- import_module univ.
main(!IO) :-
baz(foo, F),
io.write_int(F(42), !IO),
io.nl(!IO).
:- func foo(int) = int.
foo(X) = X + 1.
:- func bar(int) = int.
:- mode bar(di) = uo is det.
bar(X) = X.
:- pred baz(T::in, T::out) is det.
baz(X, Y) :-
( if univ_to_type(univ(bar), Y0) then
Y = Y0
else
Y = X
).