In an instance such as
instance (Word8Enum g) => Gene g where
...
GHC considers only the right hand side of the instance arrow when matching instances. I.e., constraints aren't considered. So Gene g
overlaps with any other instance, and in particular the one for Gene [a]
above.
Overlapping instances are allowed under certain conditions, but overlapping associated types or type families are not (they will be, in some restricted cases, in upcoming releases of GHC). Therefore, you get the error on the two Sequence
declarations.