Always? In that case, do you know why Dart has a `covariant` keyword [0], which makes function parameters covariant?
[0] https://dart.dev/language/type-system#covariant-keyword