These checks are nice, but I don't think PHP emits any warnings or notices for just dynamically building the array. Try it without the extra checks and see what happens.

Also - We may want to check that `$callable` is actually a valid callable here (heeellloooo php 5.4 callable typehint).