hyper-literate/collects/scribble/srcdoc.ss
Matthew Flatt 6c435c4e12 scribble/srcdoc experiment in net/gifwrite
svn: r9019

original commit: dba1ddc480956d8a8999e11ba508c2eae990404f
2008-03-18 18:19:25 +00:00

28 lines
735 B
Scheme

#lang scheme/base
(require scheme/contract)
(provide require/doc
provide/doc)
(define-syntax-rule (require/doc spec ...)
(void (quote-syntax (require/doc spec ...))))
(define-syntax-rule (provide/doc [id contract desc] ...)
(begin
(void (quote-syntax (provide/doc [id contract desc] ...)))
(provide/contracted [id (strip-names contract)]) ...))
(define-syntax provide/contracted
(syntax-rules (->)
[(_ [(rename orig-id new-id) contract])
(provide/contract (rename orig-id new-id contract))]
[(_ [id contract])
(provide/contract [id contract])]))
(define-syntax strip-names
(syntax-rules (->)
[(_ (-> [id contract] ... result))
(-> contract ... result)]
[(_ other) other]))