@wraps(f)
def wrapper(exp, *args, **kwargs):
    with exp.scm_lock:
        return f(exp, *args, **kwargs)
@wraps(f)
def wrapper(exp, *args, **kwargs):
    with exp.scm_lock:
        return f(exp, *args, **kwargs)