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