non_terminal
attribute on the predicate. This
indicates that the predicate implements a grammar rule.
Currently, predicates that are exported using Name//Arity
syntax are flagged as non-terminals. Ideally we should add this flag to
any predicate created from the expansion of a -->
rule, but that is difficult without breaking compatibility for programs
that reason about
expand_term/2,4.