A listing is produced by enumerating the clauses of the predicate using clause/2 and printing each clause using portray_clause/1. This implies that the variable names are generated (A, B, ... ) and the layout is defined by rules in portray_clause/1.
?- listing.lists clauses in the default
?- lists:listing.lists the clauses in the module
<Head> :- <Body>'. Facts are represented as `
<Head> :- true' or simply
<Head>. Variables in the clause are written as A, B, ... . Singleton variables are written as
_. See also portray_clause/2.