Из документов MSDN подпись List.max
:
List.max : 'T list -> 'T (requires comparison)
Мои вопросы:
- Как компилятор статически проверяет, что
'T
поддерживает операцию сравнения? - Является ли
requires
ключевым словом для указания ограничений типа? Если да, то какие все типы ограничений я могу указать с его помощью? - Могу ли я определить свои собственные виды ограничений, как я могу сделать с классами типов в Scala?