A while back we already had a similar discussion (and other people had similar discussions or ideas before that), this topic tries to put type checking in the parameter types, which comes with the downside of not being compatible with anytype parameters.
This is why people have experimented with putting type constraints checking in the return value instead: