technically you don't even have to write the type specs which is something i'm abusing in the SilkTouchX proposal to leave things open for the team to change
@shrimpcat in the utf8 formatting bit, why not also check the output from the .Append bits to return early? unless im misremembering those method's return values
if we can implement something in terms of the generic maths interfaces without implementing the functions exposed by any of the generic maths interfaces ourselves (a la Scalar.BaseOps) then i'm happy with it being in Silk.NET.Maths
basically if ever we find ourselves constrained by the generic maths constraints, then we probably shouldn't be working to allow whatever you're trying to do
basically no rules were defined for generic maths when Silk.NET.Maths when it was created, and we made no attempt to define them, instead allowing everything in the absence of rules set by an ecosystem authority (a la .NET API Review). this led to us defining our own Add, Subtract, etc in Scalar.BaseOps, and implementing every algorithm under the sun in terms of those fully generalised BaseOps regardless of whether its correct, makes sense, or would yield the correct results for a given type.