In the compilation view, there is a difference between a property of a function type compiled as FSharpFunc<unit, unit> Toto { get; }, and a method that takes a block and returned block compiled as unit Toto().
The first expression of the object implements a different interface:
type IToto =
abstract Toto : (unit -> unit)
{ new IToto with
member this.Toto =
fun () -> () }
source
share