From f01030bba499642b16e902a8e4a7da45672fcbd4 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 00:58:29 +0000 Subject: [PATCH 1/9] Fix 1 occurrence of `if-let-to-cond` `cond` with internal definitions is preferred over `if` with `let`, to reduce nesting --- scribble-doc/scribblings/scribble/utils.rkt | 38 +++++++++++---------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/scribble-doc/scribblings/scribble/utils.rkt b/scribble-doc/scribblings/scribble/utils.rkt index 2e435d91b5..ba0e748b63 100644 --- a/scribble-doc/scribblings/scribble/utils.rkt +++ b/scribble-doc/scribblings/scribble/utils.rkt @@ -78,24 +78,26 @@ (define p1 (file-position p)) (define stx (scribble:read-syntax #f p)) (define p2 (file-position p)) - (if (not (eof-object? stx)) - (let ([str (substring lines p1 p2)]) - (loop (cons (list str stx) r) (or newlines? (regexp-match? #rx#"\n" str)))) - (let* ([r (reverse r)] - [r (if newlines? - (cdr (apply append (map (lambda (x) (list #f x)) r))) - r)]) - (make-table plain - (map (lambda (x) - (let ([@expr (if x - (litchar/lines (car x)) - "")] - [sexpr (if x - (racket:to-paragraph ((norm-spacing 0) (cadr x))) - "")] - [reads-as (if x reads-as "")]) - (map as-flow (list spacer @expr reads-as sexpr)))) - r))))))) + (cond + [(not (eof-object? stx)) + (define str (substring lines p1 p2)) + (loop (cons (list str stx) r) (or newlines? (regexp-match? #rx#"\n" str)))] + [else + (let* ([r (reverse r)] + [r (if newlines? + (cdr (apply append (map (lambda (x) (list #f x)) r))) + r)]) + (make-table plain + (map (lambda (x) + (let ([@expr (if x + (litchar/lines (car x)) + "")] + [sexpr (if x + (racket:to-paragraph ((norm-spacing 0) (cadr x))) + "")] + [reads-as (if x reads-as "")]) + (map as-flow (list spacer @expr reads-as sexpr)))) + r)))])))) ;; stuff for the scribble/text examples From c5102f82ec293864c2f88c5976dc690ea064a07b Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 00:58:29 +0000 Subject: [PATCH 2/9] Fix 1 occurrence of `explicit-cond-else-void` Add an explicit `[else (void)]` clause to make the default behavior clear. --- scribble-html-lib/scribble/html/resource.rkt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scribble-html-lib/scribble/html/resource.rkt b/scribble-html-lib/scribble/html/resource.rkt index 8923f7c00c..eb6a193d2a 100644 --- a/scribble-html-lib/scribble/html/resource.rkt +++ b/scribble-html-lib/scribble/html/resource.rkt @@ -205,7 +205,8 @@ (cond [(not exists)] ; do nothing [(or (file-exists? filename) (link-exists? filename)) (delete-file filename)] - [(directory-exists? filename) (bad "exists as directory")]) + [(directory-exists? filename) (bad "exists as directory")] + [else (void)]) (parameterize ([rendered-dirpath dirpathlist]) (printf " ~a\n" path) (renderer filename))]))) From 23b7bae71481b0df16764255ce42e1adccd65c15 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 00:58:29 +0000 Subject: [PATCH 3/9] Fix 3 occurrences of `printf-to-display` This use of `printf` has no arguments other than the template string. --- scribble-html-lib/scribble/html/resource.rkt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scribble-html-lib/scribble/html/resource.rkt b/scribble-html-lib/scribble/html/resource.rkt index eb6a193d2a..6511b53429 100644 --- a/scribble-html-lib/scribble/html/resource.rkt +++ b/scribble-html-lib/scribble/html/resource.rkt @@ -236,12 +236,12 @@ ;; runs all renderers, and any renderers that might have been added on the way (provide render-all) (define (render-all) - (printf "Rendering...\n") + (displayln "Rendering...") (define todo (get/reset-renderers)) (if (null? todo) - (printf " Warning: no content to render\n") + (displayln " Warning: no content to render") (let loop ([todo todo]) (unless (null? todo) (for-each (lambda (r) (r)) todo) (loop (get/reset-renderers))))) ; if more were created - (printf "Rendering done.\n")) + (displayln "Rendering done.")) From 613a941edadb69583b29d2f0a1b1e71b55daf293 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 00:58:29 +0000 Subject: [PATCH 4/9] Fix 3 occurrences of `let-to-define` Internal definitions are recommended instead of `let` expressions, to reduce nesting. --- .../scribblings/scribble/class-diagrams.rkt | 54 +++++++++---------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/scribble-doc/scribblings/scribble/class-diagrams.rkt b/scribble-doc/scribblings/scribble/class-diagrams.rkt index e678269bc4..1ad0a45723 100644 --- a/scribble-doc/scribblings/scribble/class-diagrams.rkt +++ b/scribble-doc/scribblings/scribble/class-diagrams.rkt @@ -48,23 +48,18 @@ ;; field-spec : string string -> pict (define (field-spec type fd #:default [default #f] [comment #f]) - (let ([code-line - (hbl-append (if type - (hbl-append (type-spec type) - (normal-font " ")) - (blank)) - (field-name-font fd) - (if default - (hbl-append (normal-font " = ") - (normal-font default)) - (blank)) - #; - (normal-font ";"))]) - (if comment - (hbl-append code-line - (normal-font " ") - (comment-font (format "[in ~a]" comment))) - code-line))) + (define code-line + (hbl-append (if type + (hbl-append (type-spec type) (normal-font " ")) + (blank)) + (field-name-font fd) + (if default + (hbl-append (normal-font " = ") (normal-font default)) + (blank)) + #;(normal-font ";"))) + (if comment + (hbl-append code-line (normal-font " ") (comment-font (format "[in ~a]" comment))) + code-line)) (define (method-spec range name #:body [body #f] . args) (unless (even? (length args)) @@ -81,15 +76,16 @@ (hbl-append (normal-font "(") (let loop ([args args]) - (let* ([type (car args)] - [param (cadr args)] - [single-arg (if param - (hbl-append (type-spec type) (normal-font " ") (var-font param)) - (type-spec type))]) - - (cond - [(null? (cddr args)) (hbl-append single-arg (normal-font ")"))] - [else (hbl-append single-arg (normal-font ", ") (loop (cddr args)))]))))]) + (define type (car args)) + (define param (cadr args)) + (define single-arg + (if param + (hbl-append (type-spec type) (normal-font " ") (var-font param)) + (type-spec type))) + + (cond + [(null? (cddr args)) (hbl-append single-arg (normal-font ")"))] + [else (hbl-append single-arg (normal-font ", ") (loop (cddr args)))])))]) (if body (hbl-append (normal-font " {")) (blank)))) @@ -415,9 +411,9 @@ (connect-dots #t main4 dot1 dot2 dot4 dot3))) (define (find-middle main p1 find1 p2 find2) - (let-values ([(x1 y1) (find1 main p1)] - [(x2 y2) (find2 main p2)]) - (- (/ (+ x1 x2) 2) (min x1 x2)))) + (define-values (x1 y1) (find1 main p1)) + (define-values (x2 y2) (find2 main p2)) + (- (/ (+ x1 x2) 2) (min x1 x2))) (define right-top-reference (λ (main0 start-class start-field finish-class [count 1] #:connect-dots [connect-dots connect-dots]) From 51bbb3dc226d09c52c0e334844a7d7fd2438cd97 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 00:58:29 +0000 Subject: [PATCH 5/9] Fix 1 occurrence of `cond-let-to-cond-define` Internal definitions are recommended instead of `let` expressions, to reduce nesting. --- .../scribblings/scribble/class-diagrams.rkt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/scribble-doc/scribblings/scribble/class-diagrams.rkt b/scribble-doc/scribblings/scribble/class-diagrams.rkt index 1ad0a45723..6cde07a124 100644 --- a/scribble-doc/scribblings/scribble/class-diagrams.rkt +++ b/scribble-doc/scribblings/scribble/class-diagrams.rkt @@ -130,13 +130,14 @@ (apply vl-append methods)))]) (add-hline (add-hline (frame (inset main class-box-margin)) top-spacer) bottom-spacer))] [fields - (let* ([top-spacer (mk-blank)] - [main (vl-append name - top-spacer - (if (null? fields) - (blank) - (apply vl-append fields)))]) - (add-hline (frame (inset main class-box-margin)) top-spacer))] + (define top-spacer (mk-blank)) + (define main + (vl-append name + top-spacer + (if (null? fields) + (blank) + (apply vl-append fields)))) + (add-hline (frame (inset main class-box-margin)) top-spacer)] [methods (class-box name methods fields)] [else (frame (inset name class-box-margin))])) From b0e794dcb4a8e750fea30503f85c5cfd5435a423 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 00:58:29 +0000 Subject: [PATCH 6/9] Fix 4 occurrences of `map-to-for` This `map` operation can be replaced with a `for/list` loop. --- .../scribblings/scribble/class-diagrams.rkt | 44 +++++++++---------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/scribble-doc/scribblings/scribble/class-diagrams.rkt b/scribble-doc/scribblings/scribble/class-diagrams.rkt index 6cde07a124..c520799bae 100644 --- a/scribble-doc/scribblings/scribble/class-diagrams.rkt +++ b/scribble-doc/scribblings/scribble/class-diagrams.rkt @@ -149,16 +149,14 @@ (define (hierarchy main supers subs) (define supers-bottoms (apply max - (map (λ (x) - (let-values ([(x y) (cb-find main x)]) - y)) - supers))) + (for/list ([x (in-list supers)]) + (let-values ([(x y) (cb-find main x)]) + y)))) (define subs-tops (apply min - (map (λ (x) - (let-values ([(x y) (ct-find main x)]) - y)) - subs))) + (for/list ([x (in-list subs)]) + (let-values ([(x y) (ct-find main x)]) + y)))) (define sorted-subs (sort subs (λ (x y) (< (left-edge-x main x) (left-edge-x main y))))) (unless (< supers-bottoms subs-tops) (error 'hierarchy @@ -176,23 +174,21 @@ (λ (_1 _2) (values main-line-end-x main-line-y)) #:color hierarchy-color)) (define super-lines - (map (λ (super) - (let-values ([(x y) (cb-find main super)]) - (pin-over (pin-line (ghost main) super cb-find main (λ (_1 _2) (values x main-line-y))) - (- x (/ (pict-width triangle) 2)) - (- (/ (+ y main-line-y) 2) (/ (pict-height triangle) 2)) - triangle))) - supers)) + (for/list ([super (in-list supers)]) + (define-values (x y) (cb-find main super)) + (pin-over (pin-line (ghost main) super cb-find main (λ (_1 _2) (values x main-line-y))) + (- x (/ (pict-width triangle) 2)) + (- (/ (+ y main-line-y) 2) (/ (pict-height triangle) 2)) + triangle))) (define sub-lines - (map (λ (sub) - (let-values ([(x y) (ct-find main sub)]) - (pin-line (ghost main) - sub - ct-find - main - (λ (_1 _2) (values x main-line-y)) - #:color hierarchy-color))) - subs)) + (for/list ([sub (in-list subs)]) + (define-values (x y) (ct-find main sub)) + (pin-line (ghost main) + sub + ct-find + main + (λ (_1 _2) (values x main-line-y)) + #:color hierarchy-color))) (apply cc-superimpose w/main-line (append sub-lines super-lines))) (define triangle-width 12) From e7970d42a3f9af1c92c98032ea9637ee7f2440a2 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 00:58:29 +0000 Subject: [PATCH 7/9] Fix 5 occurrences of `define-lambda-to-define` The `define` form supports a shorthand for defining functions. --- .../scribblings/scribble/class-diagrams.rkt | 156 ++++++++++-------- 1 file changed, 86 insertions(+), 70 deletions(-) diff --git a/scribble-doc/scribblings/scribble/class-diagrams.rkt b/scribble-doc/scribblings/scribble/class-diagrams.rkt index c520799bae..88d97a420d 100644 --- a/scribble-doc/scribblings/scribble/class-diagrams.rkt +++ b/scribble-doc/scribblings/scribble/class-diagrams.rkt @@ -342,82 +342,98 @@ (connect-dots #t (connect-dots #f main6 dot1 dot2 dot4 dot3) dot6 dot5)) -(define left-left-reference - (λ (main0 start-class start-field finish-class finish-name [count 1] - #:connect-dots [connect-dots connect-dots] - #:dot-delta [dot-delta 0]) - (let ([going-down? (let-values ([(_1 start-y) (find-cc main0 start-field)] - [(_2 finish-y) (find-cc main0 finish-name)]) - (< start-y finish-y))]) - (define-values (main1 dot1) (add-dot-delta (λ () (add-dot-left main0 start-class start-field)) - 0 - (if going-down? - dot-delta - (- dot-delta)))) - (define-values (main2 dot2) (add-dot-delta (λ () (add-dot-left/space main1 start-class start-field count)) - (- dot-delta) - (if going-down? - dot-delta - (- dot-delta)))) - (define-values (main3 dot3) (add-dot-delta (λ () (add-dot-left main2 finish-class finish-name)) - 0 - (if going-down? - (- dot-delta) - dot-delta))) - (define-values (main4 dot4) (add-dot-delta (λ () (add-dot-junction main3 dot2 dot3)) - 0 - 0)) - (define-values (main5 dot5) (add-dot-left main4 finish-class finish-name)) - (define-values (main6 dot6) (add-dot-delta (λ () (add-dot-left main5 finish-class finish-name)) - -1 ;; just enough to get the arrowhead going the right direction; not enough to see the line - 0)) - - (connect-dots - #t - (connect-dots #f main6 dot1 dot2 dot4 dot3) - dot6 - dot5)))) - -(define left-top-reference - (λ (main0 start-class start-field finish-class [count 1] #:connect-dots [connect-dots connect-dots]) - (define-values (main1 dot1) (add-dot-left main0 start-class start-field)) - (define-values (main2 dot2) (add-dot-left/space main1 start-class start-field count)) - (define-values (main3 dot3) (add-dot-junction main2 dot2 cc-find finish-class ct-find)) - (connect-dots #t main3 dot1 dot2 dot3))) - -(define right-left-reference - (λ (main0 start-class start-field finish-class finish-name - [offset - (find-middle main0 start-class rc-find finish-class lc-find)] - #:connect-dots [connect-dots connect-dots]) - (define-values (main1 dot1) (add-dot-right main0 start-class start-field)) - (define-values (main2 dot2) (add-dot-right/offset main1 start-class start-field offset)) - (define-values (main3 dot3) (add-dot-left main2 finish-class finish-name)) - (define-values (main4 dot4) (add-dot-junction main3 dot2 dot3)) - (connect-dots #t main4 dot1 dot2 dot4 dot3))) - -(define left-right-reference - (λ (main0 start-class start-field finish-class finish-name - [offset - (- (find-middle main0 start-class lc-find finish-class rc-find))] - #:connect-dots [connect-dots connect-dots]) - (define-values (main1 dot1) (add-dot-left main0 start-class start-field)) - (define-values (main2 dot2) (add-dot-left/offset main1 start-class start-field offset)) - (define-values (main3 dot3) (add-dot-right main2 finish-class finish-name)) - (define-values (main4 dot4) (add-dot-junction main3 dot2 dot3)) - (connect-dots #t main4 dot1 dot2 dot4 dot3))) +(define (left-left-reference main0 + start-class + start-field + finish-class + finish-name + [count 1] + #:connect-dots [connect-dots connect-dots] + #:dot-delta [dot-delta 0]) + (let ([going-down? (let-values ([(_1 start-y) (find-cc main0 start-field)] + [(_2 finish-y) (find-cc main0 finish-name)]) + (< start-y finish-y))]) + (define-values (main1 dot1) + (add-dot-delta (λ () (add-dot-left main0 start-class start-field)) + 0 + (if going-down? + dot-delta + (- dot-delta)))) + (define-values (main2 dot2) + (add-dot-delta (λ () (add-dot-left/space main1 start-class start-field count)) + (- dot-delta) + (if going-down? + dot-delta + (- dot-delta)))) + (define-values (main3 dot3) + (add-dot-delta (λ () (add-dot-left main2 finish-class finish-name)) + 0 + (if going-down? + (- dot-delta) + dot-delta))) + (define-values (main4 dot4) (add-dot-delta (λ () (add-dot-junction main3 dot2 dot3)) 0 0)) + (define-values (main5 dot5) (add-dot-left main4 finish-class finish-name)) + (define-values (main6 dot6) + (add-dot-delta + (λ () (add-dot-left main5 finish-class finish-name)) + -1 ;; just enough to get the arrowhead going the right direction; not enough to see the line + 0)) + + (connect-dots #t (connect-dots #f main6 dot1 dot2 dot4 dot3) dot6 dot5))) + +(define (left-top-reference main0 + start-class + start-field + finish-class + [count 1] + #:connect-dots [connect-dots connect-dots]) + (define-values (main1 dot1) (add-dot-left main0 start-class start-field)) + (define-values (main2 dot2) (add-dot-left/space main1 start-class start-field count)) + (define-values (main3 dot3) (add-dot-junction main2 dot2 cc-find finish-class ct-find)) + (connect-dots #t main3 dot1 dot2 dot3)) + +(define (right-left-reference main0 + start-class + start-field + finish-class + finish-name + [offset (find-middle main0 start-class rc-find finish-class lc-find)] + #:connect-dots [connect-dots connect-dots]) + (define-values (main1 dot1) (add-dot-right main0 start-class start-field)) + (define-values (main2 dot2) (add-dot-right/offset main1 start-class start-field offset)) + (define-values (main3 dot3) (add-dot-left main2 finish-class finish-name)) + (define-values (main4 dot4) (add-dot-junction main3 dot2 dot3)) + (connect-dots #t main4 dot1 dot2 dot4 dot3)) + +(define (left-right-reference main0 + start-class + start-field + finish-class + finish-name + [offset + (- (find-middle main0 start-class lc-find finish-class rc-find))] + #:connect-dots [connect-dots connect-dots]) + (define-values (main1 dot1) (add-dot-left main0 start-class start-field)) + (define-values (main2 dot2) (add-dot-left/offset main1 start-class start-field offset)) + (define-values (main3 dot3) (add-dot-right main2 finish-class finish-name)) + (define-values (main4 dot4) (add-dot-junction main3 dot2 dot3)) + (connect-dots #t main4 dot1 dot2 dot4 dot3)) (define (find-middle main p1 find1 p2 find2) (define-values (x1 y1) (find1 main p1)) (define-values (x2 y2) (find2 main p2)) (- (/ (+ x1 x2) 2) (min x1 x2))) -(define right-top-reference - (λ (main0 start-class start-field finish-class [count 1] #:connect-dots [connect-dots connect-dots]) - (define-values (main1 dot1) (add-dot-right main0 start-class start-field)) - (define-values (main2 dot2) (add-dot-right/space main1 start-class start-field count)) - (define-values (main3 dot3) (add-dot-junction main2 dot2 cc-find finish-class ct-find)) - (connect-dots #t main3 dot1 dot2 dot3))) +(define (right-top-reference main0 + start-class + start-field + finish-class + [count 1] + #:connect-dots [connect-dots connect-dots]) + (define-values (main1 dot1) (add-dot-right main0 start-class start-field)) + (define-values (main2 dot2) (add-dot-right/space main1 start-class start-field count)) + (define-values (main3 dot3) (add-dot-junction main2 dot2 cc-find finish-class ct-find)) + (connect-dots #t main3 dot1 dot2 dot3)) (define connect-dots-contract (->* (boolean? pict? pict?) () #:rest (listof pict?) (values pict?))) From 0fb78ec1c75b345f83babca409cce410eeb87ebb Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 00:58:29 +0000 Subject: [PATCH 8/9] Fix 1 occurrence of `arrow-contract-with-rest-to-arrow-contract-with-ellipses` This `->*` contract can be rewritten using `->` with ellipses. --- scribble-doc/scribblings/scribble/class-diagrams.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scribble-doc/scribblings/scribble/class-diagrams.rkt b/scribble-doc/scribblings/scribble/class-diagrams.rkt index 88d97a420d..e644d1802a 100644 --- a/scribble-doc/scribblings/scribble/class-diagrams.rkt +++ b/scribble-doc/scribblings/scribble/class-diagrams.rkt @@ -435,7 +435,7 @@ (define-values (main3 dot3) (add-dot-junction main2 dot2 cc-find finish-class ct-find)) (connect-dots #t main3 dot1 dot2 dot3)) -(define connect-dots-contract (->* (boolean? pict? pict?) () #:rest (listof pict?) (values pict?))) +(define connect-dots-contract (-> boolean? pict? pict? pict? ... (values pict?))) (provide type-link-color) (provide/contract From 58b6a2ceb0a0580751f501ca8ac3adf5ab59e2c0 Mon Sep 17 00:00:00 2001 From: "resyntax-ci[bot]" <181813515+resyntax-ci[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 00:58:29 +0000 Subject: [PATCH 9/9] Fix 1 occurrence of `provide/contract-to-contract-out` The `provide/contract` form is a legacy form made obsolete by `contract-out`. --- .../scribblings/scribble/class-diagrams.rkt | 122 ++++++++---------- 1 file changed, 52 insertions(+), 70 deletions(-) diff --git a/scribble-doc/scribblings/scribble/class-diagrams.rkt b/scribble-doc/scribblings/scribble/class-diagrams.rkt index e644d1802a..1ea63a5cdb 100644 --- a/scribble-doc/scribblings/scribble/class-diagrams.rkt +++ b/scribble-doc/scribblings/scribble/class-diagrams.rkt @@ -438,74 +438,56 @@ (define connect-dots-contract (-> boolean? pict? pict? pict? ... (values pict?))) (provide type-link-color) -(provide/contract - [field-spec (->* ((or/c #f string?) string?) (string? #:default string?) pict?)] - [class-name (->* (string?) (#:spacing-word string?) pict?)] - [class-box (-> pict? (or/c #f (listof pict?)) (or/c #f (listof pict?)) pict?)] - [hierarchy/layout - (->* ((cons/c pict? (listof pict?)) (cons/c pict? (listof pict?))) - (#:top-space - integer? - #:bottom-space integer? - #:vertical-space integer? - #:every-other-space integer?) - pict?)] - [user-type-font (-> string? pict?)] - [prim-type-font (-> string? pict?)] - [var-font (-> string? pict?)] - [normal-font (-> string? pict?)] - [comment-font (-> string? pict?)] - - [hierarchy (-> pict? - (cons/c pict? (listof pict?)) - (cons/c pict? (listof pict?)) +(provide (contract-out + [field-spec (->* ((or/c #f string?) string?) (string? #:default string?) pict?)] + [class-name (->* (string?) (#:spacing-word string?) pict?)] + [class-box (-> pict? (or/c #f (listof pict?)) (or/c #f (listof pict?)) pict?)] + [hierarchy/layout + (->* ((cons/c pict? (listof pict?)) (cons/c pict? (listof pict?))) + (#:top-space integer? + #:bottom-space integer? + #:vertical-space integer? + #:every-other-space integer?) pict?)] - [right-right-reference (->* (pict? pict? pict? pict? pict?) - (number? - #:connect-dots connect-dots-contract - #:dot-delta number?) - pict?)] - [left-left-reference (->* (pict? pict? pict? pict? pict?) - (number? - #:connect-dots connect-dots-contract - #:dot-delta number?) - pict?)] - [right-left-reference (->* (pict? pict? pict? pict? pict?) - (number? - #:connect-dots connect-dots-contract) - pict?)] - [left-right-reference (->* (pict? pict? pict? pict? pict?) - (number? - #:connect-dots connect-dots-contract) - pict?)] - [left-top-reference (->* (pict? pict? pict? pict?) - (number? - #:connect-dots connect-dots-contract) - pict?)] - [right-top-reference (->* (pict? pict? pict? pict?) - (number? - #:connect-dots connect-dots-contract) - pict?)] - - [dot-edge-spacing number?] - [connect-dots connect-dots-contract] - [add-dot-right (-> pict? pict? pict? (values pict? pict?))] - [add-dot-right/space (-> pict? pict? pict? (values pict? pict?))] - [add-dot-left (-> pict? pict? pict? (values pict? pict?))] - [add-dot-left/space (-> pict? pict? pict? (values pict? pict?))] - [add-dot-junction - (case-> - (-> pict? pict? pict? (values pict? pict?)) - (-> pict? - pict? (-> pict? pict? (values number? number?)) - pict? (-> pict? pict? (values number? number?)) - (values pict? pict?)))] - [add-dot-offset (-> pict? pict? number? number? (values pict? pict?))] - [add-dot (-> pict? number? number? (values pict? pict?))] - [method-spec - (->* (string? string?) - (#:body (or/c #f pict?)) - #:rest (listof (or/c #f string?)) - pict?)] - [java-this (-> pict?)] - [field-arrowhead-size number?]) + [user-type-font (-> string? pict?)] + [prim-type-font (-> string? pict?)] + [var-font (-> string? pict?)] + [normal-font (-> string? pict?)] + [comment-font (-> string? pict?)] + [hierarchy (-> pict? (cons/c pict? (listof pict?)) (cons/c pict? (listof pict?)) pict?)] + [right-right-reference + (->* (pict? pict? pict? pict? pict?) + (number? #:connect-dots connect-dots-contract #:dot-delta number?) + pict?)] + [left-left-reference + (->* (pict? pict? pict? pict? pict?) + (number? #:connect-dots connect-dots-contract #:dot-delta number?) + pict?)] + [right-left-reference + (->* (pict? pict? pict? pict? pict?) (number? #:connect-dots connect-dots-contract) pict?)] + [left-right-reference + (->* (pict? pict? pict? pict? pict?) (number? #:connect-dots connect-dots-contract) pict?)] + [left-top-reference + (->* (pict? pict? pict? pict?) (number? #:connect-dots connect-dots-contract) pict?)] + [right-top-reference + (->* (pict? pict? pict? pict?) (number? #:connect-dots connect-dots-contract) pict?)] + [dot-edge-spacing number?] + [connect-dots connect-dots-contract] + [add-dot-right (-> pict? pict? pict? (values pict? pict?))] + [add-dot-right/space (-> pict? pict? pict? (values pict? pict?))] + [add-dot-left (-> pict? pict? pict? (values pict? pict?))] + [add-dot-left/space (-> pict? pict? pict? (values pict? pict?))] + [add-dot-junction + (case-> (-> pict? pict? pict? (values pict? pict?)) + (-> pict? + pict? + (-> pict? pict? (values number? number?)) + pict? + (-> pict? pict? (values number? number?)) + (values pict? pict?)))] + [add-dot-offset (-> pict? pict? number? number? (values pict? pict?))] + [add-dot (-> pict? number? number? (values pict? pict?))] + [method-spec + (->* (string? string?) (#:body (or/c #f pict?)) #:rest (listof (or/c #f string?)) pict?)] + [java-this (-> pict?)] + [field-arrowhead-size number?]))