print_message/2  [hookable]print_message(+Severity, +MessageTerm)
   
Print a Message of a given Severity. The behavior can be
customized using the hooks user:portray_message/2,
user:generate_message_hook/3 and user:message_hook/3.
Unless the default system portrayal is overidden with
user:message_hook/3, Severity must be one of:
          
informationalwarningerrorhelpquerysilentFirst print_message/2 calls user:portray_message/2 with
the same arguments.  If this does not succeed, the message is
processed in the following phases:
     
user:generate_message_hook/3 is tried, then if it
does not succeed, 'SU_messages':generate_message/3 is called. 
The latter predicate is defined in terms of definite clause grammars
in library('SU_messages').  If that also does not succeed, then
the built-in default conversion is used, which gives the following
result:
     ['~q'-[Message],nl]
user:message_hook/3 is tried, then, if it does not
succeed, the built-in predicate print_message_lines/3 is
called for the user_error stream. 
An unhandled exception message E calls
print_message(error, E) before returning to the top
level.  The convention is that an error message is the result of an
unhandled exception.  Thus, an error message should only be printed if
raise_exception/1 does not find a handler and unwinds to the
top-level.
   
All messages from the system are printed using this predicate. Means of intercepting these messages before they are printed are provided.
print_message/2 always prints to user_error. Messages can be
redirected to other streams using user:message_hook/3 and
print_message_lines/3
   
Silent messages do not get translated or printed, but they can be
intercepted with user:portray_message/2 and user:message_hook/3.
instantiation_errortype_errordomain_error