кода, с тайпклассами?
(Так, чтобы без больших проблем с UndecidableInstances и AmbiguousTypes, когда приходится на каждую строчку кода две строчки type applications писать)
Есть такая практика: нормально делай, нормально будет
Не использовать тайпклассы
1. универсальных советов нет 2. UndecidableInstances — обычно плохо, не используйте их. чтобы их не приходилось использовать, оборачивайте в newtype 3. AmbiguousTypes — ничего плохого. если вам мешают собачки, передавайте специальный аргумент-метку, несущий типы, например, Proxy
к первому потом просто коэрсить?
можно и явно разворачивать, можно так передавать
Писать тайпклассы так, чтобы тайпчекер мог вывести типы без ручных аннотаций
тайп-апликейшен это просто еще одни аргументы. Если функции в классе требуют две строчки аргументов, то это просто такая функция. Если какие-то аргументы семантически зависят от других аргументов ранее переданных, то это можно явно указать компилятору фандепами или тайп-фемелями
Обсуждают сегодня