So I just wanted to ask why this works :
let internal X th =
foo()
th()
bar()
let Start() =
X <| fun () -> ( foo(); bar(); etc... )
And this doesn’t work :
let internal XD A =
let X th =
foo()
th()
bar()
(X <| fun () -> A)
let Start() =
XD ( foo(); bar(); etc... )
it’s looking like the same for me but first variant works as wrapper and I completely can’t understand how second variant works.
The below is the correct code for 2nd version for what you want to achieve (without lambda using lazy values).