(I'll respond with the original subject heading and with the full thread of Michal's reply copied below so that the convo stays in one place.)
Hi Michal, I'm afraid you caricaturize my original email out of proportion here:
> class Monoid m => T m o where
> i :: o -> t
> c :: t -> o -> Bool
<snip>
Not only is your T type class more complicated than what I wrote, it's also riddled with suggestive but possibly misleading one-letter variable names. You even ask your reader to stay wary of the laws (snipped) that might not even be correctly stated.
I do no such thing in my original email.
In fact, the modicum of Haskell background that suffices for grasping the original query is only the next level up from recognizing that a universally polymorphic function of type (a -> a -> a) is inhabited by exactly two functions, modulo bottom.
From there it's one more step to how (forall m. Monad m => m a -> m b -> m b) is inhabited by a mere handful of functions, again barring bottom. My query makes reference to how two of the those functions, namely (const id) and (liftM2 $ const id) are equivalent with some monads but not others.
I even gave further clarification in plain English about "how the effect of the second parameter blocks the effect of the first."
At the top of your email you wrote:
> It is easier to understand it if:
> 1. You give some examples of such monads
> 2. Describe how this property arises
> 3. Tell how whether the law is unique or part of a list of laws applicable
Are you alluding to the X-Y problem?
I assure you I labor under no such tunnel-vision.
Were I to request a cromulent adjective for the seventh powers of the natural numbers, what progress do you make by making counter-demands for examples?
Behind which string of digits does the pellucid word hide itself?