summaryrefslogtreecommitdiff
path: root/ss/as.scm
diff options
context:
space:
mode:
Diffstat (limited to 'ss/as.scm')
-rw-r--r--ss/as.scm16
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)))