GSoC 2025 Questions about the Language Server Project

Hello!

I am a library sciences grad student with moderate experience in Python and extremely little in Haskell, which I am interested in learning. I was wondering if the language server project to add support for cabal.project files would be a feasible task for someone with minimal experience about to have a lot of free time during the summer break.

My hope is to use the GSoC to work on a project that pushes me to learn about the fundamentals of Haskell, but I’m unsure if I should have a firmer grounding before I consider submitting a proposal.

Pinging @fendor and @VeryMilkyJoe as they are the mentors and can hopefully advise me about whether I should push forward or not.

Thank you for your time!
Euri

5 Likes

Hi!

It’s great to see you interested in learning Haskell and wanting to contribute to the ecosystem!

This project requires you to get comfortable in a large codebase (HLS) that uses advanced language concepts such as monads, transformers, some dependent typing, various language extensions among others.
I think this project would be very ambitious in the time frame for someone who has almost no previous knowledge of Haskell.
You can have a look at the cabal plugin codebase, which is code similar to the one you would be writing during the project, to decide how intimidating the code looks, if that helps your decision.

Thank you for your interest!

5 Likes

Thank you for the answer!

I took a look at monads and transformers and while I see how they could prove challenging to fully grasp in context, I do have some background in formal and symbolic logic and think I could get there by the time summer rolls around. Dependent typing makes surface level sense to me from a quick scan, although I see it has had a rocky road to being in Haskell and I’m sure that (and my scarce experience with type theory) will make it much harder.

The bigger concern is the plethora of language extensions. I’m confident in my ability to learn a concept, but unsure exactly how much of the code literature I’ll be able to properly understand in time. That, and the side of the codebase already, are intimidating, but part of my interest in this project is precisely the chance to get experience with a large codebase.

I am ambitious! If my proposal is declined I hope it will be possible to still observe or take part in an non-compensated way. Until then I will try to hit the books so I make myself useful in either case. I have been using Effective Haskell by Rebecca Skinner and various web resources, but if there are any you would recommend that would be especially helpful for this area, please let know and I will try to study them.

Edit: Also, if you have any suggestions for a sort of mini-project to tackle in my own time between now and then to push me to test my Haskell knowledge as I go, whether it’s actually useful to the HLS or community or just a toy, I find they are the most helpful thing for learning anything.

2 Likes