Files
mercury/tests/hard_coded/bug513.m
2020-07-15 22:34:30 +10:00

39 lines
767 B
Mathematica

%-----------------------------------------------------------------------------%
% vim: ft=mercury ts=4 sw=4 et
%-----------------------------------------------------------------------------%
:- module bug513.
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.
:- implementation.
:- import_module int.
:- import_module solutions.
:- type apply
---> first
; second
; take(int).
:- pred revert(int::in, apply::out) is multi.
revert(N, Target) :-
( if
( N rem 0x02 = 0x00, Temp = first
; N rem 0x03 = 0x00, Temp = second
)
then
Target = Temp
else
Target = take(N)
).
main(!IO) :-
solutions(revert(5), N),
io.write_line(N, !IO).
:- end_module bug513.