`define-public' is no a longer curried definition by default.
authorIan Price <ianprice90@googlemail.com>
Tue, 4 Sep 2012 12:18:58 +0000 (13:18 +0100)
committerIan Price <ianprice90@googlemail.com>
Thu, 6 Sep 2012 12:08:33 +0000 (13:08 +0100)
* module/ice-9/boot-9.scm (define-public): Remove currying functionality.
* module/ice-9/curried-definitions.scm (define-public): New export.

module/ice-9/boot-9.scm
module/ice-9/curried-definitions.scm

index 5ed543a..cf8252a 100644 (file)
@@ -3321,7 +3321,9 @@ module '(ice-9 q) '(make-q q-length))}."
 (define-syntax define-public
   (syntax-rules ()
     ((_ (name . args) . body)
-     (define-public name (lambda args . body)))
+     (begin
+       (define name (lambda args . body))
+       (export name)))
     ((_ name val)
      (begin
        (define name val)
index d55f1fb..8c684a1 100644 (file)
@@ -16,7 +16,8 @@
 
 (define-module (ice-9 curried-definitions)
   #:replace ((cdefine . define)
-             (cdefine* . define*)))
+             (cdefine* . define*)
+             define-public))
 
 (define-syntax cdefine
   (syntax-rules ()
        (lambda* rest body body* ...)))
     ((_ . rest)
      (define* . rest))))
+
+(define-syntax define-public
+  (syntax-rules ()
+    ((_ (name . args) . body)
+     (begin
+       (cdefine (name . args) . body)
+       (export name)))
+    ((_ name val)
+     (begin
+       (define name val)
+       (export name)))))