i haven't read much, but i'm still confused about how they manage to control the evaluation of arguments, which allows if to be a function.