sig
module type COLLECTION =
sig
type 'a t
val empty : 'a CCBatch.COLLECTION.t
val fold : ('a -> 'b -> 'a) -> 'a -> 'b CCBatch.COLLECTION.t -> 'a
val map :
('a -> 'b) -> 'a CCBatch.COLLECTION.t -> 'b CCBatch.COLLECTION.t
val filter :
('a -> bool) -> 'a CCBatch.COLLECTION.t -> 'a CCBatch.COLLECTION.t
val filter_map :
('a -> 'b option) ->
'a CCBatch.COLLECTION.t -> 'b CCBatch.COLLECTION.t
val flat_map :
('a -> 'b CCBatch.COLLECTION.t) ->
'a CCBatch.COLLECTION.t -> 'b CCBatch.COLLECTION.t
end
module type S =
sig
type 'a t
type ('a, 'b) op
val apply : ('a, 'b) CCBatch.S.op -> 'a CCBatch.S.t -> 'b CCBatch.S.t
val apply_fold :
('a, 'b) CCBatch.S.op ->
('c -> 'b -> 'c) -> 'c -> 'a CCBatch.S.t -> 'c
val apply' : 'a CCBatch.S.t -> ('a, 'b) CCBatch.S.op -> 'b CCBatch.S.t
val id : ('a, 'a) CCBatch.S.op
val map : ('a -> 'b) -> ('a, 'b) CCBatch.S.op
val filter : ('a -> bool) -> ('a, 'a) CCBatch.S.op
val filter_map : ('a -> 'b option) -> ('a, 'b) CCBatch.S.op
val flat_map : ('a -> 'b CCBatch.S.t) -> ('a, 'b) CCBatch.S.op
val extern :
('a CCBatch.S.t -> 'b CCBatch.S.t) -> ('a, 'b) CCBatch.S.op
val compose :
('b, 'c) CCBatch.S.op ->
('a, 'b) CCBatch.S.op -> ('a, 'c) CCBatch.S.op
val ( >>> ) :
('a, 'b) CCBatch.S.op ->
('b, 'c) CCBatch.S.op -> ('a, 'c) CCBatch.S.op
end
module Make :
functor (C : COLLECTION) ->
sig
type 'a t = 'a C.t
type ('a, 'b) op
val apply : ('a, 'b) op -> 'a t -> 'b t
val apply_fold : ('a, 'b) op -> ('c -> 'b -> 'c) -> 'c -> 'a t -> 'c
val apply' : 'a t -> ('a, 'b) op -> 'b t
val id : ('a, 'a) op
val map : ('a -> 'b) -> ('a, 'b) op
val filter : ('a -> bool) -> ('a, 'a) op
val filter_map : ('a -> 'b option) -> ('a, 'b) op
val flat_map : ('a -> 'b t) -> ('a, 'b) op
val extern : ('a t -> 'b t) -> ('a, 'b) op
val compose : ('b, 'c) op -> ('a, 'b) op -> ('a, 'c) op
val ( >>> ) : ('a, 'b) op -> ('b, 'c) op -> ('a, 'c) op
end
end