kappa :: (S1,...) C kappa :: (T1,...) Dand D is a subclass of C then Ti must be a subsort of Si. Otherwise terms do not have the principal types. With your two declarations you would lose the pricipal types property.
Tobias On 16/02/2021 13:52, Peter Lammich wrote:
Hi List, I have naively tried to define a type-class for types that have more than one element. However, when trying to make the obvious instantiations, I get stuck with "Conflict of type arities" error messages. I could not find any documentation on what the restrictions are that I'm violating here, and how they are motivated. Any pointers? instance prod :: (not_singleton,type) not_singleton .. instance prod :: (type,not_singleton) not_singleton Conflict of type arities: prod :: (type, not_singleton) not_singleton and prod :: (not_singleton, type) not_singleton Peter
Description: S/MIME Cryptographic Signature