Silk.NET, and the source generator contains the same mod pipeline as in SilkTouchXthing = Vector2.Abs(thing) is much cleaner than thing = Vector2<T>.Abs(thing). in most cases extension methods just work also, but you do raise a good point that sometimes you will have to repeat the generic but i'm okay with this.#if NET8_0 this is assumed if we're targeting 3.0. 3.0 will target the latest even-numbered SDK at time of release.Sqrt instead of SquareRoot. generally prefer the names that we've used in Silk.NET.Maths because we've already bikeshedded these.Because the type of T has to be narrowed to IFloatingPointIeee754<T>, we can't actually implement the interface on Vector3<T>. I don't think Silk.NET.Maths ever did support Vector-as-Scalar as we had once thought of doing (i.e. allowing Scalar.Add<Vector3<float>>(l, r)) so we can live with this. it's cursed anyway.Ideally, this should be vectorized. In practice, that's a lot of work. no more work than we were prepared to do for 2.0Extension 3: INumber<Vector3<T>> Implementation yeah I guess?Extension 4: Directional static properties if we're doing something like this it should be an extension method that allows the specification of the coordinate system, not a simple property.Extension 5: Convenience methods yep fineExtension 6: IUtf8SpanFormattable (.NET 8) if someone's willing to do it then yeahImplicit cast to Vector2<T>, drop the Z component should be explicitdocumentation/proposals and make a more formal proposal like the WIP one in #1727, making rationale and alternatives (and the discussion points thereof) clear; if you want this in 3.0Silk.NETthing = Vector2.Abs(thing)thing = Vector2<T>.Abs(thing)#if NET8_0SqrtSquareRootSilk.NET.MathsBecause the type of T has to be narrowed to IFloatingPointIeee754<T>, we can't actually implement the interface on Vector3<T>.Scalar.Add<Vector3<float>>(l, r)Ideally, this should be vectorized. In practice, that's a lot of work.Extension 3: INumber<Vector3<T>> ImplementationExtension 4: Directional static propertiesExtension 5: Convenience methodsExtension 6: IUtf8SpanFormattable (.NET 8)Implicit cast to Vector2<T>, drop the Z componentdocumentation/proposals