
write_canonical(?Term)

   The term Term is written on the stream output in a form that ignores
operator declarations and can be read in.



Arguments
   Term                Prolog term.

Type
   Term I/O

Description
   Used to write the term Term in a form that can be read back independent
   of the current operator declarations.  Atoms and strings are quoted,
   operator declarations are ignored, lists are printed as ./2 structures,
   the (stream-specific or global) print_depth flag is not taken into account,
   variable attributes are printed, and variables are printed with unique
   identifiers.


   write_canonical(Term) is equivalent to printf("%DMOQv.w", Term)
   or write_term(Term, [attributes(full),operators(false),quoted(true),
           dotlists(true),variables(raw),depth(full),transform(false)]).


   Note that as usual, the output is buffered, so it may need to be flushed
   either by closing the output stream, by writing again or by using
   flush/1.




Modes and Determinism
   write_canonical(?) is det

Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

Examples
   
   Equivalent to write_canonical(output, Term).
   (see write_canonical/2 for details).





See Also
   write / 1, write / 2, writeq / 1, writeq / 2, write_canonical / 2
