sig
type ('a, 'b) t = ('a, 'b) Cf_flow.cell Lazy.t
and ('a, 'b) cell =
P of 'b * ('a, 'b) Cf_flow.t
| Q of ('a -> ('a, 'b) Cf_flow.cell)
| Z
val nil : ('a, 'b) Cf_flow.t
val nop : ('a, 'a) Cf_flow.t
val filter : ('a -> bool) -> ('a, 'a) Cf_flow.t
val map : ('a -> 'b) -> ('a, 'b) Cf_flow.t
val optmap : ('a -> 'b option) -> ('a, 'b) Cf_flow.t
val listmap : ('a -> 'b list) -> ('a, 'b) Cf_flow.t
val seqmap : ('a -> 'b Cf_seq.t) -> ('a, 'b) Cf_flow.t
val broadcast : ('a, 'b) Cf_flow.t list -> ('a, 'b) Cf_flow.t
val mapstate : ('a -> 'b -> 'a * 'c) -> 'a -> ('b, 'c) Cf_flow.t
val machine :
('a -> 'b -> ('a * 'c Cf_seq.t) option) -> 'a -> ('b, 'c) Cf_flow.t
module Op :
sig
val ( -*- ) :
('a, 'b) Cf_flow.t -> ('a, 'b) Cf_flow.t -> ('a, 'b) Cf_flow.t
val ( -=- ) :
('a, 'b) Cf_flow.t -> ('b, 'c) Cf_flow.t -> ('a, 'c) Cf_flow.t
val ( -&- ) :
('a, 'b) Cf_flow.t -> ('a, 'b) Cf_flow.t -> ('a, 'b) Cf_flow.t
val ( -+- ) :
('a, 'b) Cf_flow.t ->
('c, 'd) Cf_flow.t ->
(('a, 'c) Cf_either.t, ('b, 'd) Cf_either.t) Cf_flow.t
val ( ~@ ) : ('a, 'a) Cf_flow.t -> ('a, 'a) Cf_flow.t
val ( ~@< ) :
(('a, 'b) Cf_either.t, ('a, 'c) Cf_either.t) Cf_flow.t ->
('b, 'c) Cf_flow.t
val ( -@- ) :
(('a, 'b) Cf_either.t, ('c, 'd) Cf_either.t) Cf_flow.t ->
('c, 'a) Cf_flow.t -> ('b, 'd) Cf_flow.t
end
val to_seq : (unit, 'a) Cf_flow.t -> 'a Cf_seq.t
val of_seq : 'a Cf_seq.t -> ('b, 'a) Cf_flow.t
val upcase : (char, char) Cf_flow.t
val dncase : (char, char) Cf_flow.t
val commute : ('a, 'b) Cf_flow.t -> 'a Cf_seq.t -> 'b Cf_seq.t
val commute_string : (char, char) Cf_flow.t -> string -> string
val drain : ('a, 'b) Cf_flow.t -> 'b Cf_seq.t
val flush : ('a, 'b) Cf_flow.t -> ('a, 'b) Cf_flow.t
val ingestor : ('a Cf_seq.t option, 'a) Cf_flow.t
val transcode :
('a Cf_seq.t option, 'b) Cf_flow.t -> 'a Cf_seq.t -> 'b Cf_seq.t
module Transcode :
sig
val more :
('a Cf_seq.t option, 'b) Cf_flow.t ->
'a Cf_seq.t -> 'b Cf_seq.t * ('a Cf_seq.t option, 'b) Cf_flow.t
val last : ('a Cf_seq.t option, 'b) Cf_flow.t -> 'b Cf_seq.t
end
val readC : (('a, 'b) Cf_flow.t, 'a) Cf_cmonad.t
val writeC : 'a -> (('b, 'a) Cf_flow.t, unit) Cf_cmonad.t
val evalC : (('a, 'b) Cf_flow.t, unit) Cf_cmonad.t -> ('a, 'b) Cf_flow.t
val readSC : ('a, ('b, 'c) Cf_flow.t, 'b) Cf_scmonad.t
val writeSC : 'a -> ('b, ('c, 'a) Cf_flow.t, unit) Cf_scmonad.t
val evalSC :
('a, ('b, 'c) Cf_flow.t, unit) Cf_scmonad.t -> 'a -> ('b, 'c) Cf_flow.t
end