:- module(my_nlist_int,
          [my_nlist_int/1, test_nlist/2]).

:- use_module(library(filesex)).
:- use_module(library(neck)).
:- use_module(library(assertions)).
:- use_module(library(plprops)).
:- use_module(library(foreign/foreign_interface)).
:- use_module(library(foreign/foreign_props)).
:- init_expansors.
% :- extra_compiler_opts('-O2 -gdwarf-2 -g3 -D__DEBUG_MALLOC__').
:- extra_compiler_opts('-O2 -gdwarf-2 -g3').
:- use_foreign_source('pl-my_nlist_int').
:- include_foreign_dir(include).
:- gen_foreign_library(plbin(lib_my_nlist_int)).

:- pred show_term(+term_t) is fimport. % to help to debug in the c side

show_term(Term) :-
    writeq(user_error, Term),
    nl(user_error).

:- type my_nlist_int/1 + tgen.

my_nlist_int(Node) :- int(Node).
my_nlist_int(List) :- list(my_nlist_int, List).

:- pred test_nlist(+my_nlist_int, -my_nlist_int) is (foreign, memory_root).
