At least in my ghci (7.6.2), macros only work by the exact name they are defined with. Furthermore `:def! reload (\_ -> return "somethingNotInScope\n::reload")` ought to break `:reload`, but it seems the built-in `:reload` is used instead.