Consuming input line-by-line until the end is often useful. In C# I would write the following loop while ((line = Console.ReadLine()) != null) {.I wanted to do this using idiomatic F# (which to me includes avoiding let mutable) and I came up with this:let rec readlines = seq {    let line = Console.ReadLine()    if line <> null then        yield line        yield! readlines}The last line shows the following warningWarning FS0040: This and other recursive references to the object(s)  being defined will be checked for initialization-soundness at runtime  through the use of a delayed reference. This is because you are  defining one or more recursive objects, rather than recursive  functions. This warning may be suppressed by using '#nowarn 40' or  '--nowarn:40'.The warning would suggest I am actually not writing idiomatic F#(as warnings usually point out problematic code). Is there a better way to write the function that avoids the warnings?
Reading input from console in F# (as a sequence of lines)
beginner;functional programming;io;f#
What you have there is a value, but you probably want it to be a function:let rec readlines () = seq {    let line = Console.ReadLine()    if line <> null then        yield line        yield! readlines ()}