Давайте ещё докинем к отличному контенту от Одомонтоиса)
Кака Олег сказал, можно автоматом свойства выводить. А также эти свойства можно автоматически доказывать, что уменьшает работу для пруверов.
Например, меньше свойств про перестановки для списков нужно явно руками доказывать (полиморфные функции могут кратность и порядок элементов менять, но не сами элементы).
А ещё такие вещи хочется интернализовать в теорию типов, чтоб с этим нормально работать, а не аксиоматически. Например, type theory in color (
https://dl.acm.org/doi/abs/10.1145/2544174.2500577)