From 593c3fe600a5f5e90a6eea3a175f83d3319b4efe Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 9 Dec 2013 21:10:28 +0100 Subject: monads: Fix 'anym'. * guix/monads.scm (anym): Fix successful case. * tests/monads.scm ("anym"): New test. --- guix/monads.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'guix') diff --git a/guix/monads.scm b/guix/monads.scm index b62fc28a55..f5c9e8e9c7 100644 --- a/guix/monads.scm +++ b/guix/monads.scm @@ -228,9 +228,10 @@ lifted in MONAD, for which PROC returns true." (() (return #f)) ((head tail ...) - (mlet monad ((value head)) - (or (and=> (proc value) return) - head + (mlet* monad ((value head) + (result -> (proc value))) + (if result + (return result) (loop tail)))))))) (define-syntax listm -- cgit v1.2.3