E.g. if you rename the constructor `these :: l -> r -> These l r` to `These :: l -> r -> These l r`, its type can no longer be inferred. I think the data constructor is overwriting the type constructor in the environment.