(* Unmemoized promises *) module PromiseUnmemoized = struct type 'a promise = unit -> 'a let force promise = promise () let makePromise thunk = thunk end