Overload log function

I am trying to overload some functions in the context of S4-classes. Here is a sample code:

foo <- setClass(
  Class = "foo",
  slots = c("name" = "character", "value" = "numeric")
)

setMethod(f = "exp",
          signature = c(x = "foo"),
          definition = function(x) {
            exp(x@value)
          }
)

setMethod(f = "round",
          signature = c(x = "foo", digits = "foo"),
          definition = function(x, digits) {
            round(x@value, digits@value)
          }
)

setMethod(f = "log",
          signature = c(x = "foo", base = "foo"),
          definition = function(x, base) {
            log(x@value, base@value)
          }
)

While the exp and round functions work just fine, the log function does not with the following error:

Error in match.call(definition, call, expand.dots, envir) :
unused argument (base = c("foo", ""))

This is confusing as the args function states that the name of the second (optional) argument is indeed base.

Would you know what the issue is? Thanks.

Overload log function