diff --git a/doc/ref/srfi-modules.texi b/doc/ref/srfi-modules.texi index b3f99460b..a1d3c8d5f 100644 --- a/doc/ref/srfi-modules.texi +++ b/doc/ref/srfi-modules.texi @@ -1922,30 +1922,24 @@ The functions created by @code{define-record-type} are ordinary top-level @code{define}s. They can be redefined or @code{set!} as desired, exported from a module, etc. -@menu -* SRFI-9 Custom printers:: Customizing print behavior. -@end menu - -@node SRFI-9 Custom printers -@subsubsection Custom printers -@cindex record printer +@unnumberedsubsubsec Custom Printers You may use @code{set-record-printer!} to customize the default printing -behavior of records. This is a GUILE extension and is not part of SRFI-9. It is +behavior of records. This is a Guile extension and is not part of SRFI-9. It is located in the @nicode{(srfi srfi-9 gnu)} module. -@deffn {library syntax} set-record-printer! name thunk + +@deffn {Scheme Syntax} set-record-printer! name thunk Where @var{type} corresponds to the first argument of @code{define-record-type}, and @var{thunk} is a procedure accepting two arguments, the record to print, and an output port. - @end deffn @noindent -This example prints the employee's name in brackets, for instance ``@code{[Fred]}''. +This example prints the employee's name in brackets, for instance @code{[Fred]}. @example -(set-record-printer! employee-type +(set-record-type-printer! employee-type (lambda (record port) (write-char #\[ port) (display (get-employee-name record) port) diff --git a/module/srfi/srfi-9/gnu.scm b/module/srfi/srfi-9/gnu.scm index 3a37471b1..30c101b2a 100644 --- a/module/srfi/srfi-9/gnu.scm +++ b/module/srfi/srfi-9/gnu.scm @@ -23,7 +23,8 @@ ;;; Code: (define-module (srfi srfi-9 gnu) - #:export (set-record-printer!)) + #:export (set-record-type-printer!)) -(define (set-record-printer! type thunk) +(define (set-record-type-printer! type thunk) + "Set a custom printer THUNK for TYPE." (struct-set! type vtable-index-printer thunk))