DRY-up macros

Use `fun` macro to define var in `defun` macro.