Hi David,

I'm working on a Haskell library for interacting with emacs org files. For
> those that do not know, an org file is a structured outline style file that
> has nested headings, text, tables and other elements.
>
>
Great! Sounds like fun. :)

Now, this all works as expected (files are correctly being parsed and
> written), however I am having a lot of trouble trying to come up with a
> decent API to work with this. While writing an OrgFile is fairly easy,
> reading (and accessing inner parts) of an org file is very tedious, and
> modifying them is horrendous.
>

I can imagine.


> However, I don't know if this is even possible, how to do it, or if there
> is a better alternative to this. I would really apreciate any hints with
> regards to this. It would be useful to know if there are other libraries
> that also face this problem, and how they solved it.
>

I definite agree with Neil: I think generic programming is exactly what you
are looking for. Fortunately, there are a number of libraries available to
help you solve your problem. The next problem is figuring out which one and
learning how to it. For this purpose, a comparison of libraries for generic
programming in Haskell was recently published:


http://www.cs.uu.nl/wiki/Alexey/ComparingLibrariesForGenericProgrammingInHaskell

That should give you an idea of what's out there and the pros and cons of
each library.

I found your example particularly interesting, so I decided to try out a
solution in EMGM (Extensible and Modular Generics for the Masses). I wrote
up my experiment here:


http://splonderzoek.blogspot.com/2009/03/experiments-with-emgm-emacs-org-files.html

More information on EMGM is here:

  http://www.cs.uu.nl/wiki/GenericProgramming/EMGM

I'd be happy to help you figure out if EMGM is appropriate for other things
you want to do. Good luck with your library!

Regards,
Sean
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to