[Haskell-cafe] Writing forum software in Haskell

Brian Hulley brianh at metamilk.com
Sun Sep 24 19:40:12 EDT 2006

David House wrote:
> Hi all.
> The recent thread on email vs. forums inspired a bit of interest to
> get some forum software on haskell.org. Were we to go ahead with this,
> I think it'd be great to have this software written in Haskell itself.
> * What kind of forum are we aiming at? In my eyes, it'd be less like
> the bloated phpBBs out there full of oversized signatures and avatars,
> and more like the minimalistic bbPress on show at, for example, the
> WordPress support forums [1].
> * What would be a compulsory feature list?

1) I think anyone who posts should first have to register to avoid the 
problem of spam.

2) I think it would be good if it was possible to get away from the usual 
tree structure of posts. By this I mean that usually you have to choose a 
post to reply to, which is awkward if you want to comment on more than one 
previous post because then it's not clear what post to choose as the 

As a rough idea, perhaps something which considered paragraphs(*) as the 
basic unit of discourse ie

    data Post = Post {_author :: !Author, _time :: !Time, _topic :: !Topic, 
_paras :: ![PostPara]}

    data PostPara = Own !Paragraph | Quoted !PostPara !Author !Time !Topic

    data Paragraph = Text !ByteString | Code !ByteString

and I'd imagine posts being edited using an editor which displayed a 
vertical sequence of PostPara's (ie edit boxes for the paragraphs you've 
written yourself and some other widget involving a static text box to 
display paras that you're quoting)

Multiple consecutive paras that you write yourself would just be written in 
the same edit box. Actually the whole post could be written in one edit box 
if there was a special escape syntax for quoting (you'd select some text in 
some other post then click "quote" and it would be pasted into the post 
you're composing surrounded by the appropriate escape sequences and source 
info, and like the wiki editor, you could click preview to see how the whole 
thing would look when posted).

This would give full support for DAG based discussions. (At the moment in 
the mailing list if I want to reply to more than one person I have to click 
"reply" on each email I'm replying to and cut and paste the indented text 
from the second person's email into my reply to the first and hope that I 
don't accidentally send the second blank reply by mistake, and if someone 
has chosen to include a signature with their message or sent it using HTML 
instead of plain text I have to manually indent each individual line myself 
because Outlook Express doesn't display the text of signed messages but 
instead puts it into a file like ATT000012.txt...)

(*) Of course the above representation doesn't give any way to only quote 
part of a paragraph or to split paragraphs up so it might be too inflexible. 
It might also not be clear what should be regarded as a paragraph. Perhaps 
"span of text" would be a better "unit of discourse".

3) It would be nice if there was a way to put something in the "centre" to 
be discussed from different angles, instead of always being stuck with a 
linear flow, where important points made in previous posts can just get 
ignored altogether because they are too far back in linear time. The 
scenario I'm thinking of is:

    3a) Person A makes 2 good points, A1 and A2

    3b) Person B replies to A1

    3c) Person C replies to B's reply of A1

    3d ) Long discussion about A1

    3e) A2 has completely been forgotten and is never addressed

I'm imagining a visual representation of the text in the centre with the 
discussion around it though perhaps this is getting too complicated for 
what's possible just with HTML.

4) Another nice feature would be the ability to just say "cool" or "yes" or 
"no" without having to actually make a real post like a kind of vote for or 
against an idea.

Anyway best of luck with whatever forum people come up with. I originally 
used to post to the mailing list using the Google group fa.haskell (strange 
name!!!) but though I liked the Google interface the posting didn't work 
properly - my posts were delayed several days and sometimes never got there 
at all.

Regards, Brian.
Logic empowers us and Love gives us purpose.
Yet still phantoms restless for eras long past,
congealed in the present in unthought forms,
strive mightily unseen to destroy us.


More information about the Haskell-Cafe mailing list