I agree with the current variance information should be in type-rep, but I plan on extending this with more information (like which smart constructors to use when recombining) and those cannot be in type rep. I eventually want to reduce the duplication between here and type-rep, but my first goal is to reduce the duplication across all the sites where this style of recursion is currently being done. Once that is done we will have a clear picture of the information that type-rep should contain.