sig
  type _ t
  type (_, _) f
  val traverse : ('-> ('u, 'b) f) -> 'a t -> ('u, 'b t) f
  val traverse_ : ('-> ('u, 'b) f) -> 'a t -> ('u, unit) f
  val sequence : ('u, 'a) f t -> ('u, 'a t) f
  val sequence_ : ('u, 'a) f t -> ('u, unit) f
end