From: jim Date: Mon, 6 Apr 2015 09:09:36 +0000 (-0400) Subject: add link X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=commitdiff_plain;h=78383c2fd7b5c68f2904eb735a5b59b573441450 add link --- diff --git a/topics/week9_using_the_monad_library.mdwn b/topics/week9_using_the_monad_library.mdwn index 584537c3..49f8e863 100644 --- a/topics/week9_using_the_monad_library.mdwn +++ b/topics/week9_using_the_monad_library.mdwn @@ -57,7 +57,7 @@ You need to instead say: # let xx = R.(mid 1) in R.run xx env0;; - : int = 1 -Also there is no translation function that lets you take an `'a result` that you've built by hand and convert it to an `'a t`. You have to build your `'a t`s using the primitive operations that the Monad library provides for doing so. This is all discussed further [[elsewhere]] (TODO LINK). +Also there is no translation function that lets you take an `'a result` that you've built by hand and convert it to an `'a t`. You have to build your `'a t`s using the primitive operations that the Monad library provides for doing so. This is all discussed further [[elsewhere|/topics/week8_monads_and_modules/#abstraction]]. The next block of stuff in the `Monad.READER` module type are functions common to all monads. Some monads (such as List and Option) additionally have `mzero : 'a t` and some related operations. Finally, at the end are the operations specific to the Reader monad. These have mostly been given the same names as they have in Haskell's monad libraries. Here is a quick explanation: