support 'function' type