How would we feel about making the Functor hierarchy a little more granular? I.e. following PS's lead rather than Haskell's. We could go from:

to:

The impetus for this issue is that when trying to address #52, it's worlds easier if we have List/extend/List/duplicate. List cannot be a Comonad (because there's no way to implement extract). List can be a very useful Extend though. There are many other data types that make great Applys/Binds/Extends that don't necessarily have the right structure to implement Applicative/Monad/Comonad.
How would we feel about making the
Functorhierarchy a little more granular? I.e. following PS's lead rather than Haskell's. We could go from:to:
The impetus for this issue is that when trying to address #52, it's worlds easier if we have
List/extend/List/duplicate.Listcannot be aComonad(because there's no way to implementextract).Listcan be a very usefulExtendthough. There are many other data types that make greatApplys/Binds/Extends that don't necessarily have the right structure to implementApplicative/Monad/Comonad.