This is actually not the difference between static members and functions - it is a bit more subtle. Here's another review:
type T =
static member A () (o:obj) = ()
static member B () = fun (o:obj) -> ()
T.A () 1
T.B () 1
Please note that the signatures T.Aand T.Bdifferent (it really is described in section 11.2.1.1 specification):
type T =
class
static member A : unit -> o:obj -> unit
static member B : unit -> (obj -> unit)
end
, , , .NET A ( F #), B , F #. , , , .