Сильная система типов всё же даёт некоторые гарантии. По крайней мере, ты не положишь кошку в список собак. А то, что тайпчекер Хаскеля не ловит ошибки использования нетотальных функций - так всё-таки он не Идрис и не Агда. (Да, я в целом фанат языков с сильной статической типизацией :))
Похоже вы так и не поняли, что Николай донести хотел...
:-)
Дело не в том, что в список собак положат кошку, а в том, что у нас будет список просто каких-то существ, и у них будут
может два свойства:
— тип существа
— количество ног,
и когда нам надо ПОСЧИТАТЬ ЧИСЛО НОГ В СТАЕ
нам в общем -то всё равно, кошки там, собаки или тараканы вообще.
Берём у каждого кол-во ног, если оно вообще указано, и прибавляем к общей сумме.
А если у кого-то не было вообще свойства КОЛИЧЕСТВО НОГ, его ноги мы не прибавим.
Да, это не типобезопасно, но зато когда у нас в стае появится Маугли, волки, медведь и удав,
мы ноги всех посчитаем без проблем.