handle

open override fun handle(ctx: HandlerNode): ResultNode

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 non-nullable result handlers