<div dir="ltr">Hello,<div><br></div><div>ecl does not specialize the print-object method on hash-tables:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">> (find-method #'print-object '() '(hash-table t))<br>Debugger received error of type: SIMPLE-ERROR<br>There is no method on the generic function PRINT-OBJECT that agrees on qualifiers NIL and specializers (HASH-TABLE T)</blockquote><div><br></div><div>After reading the hyperspec carefully, I think this is ok, it only requires it on standard-object and structure-object. However, i still thought that specializing on hash-table would work, but it doesn't:</div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">>> (defmethod print-object ((obj hash-table) stream) (princ "its working" stream))<br>#<standard-method PRINT-OBJECT (#<The BUILT-IN-CLASS HASH-TABLE> #<The BUILT-IN-CLASS T>)><br>>> (make-hash-table)<br>#<hash-table 000000000493ee40></blockquote></div><div><br></div><div>Shouldn't we still dispatch the call to this method? And if not, what's the best way in ecl to customize the printable representation of a hash-table?</div><div><br></div><div>I've tried:</div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">> (set-pprint-dispatch 'hash-table (lambda (s obj) (princ "its working" s)))<br>NIL<br>> (make-hash-table)<br>its working</blockquote><div><br></div><div>But this sometimes gives an error:</div></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Debugger received error of type: SIMPLE-ERROR<br>Tried to modified a read-only pprint dispatch table: #<pprint-dispatch-table  0000000003375210><br>Error flushed.</blockquote><div><br></div><div>Thanks! </div></div></div>