let sum123 () : unit Deferred.t = Deferred.bind (return 1) (fun x -> Deferred.bind (return 2) (fun y -> Deferred.bind (return 3) (fun z -> printf "1 + 2 + 3 = %d\n" (x + y + z); return () )))