supported functools.partial