Why following code gives me "This code is not sufficiently generic" error?
type Vector2D<'a when 'a : (static member (+) : 'a * 'a -> 'a) > =
struct
val X: 'a
val Y: 'a
new(x: 'a, y: 'a) = {
X = x;
Y = y
}
end