## Printer

In all situations where the rules are well specified, &ECL; prints objects according to &ANSI;. The specification leaves however a number of cases as implementation dependent behavior. The output of &ECL; in those cases is summarized in . Except for the types character and random-state, most of those examples regard non-standard written forms `#<...>` cannot be read back using `read`. These printed representations are just informative and should not be used to reconstruct or compare objects.

### Implementation specific printed representation

Lisp type | Format | Remarks
--- | --- | ---
package | `#<package name>` |
random-state | `#$character array` |
bitvector | `#<bit-vector unique-id>` | Only when `*print-array*` is false.
vector | `#<vector unique-id>` | Only when `*print-array*` is false.
array | `#<array unique-id>` | Only when `*print-array*` is false.
hash-table | `#<hash-table unique-id>` |
readtable | `#<readtable unique-id>` |
interpreted function | `#<bytecompiled-function name-or-id>` | Name is a symbol.
machine compiled function | `#<compiled-function name>` | Name is a symbol.
input-stream | `#<input stream "filename">` | An stream that reads from filename.
output-stream | `#<output stream "filename">` | An stream that writes to filename.
probe-stream | `#<probe stream "filename">` |
string-input-stream | `#<string-input stream from "string-piece">` | The string is the text left to be read.
string-output-stream | `#<string-output stream unique-id>` |
two-way-stream | `#<two-way stream unique-id>` |
echo-stream | `#<echo stream unique-id>` |
synonym-stream | `#<synonym stream to symbol>` |
broadcast-stream | `#<broadcast stream unique-id>` |
concatenated-stream | `#<concatenated stream unique-id>` |
closed-stream | `#<closed ...>` | The dots denote any of the above stream forms.