https://mail.haskell.org/pipermail/haskell-cafe/2010-November/086055.html
http://conal.net/blog/posts/simplifying-semantics-with-type-class-morphisms
http://conal.net/blog/posts/another-lovely-example-of-type-class-morphisms
https://arxiv.org/pdf/1202.2919.pdf
eta (pure c) = pure c
eta (f <*> x) = eta f <*> eta x
Applicative (Sum f g): https://gist.github.com/Icelandjack/78542ddbdb622a48d8e60e14510cd7dd
In addition to these we have some uninteresting ones.
I don't think there are any transformations Maybe ~> (m, )
but there is (a unique?) one
a :: (m, ) ~> Maybe
a (_, m) = Just m
pure
for[]
andZipList
isso a natural transformation must take
[()]
toZipList (repeat ())
.. infinite lists, seems to follow laws but not interesting