Prelude
Tags: haskell, gsoc, dhall
Published: 2020-06-10 23:33:58

# Prelude

## GSoC application

First things first: I really like [Haskell][haskell]. I started learning the language a year ago~ on university courses about compiler design and I wanted more real-life experience with the language.

I heard of GSoC from a friend last year and decided to apply. Of course, I wanted to go with a haskell project. The list of [project ideas](https://summer.haskell.org/ideas.html) provided by the haskell commitee looked really challenging at the begginning:

* The hard ideas were really hard not only because it required an advanced understanding on the language but also deeper understanding of hard CS subjects and contributing on some of the biggest projects of the whole haskell ecosystem like [QuickCheck](https://hackage.haskell.org/package/QuickCheck), [hasktorch](https://github.com/hasktorch/hasktorch) and even the compiler itself [ghc](https://github.com/ghc/ghc)
* There were some ideas on project that I didn't knew and didn't understand what its purpose was

After reading digesting the whole list, I decided to look after the [Dhall Documentation Generator](https://summer.haskell.org/ideas.html#dhall-documentation-generator) project. I didn't knew anything about dhall before reading it on that list, but I took a look at the language and decided to give it a try and write my proposal. After contacting the mentors, who were (and are) really friendly and brainstorming a little about the goal of the project, I submited my proposal to GSoC.

## I got selected!

On May 4 news arrived to my email: my proposal was selected! Immediately, my mentors contacted me congratulating me and they give me an onboard with the project details.

I cloned the [repository][dhall-haskell] where I'm going to be developing my project, and try to read and understand the existing code.

The repository is really huge and well documented, the good thing about haskell is that by reading a function's type definition you get an idea of what the function actually does.

But that wasn't enough to get a deep understanding of the project. The first thing I like to do before starting working on a new project either on an academic or a work context is to take some small existing issues and solve them. I looked at the issue tracker of the repository to see what I was able to do without a deep understangind of the project and submitted (and successfully merged :tada:) the following PRs:

* [#1788](https://github.com/dhall-lang/dhall-haskell/pull/1788)
* [#1793](https://github.com/dhall-lang/dhall-haskell/pull/1793)
* [#1799](https://github.com/dhall-lang/dhall-haskell/pull/1799)
* [#1801](https://github.com/dhall-lang/dhall-haskell/pull/1801)
* [#1806](https://github.com/dhall-lang/dhall-haskell/pull/1806)
* [#1833](https://github.com/dhall-lang/dhall-haskell/pull/1833)
* [#1843](https://github.com/dhall-lang/dhall-haskell/pull/1843)

## What's next?

After investing enough time in understanding not just the haskell code but also how the project is structured, I decided to start earlier my project. I hope that project goes well in its development.

Thanks for reading!

[post-index]: https://dev.to/german1608/gsoc-2020-dhall-documentation-generator-37l
[dhall]: https://dhall-lang.org
[haskell]: https://www.haskell.org/
[dhall-haskell]: https://github.com/dhall-lang/dhall-haskell