From afe50be2ed547e0b8d83200bbec77b6037334678 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sat, 13 Jun 2009 14:29:36 -0400 Subject: inside ; fix Specialize bug with datatype decls generating other mutually-recursive datatype decls --- src/list_util.sml | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/list_util.sml') diff --git a/src/list_util.sml b/src/list_util.sml index bafac51b..1f6b24ee 100644 --- a/src/list_util.sml +++ b/src/list_util.sml @@ -123,6 +123,19 @@ fun foldlMapPartial f s = fm ([], s) end +fun foldlMapAbort f s = + let + fun fm (ls', s) ls = + case ls of + nil => SOME (rev ls', s) + | h :: t => + case f (h, s) of + NONE => NONE + | SOME (h', s') => fm (h' :: ls', s') t + in + fm ([], s) + end + fun search f = let fun s ls = -- cgit v1.2.3