Functional programming without the hassle.

Live programming for Haskell.

Haskell for Mac is an easy-to-use innovative programming environment for the functional programming language Haskell. It features live Haskell playgrounds to explore and experiment with code. It is ideal to learn functional programming, prototype Haskell code, interactively visualize data, and to create interactive animations and games.

Immediate feedback

Haskell playgrounds provide instant feedback, displaying types and results of computations, both textual and graphical. Put your tests into playgrounds for TDD on steroids.

Animation demonstrating the use of a playground

Identifier completion

Context sensitive identifier completion suggests in-scope variable, function, and type names and properly supports qualified names.

(Click image to zoom.)

Web & networking programming

Haskell playgrounds provide live previews of HTML documents as well as fully fledged web views including support for JavaScript.

Haskell networking libraries and JSON parsers facilitate the interactive exploration of network APIs.

(Click image to zoom.)

Diagrams and charts

Haskell for Mac includes over 200 popular Haskell library packages, everything from text processing, over math support and testing frameworks, to graphics, diagrams, and charts.

See the Library Interface Documentation for details on the included LTS Haskell packages.

(Click image to zoom.)

Interactive animations and games

Haskell for Mac supports the 2D animation and game library SpriteKit that is integrated into macOS. It provides an exciting way to learn programming as well as a simple way to create interactive animations and games.

(Click image to zoom.)

Drag’n’drop project management

Drag Haskell and support files in and out of the project. Organise Haskell modules in a hierarchy. Easily edit package metadata.

Haskell for Mac internally uses the Cabal package format, the de facto standard for Haskell packages. Only executable sections are supported in this version.

(Click image to zoom.)

Let the type system help you

Type systems help programmers write good code, and Haskell arguably incorporates the most advanced type system on the planet. It automatically infers types for you and also supports computations on types. It even lets you run and test your code, while there are type errors remaining to be fixed.

(Click image to zoom.)

Technical Specification

Embedded components

Glasgow Haskell Compiler (GHC) 7.10.3

Over 200 packages of LTS Haskell 5.18, for details see the Library Interface Documentation. For acknowledgments of the copyright holders, see the detailed 3rd party software component ackowledgments in the app.

The optional HaskellCLI component adds the command line tools to use the compiler and package manager directly. This also includes the ability to install additional packages from LTS Haskell 5.18 as well as local packages.

Haskell projects

Haskell for Mac project document bundles are identified by the suffix hsproj. These project bundles include meta data using the standard Cabal package format and can be used with the cabal and stack tools as usual.

Haskell for Mac currently only supports Cabal packages including a single exectuable section with only a subset of the fields. We recommend to only use Haskell for Mac with Cabal files generated by the app itself.


As required by the Mac App Store, Haskell for Mac is sandboxed. Consequently, Haskell code executed in a Haskell for Mac playground cannot access any data except for Haskell for Mac documents, the data bucket, the app container, and those system files white-listed by the operating system.  Any attempt to access other files will be rejected by the operating system. Outbound, but not inbound network connections are supported within the sandbox.

SpriteKit binding

Haskell for Mac includes a Haskell binding to the SpriteKit 2D animation and games framework included in macOS. It provides a purely functional interface to a subset of SpriteKit’s functionality. The main limitations of the Haskell binding are a lack of support for fields, joints, constraints, and particle effects. For further details, see the SpriteKit binding API.


Haskell for Mac requires macOS 10.10 (Yosemite) or later.

©2016 Applicative. All Rights Reserved. ABN 98 214 510 772.

Apple, the Apple logo, MacBook Pro, Mac and OS X are trademarks of Apple Inc., registered in the U.S. and other countries. Mac App Store is a service mark of Apple Inc.

Privacy Policy