Summer of Haskell

Summer of Haskell 2023 Results

Posted on January 20, 2024 by Aaron Allen (permalink)

On behalf of the committee, I’m pleased to announce the results of the Summer of Haskell 2023. Many impressive and valuable contributions were made to the Haskell ecosystem which I’m excited to share with you in this post. I’d like to extend a big thank you to the sponsors that made this program possible: The Haskell Foundation, Kadena, Jane Street, Holmusk, MLabs, Flipstone, Gershom Bazerman, and Edward Kmett. Gratitude is also due to the wonderful mentors who kindly donated their time to helping bring these projects to fruition and fostering the next generation of Haskellers.

I also want to mention that we are currently in need of idea submissions for the upcoming Google Summer of Code 2024! This program depends on having a quality list of ideas, so please consider submitting any you might have (ideally before Feb. 4th).

Without further ado, what follows is a summary of the work that was completed under the Summer of Haskell 2023.

Project Support for Resolve Functionality in HLS
Contributor  Nathan Maxson
Mentor Michael Peyton Jones

Nathan Maxson contributed support for resolve functionality to HLS. He has also updated a number of HLS plugins to utilize this functionality, thus reducing CPU and memory usage and improving speed. The plugins that have been updated in this way are overloaded-record-dot, hlint-plugin, explicit-imports, refine-imports, type-lenses, explicit-records, and class-plugin.

Relevant code contributions

Project Cabal File Support for HLS
Contributor  Jana Chadt
Mentor Fendor

Jana Chadt worked on improving support for Cabal files in HLS. The work has been summarized in this gist, which includes links to relevant PRs and issues. There is also a blog post detailing the new HLS functionality.

Relevant code contributions

Project HLS: Goto 3rd Party Definition
Contributor  Elodie Lander
Mentor Zubin Duggal

Elodie Lander worked on allowing the HLS goto definition functionality to work with definitions from outside of the current project. Although primarily focused on HLS, this work involves contributions to other key Haskell infrastructure: GHC, Cabal, HieDb, and haskell/actions.

Relevant code contributions

Project Standardize GHC’s Error Dump in JSON Format
Contributor  Ben Bellick
Mentor Aaron Allen

Ben Bellick contributed a new well-defined JSON interface for GHC diagnostic emissions, which will be available via a new -fdiagnostics-as-json flag. The existing under-specified -ddump-json flag has been deprecated in favor of this new interface. Additionally, Ben made valuable contributions to the effort of converting GHC error messages to use the new structured representation.

Relevant code contributions

Project Teaching Weeder About Type Classes
Contributor  Vasily Sterekhov
Mentor Oliver Charles

Vasily Sterekhov implemented support for detecting unused type class instances in Weeder, along with several other significant improvements. See the Weeder 2.7 release notes for details.

Relevant code contributions

Project Structured Errors for cabal-install
Contributor  Suganya Arun
Mentor Gershom Bazerman

Suganya Arun implemented structured errors for Cabal, including the assignment of a unique code to each error which can be then be referenced on the Haskell Error Index. You can read more about the results and challenges of the project in this blog post.

Relevant code contributions

Project Maximally Decoupling Haddock and GHC
Contributor  Gregory Baimetov
Mentor Laurent P. Rene de Cotret

Gregory Baimetov contributed to the effort towards decoupling GHC and Haddocks. Although the original goal proved to be too ambitious, he has produced a prototype of a JSON serialization for the Haskell AST as well as a document explaining the difficulties encountered, which should be of value to future work on this issue.

Project Representing Pattern
Contributor  Saachi Kaup
Mentor Alex Mclean

Saachi Kaup worked with various libraries to explore pattern visualization, drawing connections to the traditional mandalas common in Southeast Asian art. She put together a blog post on the Tidal website describing her process and showcasing some of the images that were produced. You can also view the code repository.

Older posts

An RSS feed is also available.