sig
  type _ t
  val foldl : ('a -> 'b -> 'a) -> 'a -> 'b Foldable.Basic.t -> 'a
  val foldr :
    ('a -> (unit -> 'b) -> 'b) -> (unit -> 'b) -> 'a Foldable.Basic.t -> 'b
end