···515515 (* Empty line — skip it *)
516516 skip_eol s;
517517 (End_of_row, Row_start)
518518+ | Some '#' when state = Row_start ->
519519+ (* Comment line — skip to end of line *)
520520+ let rec skip () =
521521+ match peek s with
522522+ | None | Some '\n' | Some '\r' -> skip_eol s
523523+ | Some _ ->
524524+ advance s;
525525+ skip ()
526526+ in
527527+ skip ();
528528+ (End_of_row, Row_start)
518529 | Some ',' when state = In_row -> (
519530 (* Field separator — consume it, read next field *)
520531 advance s;