В Haskell функторы почти всегда могут быть получены, есть ли случай, когда тип является функтором и удовлетворяет законам функтора (таким как fmap id == id
), но не может быть получен в соответствии с простым набором правил?
А как насчет Foldable, Traversable, Segigroup и других? Есть ли в наличии нетривиальные случаи?