def wrapped(*args, **kwargs): return harvest.plant( f, tag=RANDOM_VARIABLE)(observations, *args, **kwargs)
def apply_f(variables, *args, **kwargs): return harvest.plant( f_, tag=module.VARIABLE)(variables, random.PRNGKey(0), *args, **kwargs)
def program(key, *args, **kwargs): return harvest.plant( f, tag=RANDOM_VARIABLE, blocklist=names)({}, key, *args, **kwargs)