Debating and being respectful on Haskell discourse

Yes I do see this. And I’ll reply on ‘that thread’ when I’ve a little more time for a nuanced response.

Let me tell a little of my beginner’s experience with Haskell. As of around 2008 there was no Stackoverflow nor Discourse nor reddit. There were email forums; that were and are notoriously difficult to search. But I found pretty much everything I wondered about was there somewhere. A big thanks to the Haskell community of that time for at least recording their thinking.

So for about 4~5 years I posted nothing. When I did timorously post, and despite my best efforts at researching beforehand, I asked some dumb questions, and got told so robustly. I took it on the chin. I miss that robustness.

Many of the luminaries from that time have gone. The atmosphere now has too much pussyfooting around IMO. For example when I made proposals for language enhancements, I’d much rather have been told ‘you’re dreaming’ than getting strung along with pseudo-sympathetic feedback. (I did eventually get one proposal accepted. Specifically that one extension is extremey prejudicial against newbies. Still not implemented after ~4 years. That unfriendly extension is included in GHC2021. Waste of everybody’s time. So don’t lecture me about respectful treatment.)

Another example: on Haskell Stackoverflow the same beginner questions get asked over and over. And answered over and over. Unlike nearly every other topic area where repeat questions get terminated with extreme prejudice. (I agree that could get toned down to ‘robust’.) I find it disrespectful of beginners to make no effort to research before asking. But they get away with it because Haskellers are too durned polite to even coach on how to use a learning resource.

On ‘that post’, O.P. got several helpful and sympathetic replies (including from me), pointing out their misunderstandings. But they persisted in suggesting a course of action that would be only marginally and short-term helpful. They weren’t listening. Where’s the respect in that?

I welcome robust replies to my POV. If you think I’m not being respectful, don’t bother to be polite in saying so.


Which is a good thing, because that gives more people the chance to answer simple questions, because answering questions is the fastest path to really understand the subject being discussed. Answering easy questions (in dialog with ‘real’ people, not by some kind of monologue) is actually way harder and needs a more thorough understanding of the subject than answering “hard” ones, because the person asking them already has a basic knowledge of the subject.
Another advantage is that the number of questions about a thing give rise to the idea that there might be a problem that needs a solution, either in the available documentation or the tool/program/… Like for example Cabal/Stack and uninstall.

1 Like

…but that’s exactly what happens on SO: questions similar to an early one are simply labelled as being duplicates, then closed. The only time the monologue is broken is when a new answer to that early (or original) question appears, which is rare.

Not always. From what I’ve observed on SO, a palpable sense of weary frustration tends to appear in comments on “new” duplicate questions (as opposed to “old” ones). The tendency of new SO arrivals to ask first rather than (re)search first is frequently noted (usually adversely) - so far, none of the changes SO have tried seems to change this behaviour.

As for the Haskell Discourse…I myself have pointed out earlier threads on seemingly-similar (or even the same) topics here on a few occasions. Why? Because to me, having a scattered bunch of small threads about more-or-less the same topic appears less “authoritative” than one single thread which contains all of that content (and having just one thread makes all that content much easier to find :-).

Since that includes me, this is also relevant:

…with this presumably being an example:

Ok. Here’s a reply, which will be somewhat less polite, as per your request. Your posts in that thread were manifestly part of what encouraged someone to want to quit this forum. As were Atravers. I don’t care if you were “right” or “wrong” or irrelevant on the details. I don’t care that you have a distaste for “too much pussyfooting around.” Your words and actions have consequences, and these were negative. Own that, and learn from it, because otherwise your posts will hurt the quality of conversation on this forum, driving away readers and contributors both, because you interact frequently, and do not make it pleasant.


Let me urge, once again, that we all speak with politeness and respect towards each other — always. I don’t think politeness and respect are the same as pussyfooting or papering over the cracks. I think it is entirely possible to disagree in a way that is genuninely respectful. It takes quite a lot of care – much more so than when we agree – but I hope that, as a community, we can take that care.

Impoliteness is corrosive, and it discourages people from participating. I think we are better than that.



Forums that are known for rudeness will primarily attract and retain people who are not as affected by being the targets of rudeness. In other words, it eliminates some subset of the people who could participate. The ruder and more unkind the forum, the more people it fails to attract.

