Haskell.org

Standardized, statically typed, lazy functional programming language

Technologies
haskell, ghc, compiler
Topics
#compilers, #programming-tools, #functional-programming, #programming-languages, #education
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.

2021 Program

Successful Projects

Contributor
Aner Lucero
Mentor
tarleb
Organization
Haskell.org
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...
Contributor
Julius Marozas
Mentor
Torsten Scholak
Organization
Haskell.org
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...
Contributor
David Davó
Mentor
James Brock, Vaibhav Sagar
Organization
Haskell.org
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...
Contributor
Olivian Cretu
Mentor
Chris Smith
Organization
Haskell.org
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...
Contributor
Ethan Tsz Hang Kiang
Mentor
Matthew Pickering
Organization
Haskell.org
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...
Contributor
Lei Zhu
Mentor
Javier Neira, Pepeiborra
Organization
Haskell.org
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,...
Contributor
Julio Grillo
Mentor
Simon Jakobi, Gabriel Gonzalez
Organization
Haskell.org
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...
Contributor
Martin Gius
Mentor
Alex McLean
Organization
Haskell.org
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...
Contributor
Marcos Lerones
Mentor
Simon Jakobi, Gabriel Gonzalez
Organization
Haskell.org
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...
Contributor
Oliver Madine
Mentor
Pepeiborra
Organization
Haskell.org
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...