diff options
Diffstat (limited to 'ss/as.scm')
-rw-r--r-- | ss/as.scm | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ss/as.scm b/ss/as.scm new file mode 100644 index 0000000..6af0ff4 --- /dev/null +++ b/ss/as.scm @@ -0,0 +1,16 @@ +(define-module (ss as) + #:export (as) + #:declarative? #f) + +(define (call-in-module thunk module) + (let* ((curmod (current-module)) + (_ (set-current-module (resolve-module module))) + (v (thunk)) + (_ (set-current-module curmod))) + v)) + +(define (load-in-module path module-name) + (call-in-module (lambda () (load path)) module-name)) + +(define (as what file) + (load-in-module file `(ss as ,what))) |