non_terminalattribute 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.