recursive ref and invoke expressions