From f73286345e8e9cb059f54a9d68fe19e57de75cdc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Mon, 30 Mar 2015 22:59:24 +0200
Subject: [PATCH] gexp: Add printers for <gexp-input> and <gexp-output>.

* guix/gexp.scm (write-gexp-input, write-gexp-output): New procedures.
  (<gexp-input>, <gexp-output>): Use them as printers.
---
 guix/gexp.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/guix/gexp.scm b/guix/gexp.scm
index de8b7bbb466..a2da72e76c0 100644
--- a/guix/gexp.scm
+++ b/guix/gexp.scm
@@ -179,6 +179,15 @@ (define-record-type <gexp-input>
   (output    gexp-input-output)      ;string
   (native?   gexp-input-native?))    ;Boolean
 
+(define (write-gexp-input input port)
+  (match input
+    (($ <gexp-input> thing output #f)
+     (format port "#<gexp-input ~s:~a>" thing output))
+    (($ <gexp-input> thing output #t)
+     (format port "#<gexp-input native ~s:~a>" thing output))))
+
+(set-record-type-printer! <gexp-input> write-gexp-input)
+
 (define* (gexp-input thing                        ;convenience procedure
                      #:optional (output "out")
                      #:key native?)
@@ -193,6 +202,13 @@ (define-record-type <gexp-output>
   gexp-output?
   (name gexp-output-name))
 
+(define (write-gexp-output output port)
+  (match output
+    (($ <gexp-output> name)
+     (format port "#<gexp-output ~a>" name))))
+
+(set-record-type-printer! <gexp-output> write-gexp-output)
+
 (define raw-derivation
   (store-lift derivation))
 
-- 
GitLab