val return : 'a -> ('a, 'b, 'c) tval map : ('a, 'd, 'e) t -> f:('a -> 'b) -> ('b, 'd, 'e) tval both : ('a, 'd, 'e) t -> ('b, 'd, 'e) t -> ('a * 'b, 'd, 'e) tval (<*>) : ('a -> 'b, 'd, 'e) t -> ('a, 'd, 'e) t -> ('b, 'd, 'e) tval (<*) : ('a, 'd, 'e) t -> (unit, 'd, 'e) t -> ('a, 'd, 'e) tval (*>) : (unit, 'd, 'e) t -> ('a, 'd, 'e) t -> ('a, 'd, 'e) tval (>>|) : ('a, 'd, 'e) t -> ('a -> 'b) -> ('b, 'd, 'e) tval apply : ('a -> 'b, 'd, 'e) t -> ('a, 'd, 'e) t -> ('b, 'd, 'e) tval map2 : 
  ('a, 'd, 'e) t ->
  ('b, 'd, 'e) t ->
  f:('a -> 'b -> 'c) ->
  ('c, 'd, 'e) tval map3 : 
  ('a, 'd, 'e) t ->
  ('b, 'd, 'e) t ->
  ('c, 'd, 'e) t ->
  f:('a -> 'b -> 'c -> 'result) ->
  ('result, 'd, 'e) tval all : ('a, 'd, 'e) t list -> ('a list, 'd, 'e) tval all_unit : (unit, 'd, 'e) t list -> (unit, 'd, 'e) t