
is_list_of_vars_or_empty_list(X) :- is_list_of_vars_or_empty_list_Op(X).

:- load_decl(opium_type(name : is_list_of_vars_or_empty_list, scenario : scenario_handler, implementation : is_list_of_vars_or_empty_list_Op, message : 'Type which succeeds for a list of variables, or the empty list.')).

is_list_of_atoms_or_empty_list(X) :- is_list_of_atoms_or_empty_list_Op(X).

:- load_decl(opium_type(name : is_list_of_atoms_or_empty_list, scenario : scenario_handler, implementation : is_list_of_atoms_or_empty_list_Op, message : 'Type which succeeds for a list containing atoms, or an empty list.')).

is_opium_declaration(X) :- is_opium_declaration_Op(X).

:- load_decl(opium_type(name : is_opium_declaration, scenario : scenario_handler, implementation : is_opium_declaration_Op, message : 'Type which succeeds for an opium object (eg. opium_command/9).  The \narity of the predicate must be the arity of the declaration in the source.')).
