In other words, `<=<` is a binary operator that takes us from two members <code>φ</code> and <code>γ</code> of `T` to a composite natural transformation. (In functional programming, at least, this is called the "Kleisli composition operator". Sometimes it's written <code>φ >=> γ</code> where that's the same as <code>γ <=< φ</code>.)
<code>φ</code> is a transformation from `F` to `MF'`, where the latter = `MG`; <code>(M γ)</code> is a transformation from `MG` to `MMG'`; and `(join G')` is a transformation from `MMG'` to `MG'`. So the composite <code>γ <=< φ</code> will be a transformation from `F` to `MG'`, and so also eligible to be a member of `T`.
Now we can specify the "monad laws" governing a monad as follows:
In other words, `<=<` is a binary operator that takes us from two members <code>φ</code> and <code>γ</code> of `T` to a composite natural transformation. (In functional programming, at least, this is called the "Kleisli composition operator". Sometimes it's written <code>φ >=> γ</code> where that's the same as <code>γ <=< φ</code>.)
<code>φ</code> is a transformation from `F` to `MF'`, where the latter = `MG`; <code>(M γ)</code> is a transformation from `MG` to `MMG'`; and `(join G')` is a transformation from `MMG'` to `MG'`. So the composite <code>γ <=< φ</code> will be a transformation from `F` to `MG'`, and so also eligible to be a member of `T`.
Now we can specify the "monad laws" governing a monad as follows: