Я читаю/слушаю презентацию Криса Тейлора об алгебраических типах данных.
http://chris-taylor.github.io/blog/2013/02/10/the-алгебра-из-алгебраических-данных-типов/
И есть раздел о типах функций. В частности, пример
data Bool = True | False
data Trio = First | Second | Third
Учитывая закон
a -> b == B^A
Данный
Trio -> Bool should equal 8
Почему 8, а не 6 через умножение?
Если я правильно понимаю, конкретные комбинации должны быть
First -> True
First -> False
Second -> True
Second -> False
Third -> True
Third -> False
Разве это не всего 6 конкретных реализаций Trio -> Bool
?
Что мне не хватает?