> If you design your functions in a way that that function will never receive an array, you dont have to test for it. And if some idiot tries one day, it should error very loudly that something is wrong.
Then you've moved it from a test to a runtime assertion. You're still re-implementing the type-checker, poorly.