Can you conditionally apply a macro?

E.g. let's say you want a linked list to be a Model, but only when its Element is a Model.

I don't think a where clause can accomplish this. Can it? If not, what would you do instead? Normally I might nest something within an offending type, to section it off, but you can't do that with a macro either.