All you are missing are parentheses that would be compiled if it were:
let rec HelloEternalWorld() =
Console.ReadLine() |> printf "%s\n"
HelloEternalWorld()
To define a function without arguments, you need parentheses to distinguish a function from a simple value.
source
share