Module Rea.Memo

Memoized lazy computation for asynchronous programming.

type ('R, 'e, 'a) t

Represents a memoized lazy computation.

val create : ('R, 'f, 'a, < ('R, 'D) monad' ; ('R, 'D) errors' ; ('R, 'D) suspend'.. > as 'D) er -> ('R, 'e, ('R, 'f, 'a) t, 'D) er

create eaE effect returns a memoized lazy computation.

val eval : ('R, 'e, 'a) t -> ('R, 'e, 'a, < ('R, 'D) monad' ; ('R, 'D) errors' ; ('R, 'D) suspend'.. > as 'D) er

eval eaM effect executes the effect and memoizes its result or produces the memoized result.