Deferred.T
type ('a, 'x, 'e) t =
| Undeferred of ( 'a * 'x Tree.t, 'e ) Core_kernel.Result.t
| Deferred of ( 'a * 'x Tree.t, 'e ) Async.Deferred.Result.t
val return : 'a -> ( 'a0, 'x, 'e ) t
val map : [> `Custom of ( 'a, 'b, 'c ) t -> f:( 'a -> 'd ) -> ( 'd, 'b, 'c ) t ]
val bind : ( 'a, 'x, 'e ) t -> f:( 'a0 -> ( 'b, 'x0, 'e0 ) t ) -> ( 'b0, 'x1, 'e1 ) t
val lift : ( 'a, 'x, 'e ) T.t -> ( 'a0, 'x0, 'e0 ) t