let fold_channel_lines func init ch = let rec fold_channel_lines_inner init = match input_line_opt ch with | None -> init | Some line -> fold_channel_lines_inner (func init line) in fold_channel_lines_inner init