new haskell project (Was Re: [Haskell-cafe] Subtype polymorphism in Haskell)

Simon Courtenage courtenage at
Sat Jul 10 14:15:37 EDT 2010

Hi Daniel,

Thanks for getting in touch - I would recommend, if you are interested in
the project, that you join the project mailing lists, and let me know your
sourceforge account name so I can add you to the project membership list.

About the design question that you raise.  The aim is to create a version of
Quantlib in haskell in the sense that what is available in Quantlib is
available in the Haskell version - for example, to create pricing engines
and apply them to products.  No-one currently involved on the project -
certainly not me - is such an expert on quantitative finance that we could
do this from scratch.  In fact, I hope to learn a lot about this subject as
a result of doing the project.

In addition, since Quantlib has already a large user base that is used to
the way components are composed together to get things done, I thought it
would be useful to allow similar components to be composed (functionally, of
course) in a similar way to allow knowledge about the one to be used with
the other.

Quantlib, therefore, provides a knowledge-base and reference architecture
for the new haskell project. My (naive) idea, at the beginning, for all
these reasons, was to follow and be guided by, but not faithfully recreate
or replicate, the structure of the C++ code.  I'm open to new ideas about
design, and anyone who wishes to contribute is more than welcome to join the


On Fri, Jul 9, 2010 at 5:15 PM, Daniel Cook <danielkcook at> wrote:

> Hi Simon,
> I'm interested in this as well (you might have seen my other posts
> about getting QuickFIX interfaced with Haskell).
> One question (Yitzchak raises a valid point):
> Why port QuantLib's structure rather than directly build an idiomatic
> Haskell quantitative finance library? Especially given that the task
> lends itself so nicely to functional programmming (cf the canonical
> Functional Pearl by SPJ on composing financial contracts).  Just
> curious about your rationale...
> Cheers,
> - Dan
> On Tue, Jul 6, 2010 at 7:26 PM, Simon Courtenage <courtenage at>
> wrote:
> > Hi,
> > Just to add some details about the project I'm working on in case anyone
> is
> > interested.  The project is called Quanthas and is being hosted on
> > sourceforge at  The aim of
> the
> > project is to produce a Haskell implementation of Quantlib
> > ( an open source library for
> > quantitative finance written in C++.  Haskell is starting to be used
> > seriously in quantitative finance and risk modelling circles within the
> > investment banking and finance community, so I thought there would be
> some
> > value in producing such a version.
> > If anyone is interested in helping out, we would be more than happy to
> hear
> > from you, since the project has just started and there's a great deal to
> do
> > (and learn!).
> > Best regards
> > Simon Courtenage
> > On Tue, Jul 6, 2010 at 2:32 PM, Yitzchak Gale <gale at> wrote:
> >>
> >> Hi Simon,
> >>
> >> Did you intentionally not reply to the list?
> >>
> >> Simon Courtenage wrote:
> >> > This is for a project to port an open-source C++ library to haskell.
> >>
> >> Great! We'd love to give you whatever support you need
> >> for your efforts.
> >>
> >> > My initial plan is to more or less preserve the way the
> >> > library works in the first draft of the port and see how
> >> > far we can get like that
> >>
> >> That's fine, as long as you truly mean the way it works,
> >> and not the way the code is structured. Haskell is a post-OO
> >> language. Its abstractions are very different than class
> >> structures in C++. There is no direct translation - any given
> >> C++ class structure could correspond to many totally different
> >> kinds of Haskell programs, depending on what the program
> >> is trying to do.
> >>
> >> If you are trying to find a method to transliterate a strongly
> >> OO-style C++ program more or less word for word into
> >> Haskell in a way that the class structure of the C++ will
> >> still be apparent in the result, you are likely in for a frustrating
> >> experience. You will spend a lot more time than you expected,
> >> and the results will be very unsatisfying. Many others have
> >> ended up that way.
> >>
> >> On the other hand, if you are willing to be a little more flexible
> >> in your thinking, you'll probably find the task much easier than
> >> you thought, enjoy it, and reap many benefits from the process
> >> that you never imagined.
> >>
> >> In any case, please keep us in the loop, we'd like to hear
> >> how it's going. And, uh... would you be willing to share a
> >> few more details about what it is that you're trying to port? ;)
> >>
> >> Thanks,
> >> Yitz
> >
> >
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at
> >
> >
> >
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Haskell-Cafe mailing list