My own belief is that kindness is desirable in and of itself, and that one is not morally superior just because one is less affected by unkindness. Even from a purely selfish perspective, it feels better to be kind than to be unkind. It is clearly possible to have robust, fact-based, rigorous discussions of technical subjects while still being both kind and polite, and I think that these discussions are just better than ones with the same level of rigor but added unkindness.

While it is certainly impossible to never hurt anyone’s feelings, we can at least stop trying to and we can be open to change when our actions don’t have the intended effect.

However, to convince somebody of something, I should start from premises that are presumably shared, rather than ones that may not be. Assuming that one wants Haskell forums to grow (which is a reasonable assumption, as programming languages become better when they’re more popular due to network effects), we should want more people to feel like they can participate. This helps us all. Assuming that one wants technical discussions that lead to the best outcome, rudeness is also maladaptive. If technical discussions are to be “won” by hurting the other participants until they withdraw, then we’ll end up with worse outcomes. If someone seems to be repeating themselves and ignoring an argument, it’s usually useful from the perspective of getting a good argument to ask for clarification on the assumption that there’s been a miscommunication, rather than to flame them until they withdraw. It’s not like plain-text fora inhabited by people with many different backgrounds, cultures, and native languages are known for their lack of misunderstandings, after all.

I’d encourage you to think about what what your goals are for participating in a public forum, and what kinds of engagement actually help those goals. Revenge on the world for the poor treatment that I received on the Internet, but managed to persist through, is not something that helps me get what I want today, so rather than being proud of thick skin, I try to help others not need it.


PS: The Haskell Foundation Guidelines for Respectful Communciation are here


Absolutely. But rudeness leaves usually no one unaffected. Either people withdraw from discussions or stay, but adjust their baseline and expectations to deflect the expected rudeness.

We have to be careful here not to confuse being blunt and non-diplomatic with unkindness. In some cultures, being blunt is a sign of trust. This is sometimes referred to as the high context vs low context people tension.

But the line can be thin.

When it’s about forum policies and moderation, I think it’s problematic to talk about kindness, unless we’re ready to ban people for giving a “negative vibe”.

TL;DR: As a community, we can absolutely promote kindness, but we can’t (maybe even shouldn’t) try to enforce it.

Reddit and discourse have some social mechanism to nudge people into the communities values through upvotes/likes (although that bears its own pitfalls as well).

I think the most effective way to deal with overly aggressive or unkind behavior is to actually tell the person in a neutral and confidential way. Sometimes they don’t even know or don’t realize it. Getting that feedback repeatedly will make most people reconsider the effect of their communication style.

I’ve had people write me private emails about how they perceive my behavior or told me during video calls. That was useful. Public shaming usually isn’t (and this thread is starting to get dangerously close to that). Quite the contrary, it causes chilling effects.

This has always been one of my primary principles when engaging in discussions. Even if you’re overinvested in a discussion, ad-hominem should not be a strategy to win. It’s a poor win, even.

Is trying to win a discussion in itself productive? Maybe not so often, but it can be a method to get into unusual depths of details, as long as the participants stay technical.


Thank you David, but let me stop you there: my remarks on ‘that post’ that raised this thread were not trying to hurt anyone’s feelings. Neither by ‘robust’ do I mean hurting feelings or being insensitive to how newbies (especially) might feel over-awed by the level of knowledge that often seems needed to participate in Haslell-land.

1 Like

As a addendum to @david-christiansen’s (IMO really excellent) comment: I am a member of another forum (completely unrelated to this one), which at one point ended up with a somewhat and hostile environment. Tone-wise it’s much nicer now, but in my opinion its community never truly recovered to its former vibrance, and its reputation never fully recovered either.

That being said, I feel that there’s little chance of that happening to our community: by and large, the people around here strike me as being very welcoming and respectful.

1 Like

Thanks Julian, I strongly agree with this.

We have to be careful to distinguish

  • the message the author intended to convey
  • the message the recipient received

It is not uncommon for the author to intend their post to be forceful but polite; and for the recipent to feel it is rude and hurtful. In these cases it is fruitless to blame either party. It is wrong to attribute bad motives to the author, since that is (in these cases) totally untrue; but it is also unproductive to blame the recipient for being over-sensitive.

(Of course there may be cases in which an author intends to be rude; or in which a recipient takes offence for the sake of causing trouble. But these cases are, I think, relatively rare.)

But to say that no one is to blame is not the same as saying that everything is fine. Writing privately to the author is often a productive thing to do, as Julian says.


This is a good point.

