 
 
 
| SorA is a variable | instantiation_error | |
| Options is a partial list or a list with an element E which is a variable | instantiation_error | |
| SorA is neither a variable nor a stream-term or alias | domain_error(stream_or_alias, SorA) | |
| Options is neither a partial list nor a list | type_error(list, Options) | |
| an element E of the Options list is neither a variable nor a valid read option | domain_error(read_option, E) | |
| SorA is not associated with an open stream | existence_error(stream, SorA) | |
| SorA is an output stream | permission_error(input, stream, SorA) | |
| SorA is associated with a binary stream | permission_error(input, binary_stream, SorA) | |
| SorA has stream properties end_of_stream(past) and eof_action(error) | permission_error(input, past_end_of_stream, SorA) | |
| a syntax error occurs and the value of the syntax_error Prolog flag is error (section 6.22.1) | syntax_error(atom explaining the error) | |
| SorA is a variable | instantiation_error | |
| Atom is neither a variable nor an atom | type_error(atom, Atom) | |
| Integer is neither a variable nor an integer | type_error(integer, Integer) | |
| Number is neither a variable nor a number | type_error(number, Number) | |
| SorA is neither a variable nor a stream-term or alias | domain_error(stream_or_alias, SorA) | |
| SorA is not associated with an open stream | existence_error(stream, SorA) | |
| SorA is an output stream | permission_error(input, stream, SorA) | |
| SorA is associated with a binary stream | permission_error(input, binary_stream, SorA) | |
| SorA has stream properties end_of_stream(past) and eof_action(error) | permission_error(input, past_end_of_stream, SorA) | |
| a syntax error occurs and the value of the syntax_error Prolog flag is error (section 6.22.1) | syntax_error(atom explaining the error) | |
| SorA is a variable | instantiation_error | |
| SorA is neither a variable nor a stream-term or alias | domain_error(stream_or_alias, SorA) | |
| SorA is not associated with an open stream | existence_error(stream, SorA) | |
| SorA is an output stream | permission_error(input, stream, SorA) | |
| SorA is associated with a binary stream | permission_error(input, binary_stream, SorA) | |
| SorA has stream properties end_of_stream(past) and eof_action(error) | permission_error(input, past_end_of_stream, SorA) | |
| a syntax error occurs and the value of the syntax_error Prolog flag is error (section 6.22.1) | syntax_error(atom explaining the error) | |
| FileName is neither a variable nor an atom | type_error(atom, FileName) | |
| Line is neither a variable nor an integer | type_error(integer, Line) | |
| Column is neither a variable nor an integer | type_error(integer, Column) | |
| Error is neither a variable nor an atom | type_error(atom, Error) | |
| Line is neither a variable nor an integer | type_error(integer, Line) | |
| Column is neither a variable nor an integer | type_error(integer, Column) | |
| '$VAR'(0) | is written as A | |
| '$VAR'(1) | is written as B | |
| ... | ||
| '$VAR'(25) | is written as Z | |
| '$VAR'(26) | is written as A1 | |
| '$VAR'(27) | is written as B1 | |
| SorA is a variable | instantiation_error | |
| Options is a partial list or a list with an element E which is a variable | instantiation_error | |
| Options is neither a partial list nor a list | type_error(list, Options) | |
| SorA is neither a variable nor a stream-term or alias | domain_error(stream_or_alias, SorA) | |
| an element E of the Options list is neither a variable nor a valid write-option | domain_error(write_option, E) | |
| SorA is not associated with an open stream | existence_error(stream, SorA) | |
| SorA is an input stream | permission_error(output, stream, SorA) | |
| SorA is associated with a binary stream | permission_error(output, binary_stream, SorA) | |
| Format sequence | type of the argument | Description | 
| ~a | atom | print the atom without quoting | 
| ~Nc | character code | print the character associated to the code. N is the number of times to print the character (default: 1) | 
|  ~Nf
 ~Ne ~NE ~Ng ~NG | float expression | pass the argument Arg and 
 N to the C printf()
 function as: if N is not specified printf("%f",Arg) else printf("%.Nf",Arg). Similarly for ~Ne, ~NE, ~Ng and ~NG | 
