:- module exist_cons_ho_arg.
:- interface.

:- import_module io.

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

%-----------------------------------------------------------------------------%

:- implementation.

:- type command
    --->    some [T] command(T, pred(T::in) is det).

:- pred foo_pred(int::in) is det.

foo_pred(_).

:- func foo_command = command.

foo_command = 'new command'(0, foo_pred).

main(!IO) :-
    Command = foo_command,
    Command = command(X, Pred),
    Pred(X).
