The Haskell Foundation has adopted these guidelines for respectful
communication, for use both in our own communication, and as a strongly
recommended template for affiliated committees and projects.
## Motivation
We are motivated to adopt a set of guidelines for respectful communication for
several reasons
* Diversity and inclusion. We recognize that the Haskell community, echoing
the technology industry more generally, skews white and male. We see it as our
duty and honour to spread the joy of Haskell widely and to broaden the patterns
of participation, in the hopes that, one day, we will no longer be askew.
* Making an explicit commitment will encourage us to review our messages to see
if they meet the goals set out here, and will give others some specifics to
point to if we fail.
## Guidelines for respectful communication
We commit ourselves to a high standard of public behaviour. We have one
over-arching rule:
**We strive to treat every person with respect.**
Specifically, we aspire to these qualities:
* We treat everyone with courtesy, aware that their diverse backgrounds,
experiences, goals, and perspectives may be very different to ours.
* In our communication, we consistently honour and affirm the passion,
professional expertise, and good intentions of others. Even if we
occasionally doubt these qualities in someone else, we will not make public
accusations of incompetence, malice or ulterior motives.
* We strive to be scrupulously polite at all times. There should be no
rudeness, name-calling, or harassment in our communication.
* Where we disagree with someone, we avoid forms of expression that might make
our dialogue partner feel attacked, humiliated, demeaned, or marginalised.
Our critique should always be of specific statements and claims, never of
people.
* Disagreement itself is fine: we are enriched by robust technical debate. But
we seek to make the tone of that debate to be a conversation among people who
respect, or even admire, each other.
* Where we disagree, we try to be curious about the perspective, goals,
motivation, and priorities of the other person.
* We do not tolerate any form of discriminatory language or behaviour towards
any minority (for example age, body size, disability, ethnicity, sex
characteristics, gender identity and expression, level of experience,
education, socio-economic status, nationality, personal appearance, race,
religion, or sexual identity and orientation).
We seek to apply these standards in all our public interactions in the Haskell
sphere, including email, social media, discussion forums, and so on.
If one of us fails to meet these standards, the ideal course of action is to
write to that person privately, gently drawing attention to their lapse. If
you're not comfortable with that, please contact the chair of the committee, or
(if the chair is the problem) the vice-chair or co-chair.
Our response should usually be to apologise and stop doing what it was that you
are unhappy about. Even if we feel we have been misinterpreted or unfairly
accused, the chances are good there was something we could have communicated
better, and an apology is far more likely to bring healing than is a
counter-accusation.
## Acknowledgements
We'd like to thank the communities and projects that established code of
conducts and diversity statements as our inspiration, including these:
* A month before this document was first published, Michael Snoyman proposed
a [Stack code of conduct](https://www.snoyman.com/blog/2018/11/proposal-stack-coc) with a
motivation similar to ours.
* The [GNU Kind Communication Guidelines](https://www.gnu.org/philosophy/kind-communication.html), published in
October 2018, also express the positive tone we seek; [Stallman’s post](https://lwn.net/Articles/769167/) explains the intent.
* The [Snowdrift community code of conduct](https://wiki.snowdrift.coop/community/conduct) also has a companion [Guidelines for healthy communication](https://wiki.snowdrift.coop/community/honor-users).
*[Open code of conduct](https://github.com/todogroup/opencodeofconduct/blob/gh-pages/index.md)
*[Pycon code of conduct](https://github.com/python/pycon-code-of-conduct/blob/master/code_of_conduct.md)
*[Rust code of conduct](https://www.rust-lang.org/policies/code-of-conduct)
*[TypeLevel code of conduct](https://typelevel.org/conduct.html)