PasteRack.org | ||
Paste # 1070 | ||
2018-09-29 00:59:58 | ||
Fork as a new paste. | ||
Paste viewed 277 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)