В мире Java соглашения об именах для интерфейсов довольно хорошо установлены. Например, когда вы говорите, что определенный класс реализует интерфейс Comparable
, вы можете сказать, что его объекты сопоставимы. Однако соглашения об именах для классов типов не так хорошо установлены. Например, Int
имеет неявный доступный Numeric
, поэтому вы можете сказать: « Int
является Numeric
типом»). Но есть класс типов Порядок
. Я не понимаю, почему было выбрано это имя. « Int
- это Тип упорядочивания
» не имеет никакого смысла. Возможно, это должно читаться как « Тип Int
имеет упорядочение
». Затем есть Equal
и Show
в Scalaz. Я совершенно не понимаю, почему были выбраны эти имена (кроме того, что они используются в Haskell). Я попытался найти в Haskell, родном языке классов типов, хорошее соглашение об именах, но обнаружил, что их на самом деле не существует. Ребята из Haskell, похоже, не заботятся об именах (это то, что я понял из обсуждений в списках рассылки). Но я из мира Java меня волнуют имена. Я не совсем могу привыкнуть к парадигме «типы говорят все».
Возникает вопрос: каким соглашениям об именах вы следуете, если вообще следуете, для именования классов типов?