#lang scheme
(require (for-syntax scheme/base) "expression.ss")
(define-syntax provide/os
(syntax-rules ()
((~ (key s1 ...) ...)
(+:os (key (provide s1 ...)) ...))))
(define-syntax provide/windows
(syntax-rules ()
((~ s1 ...)
(provide/os (:windows s1 ...)))))
(define-syntax provide/macos
(syntax-rules ()
((~ s1 ...)
(provide/os (:macosx s1 ...)))))
(define-syntax provide/unix
(syntax-rules ()
((~ s1 ...)
(provide/os (:unix s1 ...)))))
(provide provide/os provide/windows provide/macos provide/unix)