2014-11-18 0:59 GMT+01:00 Christopher Allen <cma@bitemyapp.com>:
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/either/blob/master/src/Data/Either/Validation.hs (Foldable, Traversable, Bi*, Profunctor, Choice, Iso)


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 (->))


Hope this helps,
Chris Allen





On Mon, Nov 17, 2014 at 5:48 PM, Gautier DI FOLCO <gautier.difolco@gmail.com> 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



Hi Chris,

Thanks for your answer, it appears that some of them are like hidden gems among code of more popular abstractions and you can easily don't care of them if you don't have such a guideline.

Thanks a lot.