handle
We intentionally override the logic of Handler.handle because we do not want the map-based logic, but rather want to make use of the Kotlin-when syntax.
We also want to support nullable results for some handlers, e.g., when ignoring private declarations in dependencies.