chickadee » protobj » %

(% [ obj { (slot val) }* ])syntax

Clones object obj, binding any given slots to respective given vals.

You can override the method print to customize printing of objects:

(define x (%))
(! x print
     (lambda (self #!optional (port (current-output-port)))
       (fprintf port "#<my object>")))