diff lib/ur/list.ur @ 1547:553a5cc3a4b5

Fix another list unurlification segfault bug; List.foldlMi
author Adam Chlipala <adam@chlipala.net>
date Sun, 21 Aug 2011 13:41:57 -0400
parents dde3bd82cb3d
children f4cb4eebf7ae
line wrap: on
line diff
--- a/lib/ur/list.ur	Sun Aug 21 10:55:31 2011 -0400
+++ b/lib/ur/list.ur	Sun Aug 21 13:41:57 2011 -0400
@@ -255,6 +255,18 @@
         foldlM'
     end
 
+fun foldlMi [m] (_ : monad m) [a] [b] f =
+    let
+        fun foldlMi' i acc ls =
+            case ls of
+                [] => return acc
+              | x :: ls =>
+                acc <- f i x acc;
+                foldlMi' (i + 1) acc ls
+    in
+        foldlMi' 0
+    end
+
 fun all [m] f =
     let
         fun all' ls =