Changed the impls argument to be an array name.

Turns out, you can't use preprocessor directives inside macro arguments.
Who'd have thought?