This is also an important point. I also don’t think it’s only a feature of cultures writ large - it can also be a feature of individual relationships. I suppose my life has been lived straddling a fairly blunt communicative culture and a fairly diplomatic one, and I personally do a lot of code-switching in my communications.

Here, I try to err on the verbose, diplomatic side (as can be seen from the length of my last comment on this thread!). I think it’s a useful technique in this context. I think it’s useful to practice kindness when sending a message, and charity when receiving one, to the extent that I’m capable (and sometimes I even succeed!)

I think that there’s a big gray area here that’s just fundamentally difficult. There is absolutely behavior that deserves being banned from a forum, and lots of other things that should be discouraged but not banned. The latter set is bigger than the former, but there’s no universal rule for all forums (cf. AskHistorians on Reddit vs other subs).

I also think that replies (whether public or private) can be a good social mechanism to build the kinds of community norms that we want to have. Human interactions are hard, even more so when done in a large diverse group, and I think we should use all the tools we have in order to get the kind of community that we want. I don’t think that I advocated for particular rules in my message - rather, I advocated that people may want to change their mind about the role of communication in online communities.

That’s right - I’ve had a lot of value from this in my life. There were lots of useful social norms that I didn’t properly learn until getting the right kind of private feedback from people I trusted. This is a good way to provide feedback to an individual.

I’ve also benefited from seeing feedback to others in public, however.

While I did my best to write a message that stands alone as an expression of my best understanding of what promotes the success of the Haskell community through online forums, it was unmistakably a reply to a particular set of ideas, many of which I myself once subscribed to, as expressed in a particular place and time by a particular person. By writing a message in general terms as a reply to the ideas in that message as I understood them, I hoped to provide a counterpoint to those ideas that lurkers on the forum might also be affected by. This was an attempt to reinforce/establish general norms that I think are good.

@AntC2: I’m sorry for contributing to a pile-on. Given my job, I speak from a certain amount of power. I tried to be careful in using it here, and I tried to address your substantive points about online discussions, such as I understood them, rather than attack you as a person. My post would have been better without the last paragraph, and as a top-level post rather than a reply in the thread. I disagree with you, but I should have expressed it more carefully.


Was there a pile-on? I’m too thick-skinned to notice :wink:

But since you mention “power” – and thinking about GHC direction-setters in general – let me try to turn all these ruminations into forward-looking behavior.

Respect is shown by actions, words not so much – IMO

Nobody’s going to fix the jumbled mess that is GHC’S FunDeps+Overlaps, are they? Not even if someone [**] at SPJ’s specific request writes down a precise set of rules. And implements a PoC prototype.

Nobody’s going to build a (so-called) ‘anonymous’ records system that we at least don’t have to feel ashamed of/that’s at least comparable to (say) purescript’s. Not even if there’s a version of Haskell that already has one. Not even if it meshes nicely with FunDeps+Overlaps, needing no more magic than HasField. (And might mesh with TypeFamilies for all I know.)

Nobody (it seems) is going to deliver FunctionResultSignatures, even though it’s half-developed, GHC used to do that, and there’s another Haskell that still does. And that would at least be less newbie-hostile and more idiomatic than ScopedTypeSignatures.

And I could go on … with features that were very much front-of-mind at the time I was excited about Haskell.

What action here would show respect? All resources are dedicated to DependentHaskell for the rest of my Haskell lifetime - optimistically ten years. So I’m not dreaming any of it’s going to happen.

What would show respect to those who care for those features? To be realistic with expectations: they ain’t gonna happen. Say so. Then I’ll just abandon GHC and there’ll be rejoicing throughout the land as I close the door behind me.

[**] Indeed I was more than halfway out the door already when SPJ dragged me back. For what? More disappointment, I suppose. Should I next time start a grumpy Discourse announcement? Not my style.

1 Like

I’m not sure that open source commitments or decisions are a particular good indicator for respect.

People contribute to software for a variety of reasons, often personal reasons. So the dynamics of open source are very often tilted towards those who actually do the stuff.

Some maintainers handle user feedback differently than others. Also note that caring too much about that feedback can quickly lead to burnout.

This is more an issue about goals and who sets those goals. Users can participate there too (GHC steering committee, CLC, HF working groups etc.). Sometimes certain groups also simply lack awareness about certain end users needs… we have made great progress with communicating certain parts of that to GHC HQ, for example.

So yes, I think those things are less about respect, but open source community dynamics (which are complicated). HF is here to make this better or more transparent.