equal
deleted
inserted
replaced
200 | some => make (fn () => some)); |
200 | some => make (fn () => some)); |
201 |
201 |
202 fun op APPEND (f, g) x = |
202 fun op APPEND (f, g) x = |
203 append (f x) (make (fn () => pull (g x))); |
203 append (f x) (make (fn () => pull (g x))); |
204 |
204 |
205 fun EVERY fs = foldr THEN succeed fs; |
205 fun EVERY fs = fold_rev (curry op THEN) fs succeed; |
206 fun FIRST fs = foldr ORELSE fail fs; |
206 fun FIRST fs = fold_rev (curry op ORELSE) fs fail; |
207 |
207 |
208 fun TRY f = ORELSE (f, succeed); |
208 fun TRY f = ORELSE (f, succeed); |
209 |
209 |
210 fun REPEAT f = |
210 fun REPEAT f = |
211 let |
211 let |