From 9216cffaaa1ef137ef5bdb5b290a930cc6198850 Mon Sep 17 00:00:00 2001 From: Stephane Glondu Date: Mon, 21 Feb 2011 17:34:06 +0100 Subject: Imported Upstream version 0.2.pl2 --- AAC_search_monad.ml | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'AAC_search_monad.ml') diff --git a/AAC_search_monad.ml b/AAC_search_monad.ml index b7aabbd..09a6455 100644 --- a/AAC_search_monad.ml +++ b/AAC_search_monad.ml @@ -63,3 +63,8 @@ let to_list m = (fold (fun x acc -> x::acc) m []) let sort f m = N (List.map (fun x -> F x) (List.sort f (to_list m))) + +(* preserve the structure of the heap *) +let filter f m = + fold (fun x acc -> (if f x then return x else fail ()) >>| acc) m (N []) + -- cgit v1.2.3