word: make word generics broadly available

This commit is contained in:
Christopher Lemmer Webber 2019-06-09 20:39:02 -04:00 committed by Jay McCarthy
parent 1e75a43674
commit b3d6503924
1 changed files with 14 additions and 18 deletions

View File

@ -28,24 +28,6 @@
(define (word-output w) #f)
(define (word-return w) w)])
(module+ generics
(provide
(contract-out
[word-fps
(-> word? flonum?)]
[word-label
(-> word? flonum? string?)]
[word-evt
(-> word? evt?)]
[word-event
(-> word? any/c word?)]
[word-tick
(-> word? word?)]
[word-output
(-> word? any/c)]
[word-return
(-> word? any/c)])))
(define (default b f d) (if b (f b) d))
(struct *word (fps label evt event tick output return)
#:methods gen:word
@ -193,6 +175,20 @@
(contract-out
[word?
(-> any/c word?)]
[word-fps
(-> word? flonum?)]
[word-label
(-> word? flonum? string?)]
[word-evt
(-> word? evt?)]
[word-event
(-> word? any/c word?)]
[word-tick
(-> word? word?)]
[word-output
(-> word? any/c)]
[word-return
(-> word? any/c)]
[word (->* () ((or/c #f word?)
#:fps real?
#:label (or/c string? (-> real? string?))