lines(+Source, -Lines:list(string)) is det
Lines is a lazy list of lines from Source. Source can be one of:

After the last line has been read, all relevant streams are automatically closed.

Each line in Lines does not contain the line terminator.

   13lines(file(File), Lines) :-
   14    open(File, read, Stream),
   15    lines(stream(Stream), Lines).
   16lines(stream(Stream), Lines) :-
   17    flow_to_llist(line_flow(Stream),Lines).
   18
   19
   20at_eof(line_flow(Stream)) :-
   21    at_end_of_stream(Stream).
   22
   23
   24next(line_flow(Stream),Line) :-
   25    read_line_to_string(Stream,Line).
   26
   27
   28finalize_value(line_flow(_),X,X)