Automatic lazy wrapping of argument
Add such that arguments are automatically wrapped in the lazy expression, if set as the type.
let (-->) q (p : Lazy<bool>) = not q || (p.Force())
right now i have to write:
false --> lazy (1/0 = 0)
why not make lazy automatic so it becomes:
false --> 1/0 = 0 : True instead of Divide by Zero exception
(while you are at it add a force operator)
Declined per my comment below
Don Syme, F# Language and Core Library Evolution
Don Syme commented
We considered this for F# 1.0. In the end we decided against it, partly because of code-readability reasons, and partly because "Lazy" values are not free in F# - they cost a closure and an allocation.
I don't think we will revisit the decision at this stage.