:- 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]
).