code: def attach(func, params):
  	
  	sig = inspect.signature(func)
  	params = Projection(sig.parameters.keys(), params)
  	return functools.partial(func, **params)
docs: Given a function and a namespace of possible parameters,
  	bind any params matching the signature of the function
  	to that function.