[Haskell-cafe] Paid work available in functional web programming

Adam Chlipala adamc at impredicative.com
Wed Jul 13 23:42:04 CEST 2011

Christopher Done wrote:
> I also find it hard to understand the type system in a non-superficial level
> because the related paper was very hard to grok.

I'll only claim it's a fairly breezy read for people familiar with 
dependent type theory, which admittedly is not a huge crowd, even as a 
proportion of the Haskell community.  More accessible documentation of 
that aspect is on my to-do list.  I'm more or less waiting to start it 
until I get this current commercial project staffed properly.

I know it _is_ possible to learn the interesting type system features 
well enough with just the existing documentation, because one programmer 
on the project, who has no CS research background, has managed to do it 
without much apparent trouble.

> I tried to get it
> running a while ago and could not get it to compile.

You couldn't get the compiler to compile?  No one has reported problems 
recently, so I suspect everything would Just Work today, if you're using 
Linux or OS X (and possibly in other cases).

> I would also like
> to see how it handles non-web stuff as inevitably IME web applications
> involve more than merely reading and writing to a database.

I have no near-term plans to build an Ur implementation that handles 
non-web applications.  There is an FFI, though.

Yves_Pares wrote:
> It'd also be interesting to know what you missed in Haskell web 
> development so that you needed to build a new language inspired from it.

The key piece is precisely the basis of my paper "Ur: Statically-Typed 
Metaprogramming with Type-Level Record Computation."  Haskell is missing 
the features that I think are critical for pleasant type-level 
computation, in particular of the variety that I use in the examples 
detailed in the paper.  I'll leave the rest of my argument to be read 
out of the paper by those with enough background to do so.  Folks 
without that background might at least read the case studies part of the 
paper and consider how such things might be implemented in Haskell, with 
equivalent or stronger static guarantees.

Ertugrul Soeylemez wrote:
> Christopher Done<chrisdone at googlemail.com>  wrote:
>>> >  >  I write to mention briefly that I'm looking for people interested in
>>> >  >  writing Ur/Web programs for pay.  Ur/Web is a DSL for building
>>> >  >  modern web applications, and I believe it is truly a secret weapon
>>> >  >  for that domain, and one that should appeal to many Haskell fans.  I
>>> >  >  have one customer now for whom I'm leading a project to develop a
>>> >  >  particular web application, and I'd like to have more.  The current
>>> >  >  project would benefit from more programming help, and I would also
>>> >  >  like to develop a network of people interested in future projects.
>> >
>> >  I would like to see a real application in Ur/Web. There are many
>> >  simple examples. I don't and wouldn't want to develop like that,
>> >  writing raw HTML and SQL seems going backwards despite the incredible
>> >  advances in consistency and correctness that Ur/Web offers.
> I agree about the HTML part, but not so much about the SQL part.
> Personally I went back from all the nice abstractions to writing raw
> SQL, because I realized that this is the only way to really exploit the
> power of my database system (PostgreSQL) [1].

I agree.  I find that SQL is the most natural language for expressing 
data reading and writing, at least for the web applications I write.  
The need to go through a less declarative interface (e.g., classic ORMs) 
would be a bug, not a feature, for me.  (Though the online Ur/Web demos 
include type-safe ORM implemented as a library completely within the 

As far as HTML templating goes, templates are easy to implement as 
functions within Ur.  I understand that people unfamiliar with the 
language will want to see code examples before accepting this, but 
unfortunately I have none now.

More information about the Haskell-Cafe mailing list