From cbef12c629815547e2e08cd20407ae7f82747d74 Mon Sep 17 00:00:00 2001
From: Samuel Tardieu <sam@rfc1149.net>
Date: Sun, 24 May 2009 15:43:28 +0200
Subject: [PATCH] Add amb-all and bag-of

---
 extra/backtrack/backtrack.factor | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/extra/backtrack/backtrack.factor b/extra/backtrack/backtrack.factor
index 48bae97699..e4e13c3363 100755
--- a/extra/backtrack/backtrack.factor
+++ b/extra/backtrack/backtrack.factor
@@ -71,3 +71,9 @@ MACRO: amb-execute ( seq -- quot )
 
 : cut-amb ( -- )
     f failure set ;
+
+: amb-all ( quot -- )
+    [ { t f } amb [ call fail ] [ drop ] if ] amb-preserve ; inline
+
+: bag-of ( quot -- seq )
+    V{ } clone [ '[ @ _ push ] amb-all ] keep ; inline