Dear members of Haskell Cafe,
My name is Damien Desfontaines, and I'm currently following a Theoretical
Computer Science Major at the École Normale Supérieure in Paris, which is one of
the most selective universities in France.
To complete my curriculum, I am to find a three-month internship related to
something I have learnt, including lambda-calculus, compilers, graph theory,
languages theory, and complexity & calculability theories. I wish to make it
useful for the open-source community, for example by working for the Haskell
group through the Google Summer of Code Program.
The project I suggest is mainly inspired by Ticket #1555 [1] : I think that
would be a great idea to make it possible to call some Haskell code into OCamL.
In particular, this would contribute to the spreading of Haskell in countries
where OCamL is proeminent, mainly France and Italy. The idea would be the
following : building a translator which would turn Haskell code into (purely
functional) OCamL code, in order to enable the use of Haskell functions and
libraries within OCamL programs, in a "human-readable" way (the OCamL source
code generated would ideally be understandable enough to be manually modified).
I am well aware that one of the main issues lies in dealing with the conversion
between the two types systems, especially because of Haskell's lazy evaluation
and typeclasses. However, such a challenge really motivates me to spend hours
looking for the most efficient and usable solution, I would really enjoy
spending three months on such problems. However, I sincerely think I have the
skills needed to go through such a project.
Indeed, I have a long experience with OCamL. I used this language to
automatically write the undecidable Gödel proposition in Peano arithmetics,
using Tarski's original proof [2]. I have written a mini-Java compiler with it
[3], a MISP microprocessor simulator along with three friends [4], and many
other things for studies and personal entertainment. My experience of Haskell is
shorter, I learnt it with two books, "Learn You a Haskell for Great Good !" and
"Real World Haskell" (you are the co-author of this last book, aren't you ?
Well, congratulations, it's really well-written and precise !). I use it mainly
for mathematical-oriented works, and for coding competitions such as Google Jam
or Prologin.
I also have a little experience with open-source software : I have been using
Debian Linux for 4 years, so I know the basics of UNIX administration. I know
how to write a bug report, a man-page, a README, etc. I spend a lot of time
helping others on french IRC channels, Linux- or programmation-oriented. I
contribute to the Weboob project [5] by writing documentation and new modules.
This, in my opinion, makes me quite autonomous, and able to solve issues by
myself, by reading documentation, manuals or language specifications. Apart from
that, I have never been engaged in development of "large" projects such as
Haskell - but I am ready and excited to start !
I am confident I can interact efficiently with the Haskell community: if you
would like me to create a blog syndicated to Planet Haskell, in which I would
explain my work every one or two weeks, I can do that. I know how to read a
man-page, a language specification or a system documentation, so I consider
myself as quite autonomous to answer questions I could ask myself during a
project.
Furthermore, please let me know if you think my skills could be useful to
another Haskell project.
I look forward to the opportunity to discuss this idea with one or several
developers,
Damien Desfontaines
[1] http://hackage.haskell.org/trac/summer-of-code/ticket/1555
[2] http://www.eleves.ens.fr/home/desfonta/godel/godel.ml
[3] http://www.eleves.ens.fr/home/desfonta/ProjetCompil/
[4] https://github.com/kyoDralliam/CircuitSimulator
[5] http://weboob.org/