Haskell.org

Standardized, statically typed, lazy functional programming language

Technologies
haskell, ghc, cabal, codeworld, servant
Topics
education, compilers, haskell, functional programming, build tools
Standardized, statically typed, lazy functional programming language

Haskell is an advanced, general-purpose, purely functional programming language. It has a strong, static type system with Hindley-Milner type inference.

The language natively supports lazy evaluation, and lets you track side effects in the type system. This leads to a concise and declarative style of programming, which differs quite a bit from conventional languages. By controlling side effects and working with immutable data, the programmer can avoid whole classes of bugs.

Haskell generally compiles to fast, native code, but it can also be compiled to other targets like JavaScript (through GHCJS) or LLVM.

In Google Summer of Code, we attempt to improve not only the language, but the whole ecosystem. This includes (aside from the language itself):

  • Compilers
  • Commonly used libraries
  • Commonly used applications written in Haskell
  • Profilers, debuggers and other tools
  • Package managers and infrastructure

We have compiled an ideas list together with long-time Haskell users, compiler contributors and researchers, and as such we believe these are important projects for the industry and academia both.

2020 Program

Successful Projects

Contributor
fendor
Mentor
Zubin Duggal, John Ericson, Matthew Pickering
Organization
Haskell.org
Multiple Home Packages for GHC
Haskell tooling has improved considerably over the last year. Haskell IDE Engine was able to build a user-base that is happy with the feature set....
Contributor
Francesco Gazzetta @fgaz
Mentor
CarterSchonwald, Andreas Klebinger, chessai
Organization
Haskell.org
`SPECIALIZABLE` GHC pragma
The main task of this project is the addition of a SPECIALIZABLE pragma to GHC, that will have the effect of exposing an unfolding of the marked...
Contributor
Elizabeth Wilson
Mentor
Austin Huang, Torsten Scholak, Alex McLean
Organization
Haskell.org
Functional Machine Learning Algorithms for Music Generation
The proposed outcome of this Summer of Haskell research is the production of a library or package for live coding autonomous music through...
Contributor
Andre Daprato
Mentor
Austin Huang, Adam Paszke, Torsten Scholak, Junji Hashimoto
Organization
Haskell.org
Custom Dataloader for Hasktorch
Hasktorch is an important project for showcasing what a strong type system andfunctional programming can bring to machine learning tasks. The...
Contributor
Sitao Chen
Mentor
hvr, Gershom Bazerman
Organization
Haskell.org
Finish the package candidate workflow for Hackage
Currently, the package candidates are not using the templating system and their UI can be improved. To improve the candidates publishing process, we...
Contributor
Federico Bongiorno
Mentor
Sergey Vinokurov, Andrew Lelechenko
Organization
Haskell.org
Number Field Sieves
This proposal aims to implement efficiently the quadratic sieve and the general number field sieve in Haskell while producing a mathematically...
Contributor
lukelau
Mentor
Alan Zimmerman, Pepe Iborra, Zubin Duggal
Organization
Haskell.org
Building the Haskell Language Server and more
After a busy couple of days at the Bristol Hackathon, the developers behind ghcide and haskell-ide-engine merged efforts resulting in an exciting...
Contributor
German Robayo
Mentor
Profpatsch, Gabriel Gonzalez, sjakobi
Organization
Haskell.org
Documentation generator for the Dhall configuration language
Actual Problem Dhall is a programmable configuration language. Despite as haskell programs which have haddock as a documentation generator tool,...
Contributor
buggymcbugfix
Mentor
andrewthad, Andreas Klebinger, chessai
Organization
Haskell.org
Add primops to expand the (boxed) array API
GHC is an industry-strength compiler for Haskell. I am proposing to add primitives that allow more efficient operations involving immutable...
Contributor
Beatrice Vergani
Mentor
Jasper Van der Jeugt, lukaszgolebiewski, Paweł Szulc
Organization
Haskell.org
Update stylish-haskell to use ghc-lib-parser
Stylish-haskell is a code prettifier that formats Haskell programs relying on the haskell-src-exts library to parse the Haskell code into an AST. ...
Contributor
Shubham Awasthi
Mentor
hvr, Gershom Bazerman
Organization
Haskell.org
Build-integration and Badges for Hackage
Hackage have a dedicated Builder application which builds the package, documentation and report same to the hackage server. While this information...
Contributor
mpardalos
Mentor
Dmitry Ivanov, Matthew Pickering
Organization
Haskell.org
Optimising Haskell developer tool performance using OpenTelemetry
The Haskell developer tool ecosystem, while greatly improving in recent years, has a performance problem. Haskell IDE Engine (HIE), the most popular...