sig
type 'a sequence = ('a -> unit) -> unit
type 'a equal = 'a -> 'a -> bool
type 'a ord = 'a -> 'a -> int
type 'a hash = 'a -> int
type 'a with_err = [ `Error of string | `Ok of 'a ]
module PMap :
sig
type ('a, 'b) t
val get : ('a, 'b) CCLinq.PMap.t -> 'a -> 'b option
val size : ('a, 'b) CCLinq.PMap.t -> int
val to_seq : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
val map :
('b -> 'c) -> ('a, 'b) CCLinq.PMap.t -> ('a, 'c) CCLinq.PMap.t
val to_list : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) list
val reverse :
?cmp:'b CCLinq.ord ->
?eq:'b CCLinq.equal ->
?hash:'b CCLinq.hash ->
unit -> ('a, 'b) CCLinq.PMap.t -> ('b, 'a list) CCLinq.PMap.t
val reverse_multimap :
?cmp:'b CCLinq.ord ->
?eq:'b CCLinq.equal ->
?hash:'b CCLinq.hash ->
unit -> ('a, 'b list) CCLinq.PMap.t -> ('b, 'a list) CCLinq.PMap.t
val fold :
('acc -> 'a -> 'b -> 'acc) -> 'acc -> ('a, 'b) CCLinq.PMap.t -> 'acc
val fold_multimap :
('acc -> 'a -> 'b -> 'acc) ->
'acc -> ('a, 'b list) CCLinq.PMap.t -> 'acc
val get_seq : 'a -> ('a, 'b) CCLinq.PMap.t -> 'b CCLinq.sequence
val iter : ('a, 'b) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
val flatten :
('a, 'b CCLinq.sequence) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
val flatten_l :
('a, 'b list) CCLinq.PMap.t -> ('a * 'b) CCLinq.sequence
end
type 'a t
val empty : 'a CCLinq.t
val start : 'a -> 'a CCLinq.t
val return : 'a -> 'a CCLinq.t
val of_list : 'a list -> 'a CCLinq.t
val of_array : 'a array -> 'a CCLinq.t
val of_array_i : 'a array -> (int * 'a) CCLinq.t
val range : int -> int -> int CCLinq.t
val ( -- ) : int -> int -> int CCLinq.t
val of_hashtbl : ('a, 'b) Hashtbl.t -> ('a * 'b) CCLinq.t
val of_seq : 'a CCLinq.sequence -> 'a CCLinq.t
val of_queue : 'a Queue.t -> 'a CCLinq.t
val of_stack : 'a Stack.t -> 'a CCLinq.t
val of_string : string -> char CCLinq.t
val run : ?limit:int -> 'a CCLinq.t -> 'a CCLinq.sequence
val run1 : 'a CCLinq.t -> 'a
val run_no_optim : ?limit:int -> 'a CCLinq.t -> 'a CCLinq.sequence
val map : ('a -> 'b) -> 'a CCLinq.t -> 'b CCLinq.t
val ( >|= ) : 'a CCLinq.t -> ('a -> 'b) -> 'b CCLinq.t
val filter : ('a -> bool) -> 'a CCLinq.t -> 'a CCLinq.t
val size : 'a CCLinq.t -> int CCLinq.t
val choose : 'a CCLinq.t -> 'a CCLinq.t
val filter_map : ('a -> 'b option) -> 'a CCLinq.t -> 'b CCLinq.t
val flat_map : ('a -> 'b CCLinq.sequence) -> 'a CCLinq.t -> 'b CCLinq.t
val flat_map_l : ('a -> 'b list) -> 'a CCLinq.t -> 'b CCLinq.t
val flatten : 'a list CCLinq.t -> 'a CCLinq.t
val flatten_seq : 'a CCLinq.sequence CCLinq.t -> 'a CCLinq.t
val take : int -> 'a CCLinq.t -> 'a CCLinq.t
val take_while : ('a -> bool) -> 'a CCLinq.t -> 'a CCLinq.t
val sort : ?cmp:'a CCLinq.ord -> unit -> 'a CCLinq.t -> 'a CCLinq.t
val distinct : ?cmp:'a CCLinq.ord -> unit -> 'a CCLinq.t -> 'a CCLinq.t
val group_by :
?cmp:'b CCLinq.ord ->
?eq:'b CCLinq.equal ->
?hash:'b CCLinq.hash ->
('a -> 'b) -> 'a CCLinq.t -> ('b, 'a list) CCLinq.PMap.t CCLinq.t
val group_by' :
?cmp:'b CCLinq.ord ->
?eq:'b CCLinq.equal ->
?hash:'b CCLinq.hash ->
('a -> 'b) -> 'a CCLinq.t -> ('b * 'a list) CCLinq.t
val count :
?cmp:'a CCLinq.ord ->
?eq:'a CCLinq.equal ->
?hash:'a CCLinq.hash ->
unit -> 'a CCLinq.t -> ('a, int) CCLinq.PMap.t CCLinq.t
val count' :
?cmp:'a CCLinq.ord -> unit -> 'a CCLinq.t -> ('a * int) CCLinq.t
val fold : ('b -> 'a -> 'b) -> 'b -> 'a CCLinq.t -> 'b CCLinq.t
val reduce :
('a -> 'b) ->
('a -> 'b -> 'b) -> ('b -> 'c) -> 'a CCLinq.t -> 'c CCLinq.t
val is_empty : 'a CCLinq.t -> bool CCLinq.t
val sum : int CCLinq.t -> int CCLinq.t
val contains : ?eq:'a CCLinq.equal -> 'a -> 'a CCLinq.t -> bool CCLinq.t
val average : int CCLinq.t -> int CCLinq.t
val max : int CCLinq.t -> int CCLinq.t
val min : int CCLinq.t -> int CCLinq.t
val for_all : ('a -> bool) -> 'a CCLinq.t -> bool CCLinq.t
val exists : ('a -> bool) -> 'a CCLinq.t -> bool CCLinq.t
val find : ('a -> bool) -> 'a CCLinq.t -> 'a option CCLinq.t
val find_map : ('a -> 'b option) -> 'a CCLinq.t -> 'b option CCLinq.t
val join :
?cmp:'key CCLinq.ord ->
?eq:'key CCLinq.equal ->
?hash:'key CCLinq.hash ->
('a -> 'key) ->
('b -> 'key) ->
merge:('key -> 'a -> 'b -> 'c option) ->
'a CCLinq.t -> 'b CCLinq.t -> 'c CCLinq.t
val group_join :
?cmp:'a CCLinq.ord ->
?eq:'a CCLinq.equal ->
?hash:'a CCLinq.hash ->
('b -> 'a) ->
'a CCLinq.t -> 'b CCLinq.t -> ('a, 'b list) CCLinq.PMap.t CCLinq.t
val product : 'a CCLinq.t -> 'b CCLinq.t -> ('a * 'b) CCLinq.t
val append : 'a CCLinq.t -> 'a CCLinq.t -> 'a CCLinq.t
val inter :
?cmp:'a CCLinq.ord ->
?eq:'a CCLinq.equal ->
?hash:'a CCLinq.hash -> unit -> 'a CCLinq.t -> 'a CCLinq.t -> 'a CCLinq.t
val union :
?cmp:'a CCLinq.ord ->
?eq:'a CCLinq.equal ->
?hash:'a CCLinq.hash -> unit -> 'a CCLinq.t -> 'a CCLinq.t -> 'a CCLinq.t
val diff :
?cmp:'a CCLinq.ord ->
?eq:'a CCLinq.equal ->
?hash:'a CCLinq.hash -> unit -> 'a CCLinq.t -> 'a CCLinq.t -> 'a CCLinq.t
val fst : ('a * 'b) CCLinq.t -> 'a CCLinq.t
val snd : ('a * 'b) CCLinq.t -> 'b CCLinq.t
val map1 : ('a -> 'b) -> ('a * 'c) CCLinq.t -> ('b * 'c) CCLinq.t
val map2 : ('a -> 'b) -> ('c * 'a) CCLinq.t -> ('c * 'b) CCLinq.t
val flatten_opt : 'a option CCLinq.t -> 'a CCLinq.t
val pure : 'a -> 'a CCLinq.t
val app : ('a -> 'b) CCLinq.t -> 'a CCLinq.t -> 'b CCLinq.t
val ( <*> ) : ('a -> 'b) CCLinq.t -> 'a CCLinq.t -> 'b CCLinq.t
val bind : ('a -> 'b CCLinq.t) -> 'a CCLinq.t -> 'b CCLinq.t
val ( >>= ) : 'a CCLinq.t -> ('a -> 'b CCLinq.t) -> 'b CCLinq.t
val lazy_ : 'a lazy_t CCLinq.t -> 'a CCLinq.t
val opt_unwrap : 'a option CCLinq.t -> 'a CCLinq.t
val reflect : 'a CCLinq.t -> 'a CCLinq.sequence CCLinq.t
module Infix :
sig
val ( >>= ) : 'a CCLinq.t -> ('a -> 'b CCLinq.t) -> 'b CCLinq.t
val ( >|= ) : 'a CCLinq.t -> ('a -> 'b) -> 'b CCLinq.t
val ( <*> ) : ('a -> 'b) CCLinq.t -> 'a CCLinq.t -> 'b CCLinq.t
val ( -- ) : int -> int -> int CCLinq.t
end
val to_seq : 'a CCLinq.t -> 'a CCLinq.sequence CCLinq.t
val to_hashtbl : ('a * 'b) CCLinq.t -> ('a, 'b) Hashtbl.t CCLinq.t
val to_queue : 'a CCLinq.t -> 'a Queue.t CCLinq.t
val to_stack : 'a CCLinq.t -> 'a Stack.t CCLinq.t
module List :
sig
val of_list : 'a list -> 'a CCLinq.t
val to_list : 'a CCLinq.t -> 'a list CCLinq.t
val run : 'a CCLinq.t -> 'a list
end
module Array :
sig
val of_array : 'a array -> 'a CCLinq.t
val to_array : 'a CCLinq.t -> 'a array CCLinq.t
val run : 'a CCLinq.t -> 'a array
end
module AdaptSet :
functor (S : Set.S) ->
sig
val of_set : S.t -> S.elt CCLinq.t
val to_set : S.elt CCLinq.t -> S.t CCLinq.t
val run : S.elt CCLinq.t -> S.t
end
module AdaptMap :
functor (M : Map.S) ->
sig
val of_map : 'a M.t -> (M.key * 'a) CCLinq.t
val to_pmap : 'a M.t -> (M.key, 'a) CCLinq.PMap.t
val to_map : (M.key * 'a) CCLinq.t -> 'a M.t CCLinq.t
val run : (M.key * 'a) CCLinq.t -> 'a M.t
end
module IO :
sig
val slurp : Pervasives.in_channel -> string CCLinq.t
val slurp_file : string -> string CCLinq.t
val lines : string CCLinq.t -> string CCLinq.t
val lines' : string CCLinq.t -> string list CCLinq.t
val join : string -> string CCLinq.t -> string CCLinq.t
val unlines : string CCLinq.t -> string CCLinq.t
val out : Pervasives.out_channel -> string CCLinq.t -> unit
val out_lines : Pervasives.out_channel -> string CCLinq.t -> unit
val to_file : string -> string CCLinq.t -> unit CCLinq.with_err
val to_file_exn : string -> string CCLinq.t -> unit
val to_file_lines : string -> string CCLinq.t -> unit CCLinq.with_err
val to_file_lines_exn : string -> string CCLinq.t -> unit
end
end