docs: protected Supplier<ExecutionResult> supply(Supplier<ExecutionResult> supplier) {
      return () -> {
        ExecutionResult result = preExecute();
        if (result != null)
          return result;
  
        return postExecute(supplier.get());
      };
    }