| PasteRack.org | ||
| Paste # 1070 | ||
| 2018-09-29 00:59:58 | ||
Fork as a new paste. | ||
Paste viewed 325 times. | ||
Tweet | ||
Embed: | ||
;;;; sys.rkt
(module ffi-sys racket
(provide event?)
(define event-symbols
(list 'NONE
'KEY_PRESS
'KEY_RELEASE
'KEY
'MOUSE_MOVE
'MOUSE_PRESS
'MOUSE_RELEASE
'MOUSE
'KEY_PRESS_MOUSE_MOVE
'ANY))
(define (event? event)
(define result (member event event-symbols))
(if (false? result) result #t)))
(require/typed/provide 'ffi-sys
[#:opaque Event event?])
;;;; other-module.rkt
(struct game-input ([event : Event] [key : Key] [mouse : Mouse]))
(game-input 'KEY_PRESS_MOUSE_MOVE (make-key-default) (make-mouse-default))
;;;; Type Checker error
;Type Checker: type mismatch
; expected: Event
; given: 'KEY_PRESS_MOUSE_MOVE
; in: (quote KEY_PRESS_MOUSE_MOVE)