fold
inline fun <T, R> InterceptResult<T>.fold(onIntercepted: (reason: InterceptedReason) -> R, otherwise: (call: T) -> R): R
inline fun <R> CommandResolveResult.fold(onSuccess: (ResolvedCommandCall?) -> R, onFailure: (CommandExecuteResult.Failure) -> R): R