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