~ chicken-core (chicken-5) 3348229625aff9f8cd2bcb52079655c058fffb01


commit 3348229625aff9f8cd2bcb52079655c058fffb01
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sun Mar 20 21:17:33 2011 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sun Mar 20 21:17:33 2011 +0100

    changed functor instantiation syntax

diff --git a/expand.scm b/expand.scm
index 69a38a03..dde1c707 100644
--- a/expand.scm
+++ b/expand.scm
@@ -1313,17 +1313,18 @@
  (##sys#er-transformer
   (lambda (x r c)
     (let ((len (length x)))
-      (cond ((and (fx>= len 2) (pair? (cadr x)))
-	     (##sys#check-syntax 'module x '(_ (symbol (symbol . #(_ 1))) . #(_ 0 1)))
+      (cond ((and (fx>= len 4) (c (r '=) (caddr x)))
+	     (##sys#check-syntax 'module x '(_ symbol _ (symbol . #(_ 1)) . #(_ 0 1)))
 	     (let* ((x (##sys#strip-syntax x))
-		    (head (cadr x)))
+		    (name (cadr x))
+		    (app (cadddr x)))
 	       (##sys#instantiate-functor
-		(car head)
-		(caadr head)
-		(cdadr head)
-		(if (null? (cddr x))
+		name
+		(car app)		; functor name
+		(cdr app)		; functor arguments
+		(if (null? (cddddr x))
 		    '*
-		    (##sys#validate-exports (caddr x) (car head))))))
+		    (##sys#validate-exports (car (cddddr x)) name)))))
 	    ((and (fx= len 3) (symbol? (cadr x)))
 	     (##sys#check-syntax 'module x '(_ symbol symbol))
 	     (let ((x (##sys#strip-syntax x)))
Trap