
My recommended order for learning:
Functor, Applicative, Monad
Alt, Alternative, MonadPlus
Foldable, Traversable
Bifunctor, Bifoldable, Bitraversable
Contravariant, Profunctor
Strong, Choice
Lens, Prism, Iso, Traversal
Implement your own Van Laarhoven lenses. It's difficult, but tel/sdbo has a
tutorial here: codewars.com/users/tel/authored (called Lensmaker)
References/examples for aforementioned typelcasses:
https://github.com/ekmett/semigroupoids (Alt)
https://github.com/ekmett/either/blob/master/src/Data/Either/Validation.hs
(Foldable, Traversable, Bi*, Profunctor, Choice, Iso)
https://www.fpcomplete.com/school/to-infinity-and-beyond/pick-of-the-week/pr...
(Contravariant, Profunctor)
https://www.youtube.com/watch?v=Go-RR_2I9CU my monad transformers talk has
connected some dots for people on higher kinded types and type variable
application (relevant to Contravariant and (->))
https://github.com/ekmett/lens/wiki/How-can-I-write-lenses-without-depending...
(Lens, Prism, Iso, Choice, Profunctor)
Hope this helps,
Chris Allen
On Mon, Nov 17, 2014 at 5:48 PM, Gautier DI FOLCO wrote: Hi all, I'm using Haskell since nearly three years now and I think I have well
understood that types are the most important part of our programs.
I have looked all around to learn as many datatypes/typeclasses as
possible.
But I suffer for a lack of direction to pursue my learning. I have well
understood Prelude's one and some random ones (include someones for
Category Theory), but I can't handle Kmett's code. Are there some
intermediates abstractions I can learn? (For example in some librairies). Thanks by advance for your help.
Regards. _______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe