A Distributed Haskell for the Modern Web
Licentiate thesis, 2015
We present the design and implementation of a novel programming model and
software development suite for interactive, distributed web applications using
the Haskell programming language.
which improves on the current state of the art by producing smaller and leaner
well as with the de facto standard GHC compiler.
We also describe the Haste.Foreign lightweight, portable interface for
Haste.Foreign is implementable as a client library,
and does not require any compiler modifications.
While designed for the Haste compiler, the interface is portable across a range
of Haskell dialects and high level target platforms.
Finally, we present the Haste.App programming model for distributed
web applications, which abstracts over the separation of client and
server to allow distributed applications to be written and type checked
as a single program. The Haste.App model stands in stark contrast to the
conventional way of developing web applications as separate client and
server programs communicating explicitly over some network protocol.
Haste.App reduces the amount of boilerplate code required to
implement distributed web applications, and provides type safety
across the network separating the client and server parts.
This shortens development times and eliminates costly and embarrassing runtime
failures at the boundaries between networked components.
Like the foreign function interface, this programming model is implementable
entirely as a library without any compiler modifications, and is thus similarly
Room EA, EDIT building, Hörsalsvägen 11
Opponent: Prof. Peter Thiemann, Institut für Informatik, Technische Fakultät, Universität Freiburg, Germany