[Haskell-cafe] Re: Why binding to existing widget toolkits doesn't make any sense

Antony Courtney antony.courtney at gmail.com
Sun Feb 1 17:37:20 EST 2009

Hi Conal,

On Sat, Jan 31, 2009 at 12:10 AM, Conal Elliott <conal at conal.net> wrote:
>> Hopefully some enterprising Haskell hacker will wrap Cairo in a nice
>> purely functional API.
> Jefferson Heard is working on such a thing, called Hieroglyph. [...]
> In the process, I realized more clearly that the *very goal* of making a
> purely functional wrapper around an imperative library leads to muddled
> thinking.  It's easy to hide the IO without really eliminating it from the
> semantics, especially if the goal is defined in terms of an IO-based
> library.  Much harder, and I think much more rewarding, is to design
> semantically, from the ground up, and then figure out how to implement the
> elegant semantics with the odds & ends at hand (like Cairo, OpenGL, GPU
> architectures, ...).


I was very much trying to achieve this with Haven back in 2002:


As the slides on that page state pretty explicitly, I tried to focus
on the semantics and to design a purely functional representation of a
vector graphics scene that was not tied to any particular
implementation.  My primary claim for success is that the
representation of Picture in Haven type checks and doesn't appeal to
IO; IO only creeps in when we attempt to render a Picture.

Does the Haven API live up to your goal of semantic purity for a
vector graphics library?  If not, where specifically does it fall

I look forward to seeing and reading more about Hieroglyph.  The
typography and visual presentation of Jefferson's online booklet looks
fantastic.  A high quality, purely functional vector graphics API for
Haskell with portable and robust implementations will be a great thing
for the Haskell world.



More information about the Haskell-Cafe mailing list