t.is_null() is the same as t.C_ == PlTerm::nullt.not_null() is the same as t.C_ != PlTerm::nullt.reset() is the same as t.C_ = PlTerm::nullt.reset(x) is the same as t.C_ = xPL_VARIABLE, PL_FLOAT, PL_INTEGER,
PL_ATOM, PL_STRING or PL_TERM
To avoid very confusing combinations of constructors and therefore
possible undesirable effects a number of subclasses of PlTerm
have been defined that provide constructors for creating special Prolog
terms. These subclasses are defined below.