Either has a functor instance for both `Either L _` and `Either _ R`. Is there a way to define those functor instances? Just asking out of curiosity.