various tweaks
[lambda.git] / topics / week9_monad_transformers.mdwn
index 68ea563..c8133e2 100644 (file)
@@ -165,7 +165,7 @@ When List is on the inside, the failed results just got dropped and the computat
 
 On the other hand, when Option is on the inside, as in LO, failures (which we again represent by `mzero`s from the Option monad, not the List monad's own `mzero`; but here since it's the inner monad we need to `hoist Monad.Option.mzero`) abort the whole computation. (If you instead used the List monad's `mzero`, it'd be ignored by `++` and you'd end with just `Some [30]`.)
 
-This is fun. Notice the difference it makes whether the second `++` is native to the outer `Monad.List`, or whether it's the inner `Monad.List`'s `++` hoisted into the outer wrapper:
+This is fun. Here is a List around a List. Notice the difference it makes whether the second `++` is native to the outer `Monad.List`, or whether it's the inner `Monad.List`'s `++` hoisted into the outer wrapper:
 
        # module LL = Monad.List.T(Monad.List);;
 
@@ -190,7 +190,8 @@ This is fun. Notice the difference it makes whether the second `++` is native to
 Further Reading
 ---------------
 
-*      This is excellent, everyone should read: [Monad Transformers Step by Step](http://www.grabmueller.de/martin/www/pub/Transformers.pdf)
+*      This is excellent, everyone should read: [Monad Transformers Step by Step](http://www.cs.virginia.edu/~wh5a/personal/Transformers.pdf)
+<!-- also http://web.archive.org/web/20140711174905/http://www.grabmueller.de/martin/www/pub/Transformers.pdf -->
 
 *      Read Part III of [All About Monads](http://web.archive.org/web/20071106232016/haskell.org/all_about_monads/html/introIII.html). This link is to an archived version, the main link to haskell.org seems to be broken. Some but not all of this site has been [absorbed into the Haskell wikibook](http://en.wikibooks.org/wiki/Haskell/Monad_transformers).