39348
|
1 |
(* ========================================================================= *)
|
|
2 |
(* SUPPORT FOR LAZY EVALUATION *)
|
72004
|
3 |
(* Copyright (c) 2007 Joe Leslie-Hurd, distributed under the BSD License *)
|
39348
|
4 |
(* ========================================================================= *)
|
|
5 |
|
|
6 |
signature Lazy =
|
|
7 |
sig
|
|
8 |
|
|
9 |
type 'a lazy
|
|
10 |
|
|
11 |
val quickly : 'a -> 'a lazy
|
|
12 |
|
|
13 |
val delay : (unit -> 'a) -> 'a lazy
|
|
14 |
|
|
15 |
val force : 'a lazy -> 'a
|
|
16 |
|
|
17 |
val memoize : (unit -> 'a) -> unit -> 'a
|
|
18 |
|
|
19 |
end
|