exercise `findVariants`, fix bug I introduced

The bug was: when extracting variants, the supertrait of variants
is compared directly to the fixed point. That will lead to missing
declared variants when the fixed point takes type parameters.