I am following the example on page 107 of "Developing application with Objective-CAML".
type 'a v = Imm of 'a| Def of (unit -> 'a)
Now I am trying to understand how the constructor type Def enforces deferred evaluation? What does it mean to have Def parameterized with (unit -> 'a)?