author Jim Pryor Tue, 2 Nov 2010 13:35:43 +0000 (09:35 -0400) committer Jim Pryor Tue, 2 Nov 2010 13:35:43 +0000 (09:35 -0400)
Signed-off-by: Jim Pryor <profjim@jimpryor.net>

index 4941e80..8552e65 100644 (file)
@@ -212,9 +212,7 @@ Now we can specify the "monad laws" governing a monad as follows:
(T, <=<, unit) constitute a monoid
</pre>

-That's it. Well, there may be a wrinkle here.
-
-I don't know whether the definition of a monoid requires the operation to be defined for every pair in its set. In the present case, <code>&gamma; <=< &phi;</code> isn't fully defined on `T`, but only when <code>&phi;</code> is a transformation to some `MF'` and <code>&gamma;</code> is a transformation from `F'`. But wherever `<=<` is defined, the monoid laws are satisfied:
+That's it. Well, there may be a wrinkle here. I don't know whether the definition of a monoid requires the operation to be defined for every pair in its set. In the present case, <code>&gamma; &lt;=&lt; &phi;</code> isn't fully defined on `T`, but only when <code>&phi;</code> is a transformation to some `MF'` and <code>&gamma;</code> is a transformation from `F'`. But wherever `<=<` is defined, the monoid laws are satisfied:

<pre>
(i) &gamma; <=< &phi; is also in T
@@ -351,7 +349,7 @@ So our **(lemma 2)** is:
</pre>

-Finally, we substitute <code>((join G') -v- (M &gamma;) -v- &phi;)</code> for <code>&gamma; <=< &phi;</code> in the monad laws. For simplicity, I'll omit the "-v-".
+Finally, we substitute <code>((join G') -v- (M &gamma;) -v- &phi;)</code> for <code>&gamma; &lt;=&lt; &phi;</code> in the monad laws. For simplicity, I'll omit the "-v-".

<pre>
for all &phi;,&gamma;,&rho; in T, where &phi; is a transformation from F to MF', &gamma; is a transformation from G to MG', R is a transformation from R to MR', and F'=G and G'=R: