Trying to understand how an elisp function behaves? Just call M-x trace-function, and you can see arguments and return values!