Haskell Functor implied law

Typeclassopedia говорит:

"Аналогичный аргумент также показывает, что любой экземпляр Functor, удовлетворяющий первому закону (fmap id = id), будет автоматически удовлетворять и второму закону. Практически это означает, что для того, чтобы убедиться, что экземпляр Functor является действительным, необходимо проверить только первый закон (обычно с помощью очень простой индукции)."

Если это так, то зачем вообще упоминать второй закон functor?

Law 1: fmap id = id
Law 2: fmap (g . h) = (fmap g) . (fmap h)

21
задан Tom Crockett 29 November 2011 в 05:46
поделиться