allow calling abstract function fields (closes #1993)
allow deeper macro recursion