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