@curry
def _broadcast_trick_inner(func, shape, meta=(), *args, **kwargs):
    if (shape == ()):
        return np.broadcast_to(func(meta, *args, shape=(), **kwargs), shape)
    else:
        return np.broadcast_to(func(meta, *args, shape=1, **kwargs), shape)
@curry
def _broadcast_trick_inner(func, shape, meta=(), *args, **kwargs):
    if (shape == ()):
        return np.broadcast_to(func(meta, *args, shape=(), **kwargs), shape)
    else:
        return np.broadcast_to(func(meta, *args, shape=1, **kwargs), shape)