let read_until_newline ic () = match input_line ic with | exception End_of_file -> None | line -> Some line let read_until_null ic = let lexbuf = Lexing.from_channel ic in fun () -> Input_delim.by_null lexbuf let lines ?(delim_null=false) ic = let reader = if delim_null then read_until_null ic else read_until_newline ic in Stream.create reader