This function will use the _resolve_parameters_ magic method
of val to resolve any Symbols with concrete values from the given
The object to resolve (e.g. the gate, operation, etc)
the object to use for resolving all symbols
a gate or operation of the same type, but with all Symbols
replaced with floats according to the given ParamResolver.
If val has no _resolve_parameters_ method or if it returns
NotImplemented, val itself is returned.