Допустим, у меня есть класс типов с n параметрами типа, и я хочу, чтобы любой из них однозначно определял все остальные. Достаточно ли сделать так, чтобы зависимости образовывали цикл, как в
class Foo a b c | a -> b, b -> c, c -> a
(линейный), где есть путь от каждого параметра к любому другому, или мне нужно расширить все возможные пути, как в
class Bar a b c | a -> b, a -> c, b -> a, b -> c, c -> a, c -> b
(квадратичный)? Есть ли заметная разница между ними? А как насчет
class Baz a b c | a -> b c, b -> a c, c -> a b
a -> b c, b -> a c, c -> a bв отношении... - person András Kovács   schedule 04.09.2015