> words can and do have uses in different contexts and you don't get to choose one and make it the exclusive use of the word because you like it more.
it's just that I think the same applies to concepts. You shouldn't be able to "own" the concept and to insist that it should be called as you want in every context. I see comments and posts about how "X or Y is just a monad!" to be exactly this: people trying to "own" a concept.
Just as both musicians, mathematicians and programmers can all use a single word for different things, different programmers should be able to use the same concept without using the same word for it.
In short (directed to random commenters on the Internet, no to you personally): stop correcting me when I say "computation expression builder", don't say that what I "really mean" is a monad. It's not, what I "really mean" is an abstract concept and we both know its properties, and you have no right to oppress me because I chose different word for it.
They have meaning in the same sense that any words have meaning -- that is, they communicate meaning between an existing group of people.
> And sometimes, which is worse, the meaning you want to give them is completely unrelated or even opposed to everything they are or do.
Like many words, their meaning in a specific technical context differs from their meaning in other contexts. This is not particularly unusual.
> Aside: You realize that the word "monad" (and "dyad") already has a very specific meaning
"Monad" has several distinct well-established meanings in different domains besides its use is Category Theory (and thus Haskell). So what?
> and that you assaulted that meaning and now are trying to beat the poor word into submission?
The meaning of "monad" in Haskell comes directly from its meaning in Category Theory, which is inspired by (though not the same as) its earlier use in mathematics stretching back to its use in metaphysics (particularly, through Leibnitz's Monadology), which has its roots in its use in Classical philosophy, from whence also comes all its other uses.
> If I had to choose I'd say that J programmers have much more of a right to use and define this word
Well, you don't have to or even get to choose that; words can and do have uses in different contexts and you don't get to choose one and make it the exclusive use of the word because you like it more.
> a single-argument function ("mono") makes more sense to be called a "monad" than an instance of "flat-mappable" interface.
Not really. Sure, a single argument function might have a better claim to the title "mono-argument function" but "-ad" isn't generally a suffix that means "-argument function".