diff --git a/gnucash/report/html-document.scm b/gnucash/report/html-document.scm
index a5a4c994be..36f82cde9e 100644
--- a/gnucash/report/html-document.scm
+++ b/gnucash/report/html-document.scm
@@ -22,6 +22,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-modules (gnucash html))
+(use-modules (srfi srfi-9))
(use-modules (ice-9 match))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -29,15 +30,35 @@
;; this is the top-level object representing an entire HTML document.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(define
- (make-record-type ""
- '(style-sheet style-stack style style-text title headline objects)))
+(define-record-type
+ (make-html-document-internal style-sheet style-stack style
+ style-text title headline objects)
+ html-document?
+ (style-sheet html-document-style-sheet html-document-set-style-sheet)
+ (style-stack html-document-style-stack html-document-set-style-stack)
+ (style html-document-style html-document-set-style)
+ (style-text html-document-style-text html-document-set-style-text)
+ (title html-document-title html-document-set-title)
+ (headline html-document-headline html-document-set-headline)
+ (objects html-document-objects html-document-set-objects))
-(define gnc:html-document?
- (record-predicate ))
-
-(define gnc:make-html-document-internal
- (record-constructor ))
+(define gnc:html-document-set-title! html-document-set-title)
+(define gnc:html-document-title html-document-title)
+(define gnc:html-document-set-headline! html-document-set-headline)
+(define gnc:html-document-headline html-document-headline)
+(define gnc:html-document-set-style-sheet! html-document-set-style-sheet)
+(define gnc:html-document-set-style-sheet! html-document-set-style-sheet)
+(define gnc:html-document-style-sheet html-document-style-sheet)
+(define gnc:html-document-set-style-stack! html-document-set-style-stack)
+(define gnc:html-document-style-stack html-document-style-stack)
+(define gnc:html-document-set-style-text! html-document-set-style-text)
+(define gnc:html-document-style-text html-document-style-text)
+(define gnc:html-document-set-style-internal! html-document-set-style)
+(define gnc:html-document-style html-document-style)
+(define gnc:html-document-set-objects! html-document-set-objects)
+(define gnc:html-document-objects html-document-objects)
+(define gnc:html-document? html-document?)
+(define gnc:make-html-document-internal make-html-document-internal)
(define (gnc:make-html-document)
(gnc:make-html-document-internal
@@ -50,54 +71,6 @@
'() ;; subobjects
))
-(define gnc:html-document-set-title!
- (record-modifier 'title))
-
-(define gnc:html-document-title
- (record-accessor 'title))
-
-(define gnc:html-document-set-headline!
- (record-modifier 'headline))
-
-(define gnc:html-document-headline
- (record-accessor 'headline))
-
-(define gnc:html-document-set-style-sheet!
- (record-modifier 'style-sheet))
-
-(define gnc:html-document-set-style-sheet!
- (record-modifier 'style-sheet))
-
-(define gnc:html-document-style-sheet
- (record-accessor 'style-sheet))
-
-(define gnc:html-document-set-style-stack!
- (record-modifier 'style-stack))
-
-(define gnc:html-document-style-stack
- (record-accessor 'style-stack))
-
-(define gnc:html-document-set-style-text!
- (record-modifier 'style-text))
-
-(define gnc:html-document-style-text
- (record-accessor 'style-text))
-
-(define gnc:html-document-set-style-internal!
- (record-modifier 'style))
-
-(define gnc:html-document-style
- (record-accessor 'style))
-
-(define gnc:html-document-set-objects!
- (record-modifier 'objects))
-
-(define gnc:html-document-objects
- (record-accessor 'objects))
-
-(define gnc:html-document?
- (record-predicate ))
-
(define (gnc:html-document-set-style! doc tag . rest)
(gnc:html-style-table-set!
(gnc:html-document-style doc) tag