How does non idiomatic global operator overloading work?
问题 I want to understand the code from this answer type Mult = Mult with static member inline ($) (Mult, v1: 'a list) = fun (v2: 'b list) -> v1 |> List.collect (fun x -> v2 |> List.map (fun y -> (x, y))) : list<'a * 'b> static member inline ($) (Mult, v1:'a ) = fun (v2:'a) -> v1 * v2 :'a let inline (*) v1 v2 = (Mult $ v1) v2 F# can resolve overloaded members. (Because it doesn't support currying of members). So, I supposed, it should work for methods as well But it doesn't: type Mult = Mult with