sunroof-compiler: Monadic Javascript Compiler

[ bsd3, compiler, embedded, javascript, language, library, web ] [ Propose Tags ]
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 BSD-3-Clause
Copyright (c) 2012 The University of Kansas
Author Andrew Gill <>, Jan Bracker <>
Maintainer Jan Bracker <>
Category Web, Language, Embedded, Compiler, Javascript
Home page
Bug tracker
Source repo head: git clone git://
Uploaded by JanBracker at Fri Apr 12 20:38:33 UTC 2013
Distributions NixOS:0.2
Downloads 604 total (5 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

Monadic Javascript Compiler.

[Skip to Readme]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for sunroof-compiler-0.2

[back to package description]


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: