From 405a9d4ec9806993a6453f0dfba78fc65d5e7993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 8 Oct 2014 23:35:08 +0200 Subject: monads: Add 'mbegin'. * guix/monads.scm (mbegin): New macro. * tests/monads.scm ("mbegin"): New test. * doc/guix.texi (The Store Monad): Document it. --- tests/monads.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/monads.scm b/tests/monads.scm index 5514c8386c..6e3dd00f72 100644 --- a/tests/monads.scm +++ b/tests/monads.scm @@ -32,7 +32,7 @@ #:use-module (srfi srfi-26) #:use-module (srfi srfi-64)) -;; Test the (guix store) module. +;; Test the (guix monads) module. (define %store (open-connection-for-tests)) @@ -99,6 +99,21 @@ %monads %monad-run)) +(test-assert "mbegin" + (every (lambda (monad run) + (with-monad monad + (let* ((been-there? #f) + (number (mbegin monad + (return 1) + (begin + (set! been-there? #t) + (return 2)) + (return 3)))) + (and (= (run number) 3) + been-there?)))) + %monads + %monad-run)) + (test-assert "mlet* + text-file + package-file" (run-with-store %store (mlet* %store-monad ((guile (package-file %bootstrap-guile "bin/guile")) -- cgit v1.2.3