Control.ConstraintManip
class (c1 &&& c2) a
class And c1 c2 a
data Arg n
data Result n
type family GetArg t a where ...
class IxIs i t a
class IxEqual i1 i2 a
class IxConstrainBy i c a
class IxConstrainPair c i1 i2 a
class IxConstructorEqual i1 f i2 a
class IxConstraintedConstructorEqual i1 c f i2 a