;; A sane "core" for finishing up the "scheme/base" library (module pre-base '#%kernel (#%require (for-syntax '#%kernel)) (#%require "more-scheme.ss" "misc.ss" (all-except "define.ss" define) "letstx-scheme.ss" "kw.ss" "define-struct.ss" "reqprov.ss" "modbeg.ss" "for.ss" '#%builtin) ; so it's attached (define-syntaxes (#%top-interaction) (lambda (stx) (if (eq? 'top-level (syntax-local-context)) 'ok (raise-syntax-error #f "not at top level" stx)) (datum->syntax stx (cdr (syntax-e stx)) stx stx))) (define-values (new-apply) (make-keyword-procedure (lambda (kws kw-args proc args . rest) (keyword-apply proc kws kw-args (apply list* args rest))) apply)) (define-values (new-keyword-apply) (make-keyword-procedure (lambda (kws kw-args proc orig-kws orig-kw-args args . rest) (let-values ([(kws kw-args) (let loop ([kws kws] [kw-args kw-args] [kws2 orig-kws] [kw-args2 orig-kw-args] [swapped? #f]) (cond [(null? kws) (values kws2 kw-args2)] [(null? kws2) (values kws kw-args)] [(keyword