The problem with being unable to attribute just the getter or setter of a property is resolved at the 184.108.40.206 release (February 2010 CTP).
Consider the following simple C# property
This compiles in debug mode to
which assigns the literal result -- 6 -- of the expression to the temporary that is then returned. The analogous F# method
compiles to IL which preserves the expression to execute only at run time:
which makes static analysis of the code in the more usually analysed state a rather more complicated business.
Another complicating factor is that while this syntax
builds, it attaches the attribute (with
Constructor usage only) to the property as a whole; and not the generated
get_Options method, as in
What I'd like to express, and what I've not found a way to express, is
and MSDN remains opaque on the subject as well.
This is something I could code around, but I can't yet see a clean way of doing to allow separate attributes on the getters and the setters.
Later: The intended syntax for this option is, much as you might expect, this:
with the necessary insets as shown (to avoid error
FS0010: Incomplete structured construct at or before this point in pattern), however on filing a bug report I got confirmation that it is a known issue with the Beta 2 release (aka October 2009 CTP), that this still decorates the property and not just the getter.