def decorate(func, caller):
evaldict = func.__globals__.copy()<EOL>evaldict['<STR_LIT>'] = caller<EOL>evaldict['<STR_LIT>'] = func<EOL>fun = FunctionMaker.create(<EOL>func, "<STR_LIT>",<EOL>evaldict, __wrapped__=func)<EOL>if hasattr(func, '<STR_LIT>'):<EOL><INDENT>fun.__qualname__ = func.__qualname__<EOL><DEDENT>return fun<EOL>
decorate(func, caller) decorates a function using a caller.