= (((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') <=< γ
@@ -247,12 +248,28 @@ Similarly, if ρ
is a natural transformation from `1C` to `MR'`,
= (((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)
where as we said γ
is a natural transformation from `G` to some `MR'G`.
+Summarizing then, the monad laws can be expressed as:
+
+
+ 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
+