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