From HaskellWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The standard ways to install the Glasgow Haskell Compiler and related tools are given at the main Haskell webpage. However, there are many other ways to install GHC, suited for different purposes.

Haskell for Mac

Haskell for Mac is an easy-to-use integrated programming environment for Haskell on OS X. It is a one-click install of a complete Haskell system, including Haskell compiler, editor, many libraries, and a novel form of interactive Haskell playgrounds. Haskell playgrounds support exploration and experimentation with code. They are convenient to learn functional programming, prototype Haskell code, interactively visualize data, and to create interactive animations.

Features include the following:

  • Built-in Haskell editor with customisable themes, or you can use a separate text editor.
  • Autosaving and automatic project versioning.
  • Interactive Haskell playgrounds evaluate your code as you type.
  • Playground results can be text or images produced by the Rasterific, Diagrams, and Chart packages.
  • Add code and multimedia files to a Haskell project with drag'n'drop.
  • Haskell binding to Apple's 2D animation and games framework SpriteKit.

Haskell for Mac requires OS X Yosemite or above.

Kronos Haskell Notebook for Mac

Based on IPython Notebook and IHaskell, Kronos provides

  • immediate installation of Haskell and related tools
  • a beautiful notebook environment for editing and documenting code
  • an easy interface for external package installation
  • easy file management and exporting to multiple formats

Nix Package Manager

The Nix package manager (part of NixOS but usable independently) can install GHC, related tools, and Haskell packages across Linux and other Unix systems (including OS X).

The key advantages of adopting Nix as a Haskell distribution are isolation and reproducibility, with environments fully specified. This can simplify dependency management by reducing hidden state.

The users' guide to Haskell infrastructure is the most important reference: http://nixos.org/nixpkgs/manual/#users-guide-to-the-haskell-infrastructure

Also helpful are blog posts of and articles of various users describing their environments:

Nix support for Haskell is very much under active development, and many users have begun to adopt the new haskell-ng workflow: http://stackoverflow.com/questions/29033580/how-do-i-use-the-new-haskell-ng-infrastructure-on-nixos


Halcyon is a system for installing Haskell apps and development tools, including GHC and Cabal. It is a simple system which also archives and caches all build products, and can automatically restore archived build products, saving time during development, continuous integration, and deployment. It allows sandbox sources, build tools, and native OS packages to be declared as dependencies and installed together with the app. It can be used to construct deployment systems, such as Haskell on Heroku.


SageMathCloud is a platform for collaborative computational mathematics. It provides both free and paid accounts. Among the many tools it provides (including SageMath, R, IPython, Numpy/Scipy/Matplotlib, Octave, Cython, GAP, Pari, Macaulay2, and Singular) is GHC. It allows the editing of Haskell files and the creation of Haskell projects, and interaction with GHC through an embedded terminal in the command line.

With SageMathCloud, developers have access to a shared cloud environment for Haskell, usable from any computer with an internet connection, and requiring no installation.

Other Online Evaluators

There are other tools available that allow the compilation and execution of small amounts of Haskell code for testing, illustration and education purposes. These include:

Additionally, FP Complete's [School of Haskell http://schoolofhaskell.com] allows the embedding of "active" example source code into their blog posts and tutorials.