guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/03: store: Change 'store-lower' to preserve the original procedure's


From: Ludovic Courtès
Subject: 01/03: store: Change 'store-lower' to preserve the original procedure's documentation.
Date: Sun, 18 Jan 2015 21:22:32 +0000

civodul pushed a commit to branch master
in repository guix.

commit 5808dcc27cf7288afcd3fa01c0b9e4669b697765
Author: Ludovic Courtès <address@hidden>
Date:   Sun Jan 18 17:38:15 2015 +0100

    store: Change 'store-lower' to preserve the original procedure's 
documentation.
    
    * guix/store.scm (preserve-documentation): New procedure.
      (store-lift, store-lower): Use it.
---
 guix/store.scm |   23 +++++++++++++----------
 1 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/guix/store.scm b/guix/store.scm
index c3a1c57..63425b3 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -862,23 +862,26 @@ be used internally by the daemon's build hook."
 (define-alias store-return state-return)
 (define-alias store-bind state-bind)
 
+(define (preserve-documentation original proc)
+  "Return PROC with documentation taken from ORIGINAL."
+  (set-object-property! proc 'documentation
+                        (procedure-property original 'documentation))
+  proc)
+
 (define (store-lift proc)
   "Lift PROC, a procedure whose first argument is a connection to the store,
 in the store monad."
-  (define result
-    (lambda args
-      (lambda (store)
-        (values (apply proc store args) store))))
-
-  (set-object-property! result 'documentation
-                        (procedure-property proc 'documentation))
-  result)
+  (preserve-documentation proc
+                          (lambda args
+                            (lambda (store)
+                              (values (apply proc store args) store)))))
 
 (define (store-lower proc)
   "Lower PROC, a monadic procedure in %STORE-MONAD, to a \"normal\" procedure
 taking the store as its first argument."
-  (lambda (store . args)
-    (run-with-store store (apply proc args))))
+  (preserve-documentation proc
+                          (lambda (store . args)
+                            (run-with-store store (apply proc args)))))
 
 ;;
 ;; Store monad operators.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]