I like your thinking, but the actual instances of GenericImpl may come from far away. I need to sit in the sun and ponder this for a bit - I suspect that there may be a compiler bug here (maybe the same one as linked in the SO answers), but I need to get my code on a sounder footing theoretically.