Happy Hacktoberfest!

Happy Hacktoberfest!

HacktoberfestSign up for Hacktoberfest here. is an annual event co-sponsored by DEV and Digital Ocean that rewards people (with a t-shirt) for doing open source work. If you create four pull requests on GitHub during the month of October, you get a cool t-shirt. While many of the t-shirts no doubt go to experienced OSSers doing their usual maintenance activities, a lot of projects choose this month to encourage newcomers (new to open source or new to a specific language or project) to contribute, so it’s a great month for finding issues that are appropriate to your interests and skill levels and also to find welcoming people who would like to collaborate with you.

This year, for the first time, we’re happy to announce we are one of those projects! We are opening the Haskell Phrasebook up for community contributions.

We have always intended the Phrasebook to be a forever-free resource for people of all levels of programming experience and all backgrounds to find quick answers to “how do I do X in Haskell?” But we’d like it to be more than free; we’d like it to be a real community-driven resource.

Getting started

First, if you haven’t already, we invite you to familiarize yourself at least a little with the goals and style of the Phrasebook. It is modeled on great resources like Go by Example and Rust by Example and is intended to serve the same functions, but for Haskell. In brief, it features concise examples with brief prose explanations that serve to illustrate a single, very narrow topic.

We intend for the Phrasebook to be as comprehensive as Rust by Example eventually, and one way you might choose a pull request topic is by looking through that and finding a topic we haven’t covered yet. Alternatively, we have made a few issues for topics we’d already planned to cover, and you are welcome to look through those and pick one that interests you.

You can open a pull request with an empty file at first if you’d like to talk to us before working on the code, or with some code already written. Either way, please give a brief description of the topic you are illustrating or hope to illustrate, and one of us will reply as soon as possible to talk you through the process from there. We’ll still be writing the prose that goes along with your example in order to ensure consistency across the Phrasebook, but you’ll receive attribution (if you want it; we won’t mention you without your permission).

We have written some guidelines for contributing. If making pull requests via GitHub is unfamiliar to you, we’ve written some instructions for that process. Additionally, you will find an overview of what we’re trying to accomplish, a brief style guide for code examples, and a statement of this projects’s social values.

Social values

Type Classes has been maintaining some open source projects for a while now, in addition to our solo projects, and we had not yet written any statement of our values or a code of conduct for any of them. However, with the introduction of this new project and what we hope will be a greater collaboration with the largest possible community of Haskellers of all “levels” and backgrounds, we believed it was important to make some of our values explicit. Henceforth, these values will govern all the spaces that Type Classes hosts and moderates, including all of our open source projects on GitHub.

We haven’t called it a code of conduct because we want to focus on the positive goals: we want an inviting, accessible space for collaborative learning and discussion, and we want it to be welcoming to the most diverse group of people we can possibly accommodate. We continually try to stay abreast of the best research concerning pedagogy, and we aim to create a good learning environment. If you’re already comfortable in other Haskell discussion forums, then that’s great, you already have an inclusive community for you! We have no influence over those spaces, but we have individually found some of them quite hostile to us, so we present this alternative.