(Можно не отвечать)
Вырывка из продакшен кода:
class GetConstr (Deps m) => CollectionModule m where
type Coll m coll item :: Constraint
instance CollectionModule HashMap where
type Coll HashMap c a = (c ~ HashMapOf a, a ~ (M.ContainerKey c, M.MapValue c), M.IsMap c)
Причем: data Super = forall c v. Sup c v | forall c. C c type NoDeps = 'C (() :: Constraint) type family GetConstr (s :: Super) :: Constraint where GetConstr ('Sup (c :: Constraint) v) = c GetConstr ('C (c :: Constraint)) = c Хмм, а можно ли констрейнт справа поставить? Кто его знает... 🤔
ну сорян, в этом коде явные конктрейнты-эквивалентности, а не то, что ты написал
Обсуждают сегодня