<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def annotate_arg(arg_name, with_annotation):
 """Adds an annotation to an injected arg. arg_name must be one of the named args of the decorated function, i.e., @annotate_arg('foo', with_annotation='something') is OK, but @annotate_arg('foo', with_annotation='something') is not. The same arg (on the same function) may not be annotated twice. Args: arg_name: the name of the arg to annotate on the decorated function with_annotation: an annotation object Returns: a function that will decorate functions passed to it """

    arg_binding_key = arg_binding_keys.new(arg_name, with_annotation)
    return _get_pinject_wrapper(locations.get_back_frame_loc(),
                                arg_binding_key=arg_binding_key)