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.

lightbulb_outline View ideas list


  • haskell
  • ghc
  • cabal
  • codeworld
  • servant


comment IRC Channel
email Mailing list
mail_outline Contact email 2020 Projects

  • Francesco Gazzetta @fgaz
    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...
  • buggymcbugfix
    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...
  • Shubham Awasthi
    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...
  • lukelau
    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...
  • Andre Daprato
    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...
  • German Robayo
    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,...
  • Sitao Chen
    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...
  • Elizabeth Wilson
    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...
  • fendor
    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....
  • Federico Bongiorno
    Number Field Sieves
    This proposal aims to implement efficiently the quadratic sieve and the general number field sieve in Haskell while producing a mathematically...
  • mpardalos
    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...
  • Beatrice Vergani
    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. ...