equal
deleted
inserted
replaced
16 val is_pending: 'a lazy -> bool |
16 val is_pending: 'a lazy -> bool |
17 val is_running: 'a lazy -> bool |
17 val is_running: 'a lazy -> bool |
18 val is_finished: 'a lazy -> bool |
18 val is_finished: 'a lazy -> bool |
19 val force_result: 'a lazy -> 'a Exn.result |
19 val force_result: 'a lazy -> 'a Exn.result |
20 val force: 'a lazy -> 'a |
20 val force: 'a lazy -> 'a |
21 val force_list: 'a lazy list -> 'a list |
|
22 val force_value: 'a lazy -> 'a lazy |
21 val force_value: 'a lazy -> 'a lazy |
23 val trim_value: 'a lazy -> 'a lazy |
22 val trim_value: 'a lazy -> 'a lazy |
24 val map: ('a -> 'b) -> 'a lazy -> 'b lazy |
23 val map: ('a -> 'b) -> 'a lazy -> 'b lazy |
25 val map_finished: ('a -> 'b) -> 'a lazy -> 'b lazy |
24 val map_finished: ('a -> 'b) -> 'a lazy -> 'b lazy |
26 val consolidate: 'a lazy list -> 'a lazy list |
25 val consolidate: 'a lazy list -> 'a lazy list |
110 |
109 |
111 end; |
110 end; |
112 |
111 |
113 fun force x = Exn.release (force_result x); |
112 fun force x = Exn.release (force_result x); |
114 |
113 |
115 fun force_list xs = |
|
116 (List.app (fn x => if is_pending x then ignore (force_result x) else ()) xs; |
|
117 map force xs); |
|
118 |
|
119 fun force_value x = if is_value x then x else value (force x); |
114 fun force_value x = if is_value x then x else value (force x); |
120 fun trim_value x = if is_pending x then x else force_value x; |
115 fun trim_value x = if is_pending x then x else force_value x; |
121 |
116 |
122 |
117 |
123 (* map *) |
118 (* map *) |