if changing the return type is allowed, you can basically allow everything else as well. I would rather get a fatal error that a method signature is wrong, then having some nasty bugs because of changed return type. like `array[0]` is suddenly `string[0]`.