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