| ~Nd | integer expression | print the argument. N is the number of digits after the decimal point. If N is 0 no decimal point is printed (default: 0) | 
| ~ND | integer expression | identical to ~Nd except that ',' separates groups of three digits to the left of the decimal point | 
| ~Nr | integer expression | print the argument according to the radix N. 2 £ N £ 36 (default: 8). The letters a-z denote digits > 9 | 
| ~NR | integer expression | identical to ~Nr except that the letters A-Z denote digits > 9 | 
| ~Ns | character code list | print exactly N characters (default: the length of the list) | 
| ~NS | character list | print exactly N characters (default: the length of the list) | 
| ~i | term | ignore the current argument | 
| ~k | term | pass the argument to write_canonical/1 (section 6.14.6) | 
| ~p | term | pass the argument to print/1 (section 6.14.6) | 
| ~q | term | pass the argument to writeq/1 (section 6.14.6) | 
| ~w | term | pass the argument to write/1 (section 6.14.6) | 
| ~~ | none | print the character '~' | 
| ~Nn | none | print N new-line characters (default: 1) | 
| ~N | none | print a new-line character if not at the beginning of a line | 
| ~? | atom | use the argument as a nested format string | 
| %F | atom, integer or float expression | interface to the C function printf(3) for outputting atoms (C string), integers and floating point numbers. * are also allowed. | 
| SorA is a variable | instantiation_error | |
| Format is a partial list or a list with an element E which is a variable | instantiation_error | |
| Arguments is a partial list | instantiation_error | |
| Format is neither a partial list nor a list or an atom | type_error(list, Format) | |
| Arguments is neither a partial list nor a list | type_error(list, Arguments) | |
| an element E of the Format list is neither a variable nor a character code | representation_error(character_code, E) | |
| SorA is neither a variable nor a stream-term or alias | domain_error(stream_or_alias, SorA) | |
| an element E of Format is not a valid format control sequence | domain_error(format_control_sequence, E) | |
| the Arguments list does not contain sufficient elements | domain_error(non_empty_list, []) | |
| an element E of the Arguments list is a variable while a non-variable term was expected | instantiation_error | |
| an element E of the Arguments list is neither variable nor an atom while an atom was expected | type_error(atom, E) | |
| an element E of the Arguments cannot be evaluated as an arithmetic expression while an integer or a floating point number was expected | an arithmetic error (section 6.6.1) | |
| an element E of the Arguments list is neither variable nor character code while a character code was expected | representation_error(character_code, E) | |
| SorA is not associated with an open stream | existence_error(stream, SorA) | |
| SorA is an input stream | permission_error(output, stream, SorA) | |
| SorA is associated with a binary stream | permission_error(output, binary_stream, SorA) | |
| Clause is a variable | instantiation_error | |
| Clause is neither a variable nor a callable term | type_error(callable, Clause) | |
| SorA is a variable | instantiation_error | |
| SorA is neither a variable nor a stream-term or alias | domain_error(stream_or_alias, SorA) | |
| SorA is not associated with an open stream | existence_error(stream, SorA) | |
| SorA is an input stream | permission_error(output, stream, SorA) | |
| SorA is associated with a binary stream | permission_error(output, binary_stream, SorA) | |
| Stream is not a variable | type_error(variable, Stream) | |
| Specifier | Type | Associativity | 
| fx | prefix | no | 
| fy | prefix | yes | 
| xf | postfix | no | 
| yf | postfix | yes | 
| xfx | infix | no | 
| yfx | infix | left | 
| xfy | infix | right | 
| Priority | Specifier | Operators | 
| 1200 | xfx | :-  --> | 
| 1200 | fx | :- | 
| 1100 | xfy | ; | 
| 1050 | xfy | -> | 
| 1000 | xfy | , | 
| 900 | fy | \+ | 
| 700 | xfx | =  \=  =..  ==  \==  @<
 @=<  @>  @>=  is  =:=  =\=  <  =<  >  >= | 
| 500 | yfx | +  -  /\  \/ | 
| 400 | yfx | *  /  //  rem  mod  <<
 >> | 
| 200 | xfy | **  ^ | 
| 200 | fy | +  -  \ | 
| Priority | Specifier | Operators | 
| 750 | xfy | #<=>  #\<=> | 
| 740 | xfy | #==>  #\==> | 
| 730 | xfy | ##  #\/  #\\/ | 
| 720 | yfx | #/\  #\/\ | 
| 710 | fy | #\ | 
| 700 | xfx | #=  #\=  #<  #=<
 #>  #>=  #=#  #\=#  #<#  #=<#  #>#
 #>=# | 
| 500 | yfx | +  - | 
| 400 | yfx | *  /  //  rem | 
| 200 | xfy | ** | 
| 200 | fy | +  - | 
| Priority is a variable | instantiation_error | |
| OpSpecifier is a variable | instantiation_error | |
| Operator is a partial list or a list with an element E which is a variable | instantiation_error | |
| Priority is neither a variable nor an integer | type_error(integer, Priority) | |
| OpSpecifier is neither a variable nor an atom | type_error(atom, OpSpecifier) | |
| Operator is neither a partial list nor a list nor an atom | type_error(list, Operator) | |
| an element E of the Operator list is neither a variable nor an atom | type_error(atom, E) | |
| Priority is an integer not ³ 0 and £ 1200 | domain_error(operator_priority, Priority) | |
| OpSpecifier is not a valid operator specifier | domain_error(operator_specifier, OpSpecifier) | |
| Operator is ',' or an element of the Operator list is ',' | permission_error(modify, operator, ',') | |
| OpSpecifier is a specifier such that Operator would have a postfix and an infix definition. | permission_error(create, operator, Operator) | |
| Priority is neither a variable nor an operator priority | domain_error(operator_priority, Priority) | |
| OpSpecifier is neither a variable nor an operator specifier | domain_error(operator_specifier, OpSpecifier) | |
| Operator is neither a variable nor an atom | type_error(atom, Operator) | |
| InChar is a variable | instantiation_error | |
| OutChar is a variable | instantiation_error | |
| InChar is neither a variable nor a character | type_error(character, InChar) | |
| OutChar is neither a variable nor a character | type_error(character, OutChar) | |
| InChar is neither a variable nor a character | type_error(character, InChar) | |
| OutChar is neither a variable nor a character | type_error(character, OutChar) | |
 
 
