Module Make2.M
Source M
is a module which contains a specialised subset of the functions from the Stdlib.Seq
module. Specifically, it contains those functions which take a function as parameter (e.g., map
but not length
). Moreover, those parameter functions' return type is specialised to be within the mon
monad. E.g., given module SeqMon = Make2(Mon)
then SeqMon.M.map
has type ('a -> ('b, 'e) Mon.t) -> ('a, 'e) t -> ('b, 'e) t
and SeqMon.M.iter
has type ('a -> (unit, 'e) mon) -> ('a, 'e) t -> (unit, 'e) mon
.
See the documentation of Sigs2.SEQMON2TRANSFORMERS
for more details.
Source val fold_left :
('a -> 'b -> ('a , 'e ) Mon.t ) ->
'a ->
('b , 'e ) t ->
('a , 'e ) Mon.t
Source val fold_lefti :
('b -> int -> 'a -> ('b , 'e ) Mon.t ) ->
'b ->
('a , 'e ) t ->
('b , 'e ) Mon.t
Source val find_map :
('a -> ('b option , 'e ) Mon.t ) ->
('a , 'e ) t ->
('b option , 'e ) Mon.t
Source val iter2 :
('a -> 'b -> (unit, 'e ) Mon.t ) ->
('a , 'e ) t ->
('b , 'e ) t ->
(unit, 'e ) Mon.t
Source val fold_left2 :
('a -> 'b -> 'c -> ('a , 'e ) Mon.t ) ->
'a ->
('b , 'e ) t ->
('c , 'e ) t ->
('a , 'e ) Mon.t
Source val for_all2 :
('a -> 'b -> (bool, 'e ) Mon.t ) ->
('a , 'e ) t ->
('b , 'e ) t ->
(bool, 'e ) Mon.t
Source val exists2 :
('a -> 'b -> (bool, 'e ) Mon.t ) ->
('a , 'e ) t ->
('b , 'e ) t ->
(bool, 'e ) Mon.t
Source val init : int -> (int -> ('a , 'e ) Mon.t ) -> ('a , 'e ) t
Source val unfold : ('b -> (('a * 'b ) option , 'e ) Mon.t ) -> 'b -> ('a , 'e ) t
Source val iterate : ('a -> ('a , 'e ) Mon.t ) -> 'a -> ('a , 'e ) t
Source val map : ('a -> ('b , 'e ) Mon.t ) -> ('a , 'e ) t -> ('b , 'e ) t
Source val mapi : (int -> 'a -> ('b , 'e ) Mon.t ) -> ('a , 'e ) t -> ('b , 'e ) t
Source val filter : ('a -> (bool, 'e ) Mon.t ) -> ('a , 'e ) t -> ('a , 'e ) t
Source val filter_map : ('a -> ('b option , 'e ) Mon.t ) -> ('a , 'e ) t -> ('b , 'e ) t
Source val scan : ('b -> 'a -> ('b , 'e ) Mon.t ) -> 'b -> ('a , 'e ) t -> ('b , 'e ) t
Source val take_while : ('a -> (bool, 'e ) Mon.t ) -> ('a , 'e ) t -> ('a , 'e ) t
Source val drop_while : ('a -> (bool, 'e ) Mon.t ) -> ('a , 'e ) t -> ('a , 'e ) t
Source val group : ('a -> 'a -> (bool, 'e ) Mon.t ) -> ('a , 'e ) t -> (('a , 'e ) t , 'e ) t
Source val map2 :
('a -> 'b -> ('c , 'e ) Mon.t ) ->
('a , 'e ) t ->
('b , 'e ) t ->
('c , 'e ) t
Source val map_product :
('a -> 'b -> ('c , 'e ) Mon.t ) ->
('a , 'e ) t ->
('b , 'e ) t ->
('c , 'e ) t
Source val partition :
('a -> (bool, 'e ) Mon.t ) ->
('a , 'e ) t ->
('a , 'e ) t * ('a , 'e ) t