= (((join 1C) G') -v- ((M unit) G') -v- (φ G'))
= ((join (1C G')) -v- (M (unit G')) -v- γ)
= ((join G') -v- (M (unit G')) -v- γ)
- since (unit G') is a natural transformation to MG', this satisfies the definition for <=<:
+ since (unit G') is a natural transformation to MG',
+ this satisfies the definition for <=<:
= (unit G') <=< γ
</pre>
= (((join R') -v- (M ρ) -v- unit) G)
= (((join R') G) -v- ((M ρ) G) -v- (unit G))
= ((join (R'G)) -v- (M (ρ G)) -v- (unit G))
- since γ = (ρ G) is a natural transformation to MR'G, this satisfies the definition for <=<:
+ since γ = (ρ G) is a natural transformation to MR'G,
+ this satisfies the definition <=<:
= γ <=< (unit G)
</pre>
where as we said <code>γ</code> is a natural transformation from `G` to some `MR'G`.
+Summarizing then, the monad laws can be expressed as:
+
+<pre>
+ For all γ, φ in T for which ρ <=< γ and γ <=< φ are defined:
+
+ (i) γ <=< φ is also in T
+
+ (ii) (ρ <=< γ) <=< φ = ρ <=< (γ <=< φ)
+
+ (iii.1) (unit G') <=< γ = γ
+ when γ is a natural transformation from some FG' to MG'
+
+ (iii.2) γ = γ <=< (unit G)
+ when γ is a natural transformation from G to some MR'G
+</pre>