summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/guile/skribilo/lib.scm17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/guile/skribilo/lib.scm b/src/guile/skribilo/lib.scm
index 8c4c382..b5e86f2 100644
--- a/src/guile/skribilo/lib.scm
+++ b/src/guile/skribilo/lib.scm
@@ -1,7 +1,7 @@
 ;;; lib.scm -- Utilities.
 ;;;
+;;; Copyright 2005, 2007, 2009  Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright 2003, 2004  Erick Gallesio - I3S-CNRS/ESSI <eg@unice.fr>
-;;; Copyright 2005, 2007  Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;;
 ;;; This program is free software; you can redistribute it and/or modify
@@ -53,19 +53,14 @@
 ;;; NEW
 ;;;
 
-(define %types-module (current-module))
-
 (define-macro (new class . parameters)
   ;; Thanks to the trick below, modules don't need to import `(oop goops)'
   ;; and `(skribilo ast)' in order to make use of `new'.
-  (let* ((class-name (symbol-append '< class '>))
-	 (actual-class (module-ref %types-module class-name)))
-    `(let ((make ,make)
-	   (,class-name ,actual-class))
-       (make ,class-name
-	 ,@(concatenate (map (lambda (x)
-                               `(,(symbol->keyword (car x)) ,(cadr x)))
-                             parameters))))))
+  (let ((class-name (symbol-append '< class '>)))
+    `((@ (oop goops) make) (@@ (skribilo lib) ,class-name)
+      ,@(concatenate (map (lambda (x)
+                            `(,(symbol->keyword (car x)) ,(cadr x)))
+                          parameters)))))
 
 ;;;
 ;;; DEFINE-MARKUP