commit 6137f803b241ac0b692222e213388024f7a3ff96
parent e4b6652f274de702422775aaa03ee52dabdf193e
Author: Robby Findler <robby@racket-lang.org>
Date: Fri, 22 Jun 2012 22:12:54 -0500
strengthen contract on blockss field of table struct in scribble
original commit: f7185bec91d04a28289887947c5a394fd94914fe
Diffstat:
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/collects/scribble/core.rkt b/collects/scribble/core.rkt
@@ -135,6 +135,12 @@
(and (string? s)
(not (regexp-match? #rx"\n" s))))
+(define (same-lengths? ls)
+ (or (null? ls)
+ (let ([l1 (length (car ls))])
+ (andmap (λ (l) (= l1 (length l)))
+ (cdr ls)))))
+
(provide-structs
[part ([tag-prefix (or/c false/c string?)]
[tags (listof tag?)]
@@ -146,7 +152,8 @@
[paragraph ([style style?]
[content content?])]
[table ([style style?]
- [blockss (listof (listof (or/c block? (one-of/c 'cont))))])]
+ [blockss (and/c (listof (listof (or/c block? (one-of/c 'cont))))
+ same-lengths?)])]
[delayed-block ([resolve (any/c part? resolve-info? . -> . block?)])]
[itemization ([style style?]
[blockss (listof (listof block?))])]