Another opinion in case you need more: TAPL is excellent for self-study. There are solutions for most interesting exercises. And every type system presented comes with a downloadable implementation. You can practice with it and change it. Do not hesitate to get it. I also recommend Cardelli's papers on types which are free to obtain.
The Basic Category Theory book is, as the title says, "basic". It is a sort of polished study notes (and I recall Pierce saying something along this line in the introduction). Several examples and exercises are taken from Goldblatt's "Topoi, the Categorical Analysis of Logic", whose first chapters are a good starting point in Category theory but he introduces category-theoretic concepts from set-theoretic ones and it can be hard to abstract properly from one example. Pierce's book is well-written, introductory, there's nice stuff on cartesian closed categories and F-algebras, and the best thing is its excellent annotated bibliography which will help you to move on. Given its price and size, I think its worth. You'll need more stuff. There are books and tutorials out there. MacLane I guess is a must, if only for breadth and precision. There's Steve Awodey's book (Oxford University Press). I found Harold Simmon's notes "Category Theory in four easy movements" enjoyable and readable, especially the stuff on limits. Lawere's book mentioned by others is also fun. Fokkinga has an excellent introduction to category theory from a calculational standpoint, with notation and concepts used in the Bananas paper. There is also Barr and Wells's third edition. And of course, Mitchell's encyclopedic "Foundations for Programming Languages". To conclude, there are loads of sources and for self study, I'd recommend to use several books and several tutorial notes, if only to contrast approaches, definitions, to have exercises and solutions, etc. And there's the wikipedia as well. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe