Amend SE-0216 Dynamic Callable: Reduce Overloads

I see your point. A concrete protocol would use an API similar to what the Decoder protocol uses (ie. argument<T>(name: String) throws -> T)

Alternatively, you could use also use a similar strategy to Fix ExpressibleByStringInterpolation

Indeed, now that I think about it, representing a dynamic method call has a good amount of overlap with representing (for instance) a SQL statement with ExpressibleByStringInterpolation. Both are somewhat free-form lists of a (possibly constrained) set of types.

Python interoperability can then vend a concrete PythonDefaultArguments which only accepts arguments representable in Python.