sig
module type Basic =
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
module type S =
sig
type _ t
val foldl : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a
val foldr : ('a -> (unit -> 'b) -> 'b) -> (unit -> 'b) -> 'a t -> 'b
val foldr' : ('a -> 'b -> 'b) -> 'b -> 'a t -> 'b
val fold_map :
(module Monoid.S with type t = 'm) -> ('a -> 'm) -> 'a t -> 'm
val any : ('a -> bool) -> 'a t -> bool
val all : ('a -> bool) -> 'a t -> bool
val find : ('a -> bool) -> 'a t -> 'a option
end
module Make :
functor (F : Basic) ->
sig
val foldl : ('a -> 'b -> 'a) -> 'a -> 'b F.t -> 'a
val foldr :
('a -> (unit -> 'b) -> 'b) -> (unit -> 'b) -> 'a F.t -> 'b
val foldr' : ('a -> 'b -> 'b) -> 'b -> 'a F.t -> 'b
val fold_map :
(module Monoid.S with type t = 'm) -> ('a -> 'm) -> 'a F.t -> 'm
val any : ('a -> bool) -> 'a F.t -> bool
val all : ('a -> bool) -> 'a F.t -> bool
val find : ('a -> bool) -> 'a F.t -> 'a option
end
module type M =
sig
type _ t
type _ m
val foldr_m :
('a -> 'b -> 'b Foldable.M.m) ->
'b -> 'a Foldable.M.t -> 'b Foldable.M.m
val foldl_m :
('b -> 'a -> 'b Foldable.M.m) ->
'b -> 'a Foldable.M.t -> 'b Foldable.M.m
end
module type M2 =
sig
type _ t
type (_, _) m
val foldr_m :
('a -> 'b -> ('u, 'b) Foldable.M2.m) ->
'b -> 'a Foldable.M2.t -> ('u, 'b) Foldable.M2.m
val foldl_m :
('b -> 'a -> ('u, 'b) Foldable.M2.m) ->
'b -> 'a Foldable.M2.t -> ('u, 'b) Foldable.M2.m
end
module type M3 =
sig
type _ t
type (_, _, _) m
val foldr_m :
('a -> 'b -> ('u, 'v, 'b) Foldable.M3.m) ->
'b -> 'a Foldable.M3.t -> ('u, 'v, 'b) Foldable.M3.m
val foldl_m :
('b -> 'a -> ('u, 'v, 'b) Foldable.M3.m) ->
'b -> 'a Foldable.M3.t -> ('u, 'v, 'b) Foldable.M3.m
end
end