The sunroof-compiler package

[Tags:bsd3, library]

Monadic Javascript Compiler.

[Skip to Readme]


Versions 0.2
Dependencies base (>=4.3.1 && <5), Boolean (>=0.2), containers (>=0.4), data-default (==0.5.*), data-reify (>=0.6), mtl (>=2.0), operational (>= && <0.3), semigroups (>=0.9), tagged (>=0.4.4), template-haskell (>=2.8), transformers (==0.3.*), vector-space (>=0.8.6) [details]
License BSD3
Copyright (c) 2012 The University of Kansas
Author Andrew Gill <>, Jan Bracker <>
Maintainer Jan Bracker <>
Stability experimental
Category Web, Language, Embedded, Compiler, Javascript
Home page
Bug tracker
Source repository head: git clone git://
Uploaded Fri Apr 12 20:38:33 UTC 2013 by JanBracker
Distributions NixOS:0.2
Downloads 393 total (6 in the last 30 days)
0 []
Status Docs uploaded by user
Build status unknown [no reports yet]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for sunroof-compiler

Readme for sunroof-compiler-0.2


Sunroof is a Haskell-hosted Domain Specific Language (DSL) for generating JavaScript. Sunroof is build on top of the JS-monad, which, like the Haskell IO-monad, allows access to external resources, but specifically JavaScript resources. As such, Sunroof is primarily a feature-rich foreign function API to the browser's JavaScript engine, and all the browser-specific functionality, including HTML-based rendering, event handling, and drawing to the HTML5 canvas.

It uses monadic reification, to reify a deep embedding of the JS-monad, and from this embedding it generates JavaScript. The Sunroof DSL has the feel of native Haskell, with a simple Haskell-based type schema to guide the Sunroof programmer. Furthermore, because it generates code, Sunroof can offer Haskell-style concurrency patterns, like MVars and Channels. In combination with a web services package like kansas-comet, the Sunroof compiler offers a robust platform to build interactive web applications, giving the ability to interleave Haskell and JavaScript computations with each other as needed (sunroof-server).

Further Information

Further information on Sunroof can be found in different places: