The default message generation predicates are located in the
library('SU_messages') file, in the
module, together with other message and query related
predicates. This is advantageous when these predicates have
to be changed as a whole (for example when translating all messages to
another language), because this can be done simply by replacing the file
library('SU_messages') by a new one.
In the message generation phase three alternative methods are tried:
generate_message_hook/3is executed, if it succeeds, then it is assumed to deliver the output of this phase.
The hook predicate
generate_message_hook/3 can be used to
override the default behavior, or to handle new messages defined by the
programmer that do not fit the default message generation schemes.
The latter can also be achieved by adding new clauses to the
If both the hook and the default method refuses to handle the message, then the following simple format-command list is generated from the abstract message term Message:
This will result in displaying the abstract message term itself, as if
For messages of the severity
silent the message generation phase
is skipped, and the
 format-command list is returned as