扩展default使之能支持宏，但omission仍只能支持函数