<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def attach(func, params):
 	""" 	Given a function and a namespace of possible parameters, 	bind any params matching the signature of the function 	to that function. 	"""

	sig = inspect.signature(func)
	params = Projection(sig.parameters.keys(), params)
	return functools.partial(func, **params)