diff --git a/sequence.ml b/sequence.ml index fa8703e..45a8d7a 100644 --- a/sequence.ml +++ b/sequence.ml @@ -192,6 +192,12 @@ module String = let b = Buffer.create 64 in iter (fun c -> Buffer.add_char b c) seq; Buffer.contents b + + let of_in ic = + from_iter (fun k -> + try while true do + let c = input_char ic in k c + done with End_of_file -> ()) end module Int = diff --git a/sequence.mli b/sequence.mli index 25791ef..3b15b08 100644 --- a/sequence.mli +++ b/sequence.mli @@ -144,6 +144,8 @@ module String : sig val to_seq : string -> char t val of_seq : char t -> string + + val of_in : in_channel -> char t end (** Sequences of ints *)