% "Hello World" in Mercury.
:- module hello.


:- interface.
:- import_module io.

:- pred main(io::di, io::uo) is det.


:- implementation.

main(!IO) :-
    io.write_string("Hello, world\n", !IO).

:- pred filter(pred(T), list(T), list(T), list(T) ).
:- mode filter(in(pred(in) is semidet), in, out, out ) is det.

filter(_, [], [], []).
filter(P, [X | Xs], Ys, Zs) :-
    filter(P, Xs, Ys0, Zs0),
    ( if P(X)   then    Ys = [X | Ys0],   Zs = Zs0
                else    Ys = Ys0      ,   Zs = [X | Zs0]
    ).