+<pre>
+ gamma =<< phi a =def. ((join G') -v- (M gamma)) (phi a)
+ = ((join G') -v- (M gamma) -v- phi) a
+ = (gamma <=< phi) a
+</pre>
+
+Hence:
+
+<pre>
+ gamma <=< phi = (fun a -> gamma =<< phi a)
+</pre>
+
+`gamma =<< phi a` is called the operation of "binding" the function gamma to the monadic value `phi a`, and is usually written as `phi a >>= gamma`.
+
+With these definitions, our monadic laws become:
+
+
+<pre>
+ Where phi is a polymorphic function of type F('t) -> M(F'('t))
+ gamma is a polymorphic function of type G('t) -> M(G'('t))
+ rho is a polymorphic function of type R('t) -> M(R'('t))
+ and F' = G and G' = R,
+ and a ranges over values of type F('t),
+ and b ranges over values of type G('t),
+ and c ranges over values of type G'('t):
+
+ (i) γ <=< φ is defined,
+ and is a natural transformation from F to MG'
+ ==>
+ (i'') fun a -> gamma =<< phi a is defined,
+ and is a function from type F('t) -> M(G'('t))
+</pre>
+
+<pre>
+ (ii) (ρ <=< γ) <=< φ = ρ <=< (γ <=< φ)
+ ==>
+ (fun a -> (rho <=< gamma) =<< phi a) = (fun a -> rho =<< (gamma <=< phi) a)
+ (fun a -> (fun b -> rho =<< gamma b) =<< phi a) =
+ (fun a -> rho =<< (gamma =<< phi a))