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
  • compiler


comment IRC Channel
email Mailing list
mail_outline Contact email 2021 Projects

  • Marcos Lerones
    Dhall bindings to TOML configuration language
    Dhall is a programmable configuration language that uses functions, types and imports to make readable configuration files easily. Right now, Dhall...
  • Aner Lucero
    Enhanced figure support in pandoc
    Figures play a central role in the life cycle of all kinds of research and analysis. That is: The communication of results. What we propose in this...
  • David Davó
    Fixing ihaskell-widgets
    While mainly used in data science, Jupyter Notebook’s interactivity makes it a great tool for teachingand learning new concepts and programming...
  • Julius Marozas
    Gradually Typed Hasktorch
    Hasktorch has two distinct APIs for tensors: Torch.Tensor and Torch.Tensor.Typed. While the untyped version can initially be easier to use and...
  • Olivian Cretu
    Haskell in CodeMirror 6
    CodeMirror 6 is an editor which supports many programming languages. However, it lacks first-class language support for Haskell. The Abstract Syntax...
  • Oliver Madine
    Haskell Language Server: Symbol Renaming
    The Haskell Language Server is a popular, comprehensive Haskell IDE; however, it is yet to implement a core feature: symbol renaming. With the recent...
  • Lei Zhu
    Support call hierarchy in Haskell Language Server
    This proposal aims to add call hierarchy support in Haskell Language Server(HLS). Language Server Protocol(LSP) has supported call hierarchy in 3.16,...
  • Martin Gius
    TidalCycles API and editor plugin
    TidalCycles is an Embedded Domain Specific Language for pattern, in use by 10,000s of musicians worldwide. However it has had little work done on the...
  • Julio Grillo
    TOML Support in dhall-haskell
    This is a proposal to add serialization and deserialization support for TOML in the functional configuration language Dhall. TOML is a relatively new...
  • Ethan Tsz Hang Kiang
    Visualization Libraries for ghc-debug
    "ghc-debug" is a heap profiler tool for GHC that pauses the current program and lets you run your own custom analyses on the heap. My proposal is to...