Этот фрагмент кода F#
let rec reformat = new EventHandler(fun _ _ ->
b.TextChanged.RemoveHandler reformat
b |> ScrollParser.rewrite_contents_of_rtb
b.TextChanged.AddHandler reformat
)
b.TextChanged.AddHandler reformat
приводит к следующему предупреждению:
traynote.fs(62,41): warning 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. Это происходит потому, что вы определяете один или несколько рекурсивных объектов, а не рекурсивных функций. Это предупреждение может быть подавлено с помощью '#nowarn "40"' или '--nowarn:40'.
Есть ли способ переписать код, чтобы избежать этого предупреждения? Или в F# нет кошерного способа иметь рекурсивные объекты?