Static extension methods supporting member constraints
问题 I need to implement a static extension method supporting member constraints on some basic primitive types like integers, floats, etc. Here's my code for signed integers: module MyOperators = let inline foo (x : ^T) = (^T : (static member Foo : ^T -> int) (x)) type System.Int32 with static member Foo(x : Int32) = 7 // static extension Test code: open MyOperators let x = foo 5 // x should be 7 But compiler complains with error: The type 'System.Int32' does not support any operators named 'Foo'