move defmacro before call instead of mysterious eval-when-compile

for the byte-compileness
Merge pull request #69 from unhammer/master

move defmacro before call instead of mysterious eval-when-compile