21 lines
659 B
Racket
21 lines
659 B
Racket
|
#lang racket/base
|
||
|
|
||
|
(require racket/base racket/contract syntax/parse/define syntax/wrap-modbeg
|
||
|
(for-syntax racket/base)
|
||
|
racket/draw pict ppict/2)
|
||
|
|
||
|
(provide (rename-out [x:#%module-begin #%module-begin])
|
||
|
(except-out (all-from-out racket/base racket/contract racket/draw pict ppict/2)
|
||
|
#%module-begin))
|
||
|
|
||
|
(define-syntax x:#%module-begin
|
||
|
(make-wrapping-module-begin #'x:wrap-object))
|
||
|
|
||
|
(define-syntax-parse-rule (x:wrap-object body:expr)
|
||
|
#:with id (datum->syntax #'body 'icon-pict)
|
||
|
#:do [(syntax-local-lift-provide #'id)]
|
||
|
(define/contract id pict? body))
|
||
|
|
||
|
(module reader syntax/module-reader
|
||
|
capybara/pict)
|