A method name and parameter/return signature like:

  foo(a, b, c = d, ...e) => f

should be guarded by something like:

{
...otherMethodGuards,
foo: M.call(AShape, BShape).optional(CShape).rest(EShape).returns(FShape),
}

/**