:- set_prolog_flag(flowlog_engine, wam).

p.

ok :-
    bounds_possible([1, 2, 3, 4], 2, 3),
    \+ bounds_possible([1, 2, 3, 4], 2, 100),

    current_rule(true/0),
    current_rule(p/0),
    \+ current_rule(no_such_pred/0),

    flowlog_cpuproc_id(CP), integer(CP),
    flowlog_n_cpuproc(NCP), integer(NCP),
    flowlog_in_cpuproc(In), (In == true ; In == false),
    flowlog_taskjob_id(TJ), integer(TJ),
    flowlog_n_taskjob(NTJ), integer(NTJ),
    flowlog_last_tc_cp_mask(Mask), integer(Mask),
    flowlog_last_tc_cp_count(Cnt), integer(Cnt),
    flowlog_last_tc_worker_count(WC), integer(WC),
    flowlog_last_tc_start_ok(Ok), integer(Ok),
    flowlog_last_tc_start_error_code(EC), integer(EC),
    flowlog_last_tc_start_error_text(ET), atom(ET),
    flowlog_db_epochs(CE, IE), integer(CE), integer(IE),

    flowlog_and_safe(p/0, Safe0), (Safe0 == true ; Safe0 == false),
    flowlog_and_safe_goal(p, SafeG0), (SafeG0 == true ; SafeG0 == false),

    current_output(S0),
    open('/dev/null', write, S),
    set_output(S),
    listing,
    listing(p),
    set_output(S0),
    close(S).
