In the package Workflow there is a DSL for workflow patterns that include  a very broad notion of voting using monoids.  The other workflow combinators resemble a lot the async package, but applied to workflows. Maybe you can draw something from that to construct higuer level votation DSL.
 
The reason to use the workflow monad is because during a votation process there may be machine  failures. Decisions with various votation steps can stay running for months, so it is necessary to save and recover the state of the computation.
 
http://hackage.haskell.org/packages/archive/Workflow/0.8.0.5/doc/html/Control-Workflow-Patterns.HTML
 
 


2013/6/5 AlanKim Zimmerman <alan.zimm@gmail.com>

Have you looked at http://frictionfreedemocracy.org/

They are using https://github.com/agocorona/Workflow amongst other things to define election work flows.

Alan

On Jun 5, 2013 11:25 PM, "Corentin Dupont" <corentin.dupont@gmail.com> wrote:
Hi haskellers!
I am trying to make a DSL able to describe a voting system. That DSL should be able to describe many different voting procedures:
unanimity or majority, open or secret ballot, one or two turns... It should also work for referendums (yes/no question) or elections (electing one or several people)...
Are you aware of any such DSL? In Haskell I haven't see it, maybe in another language?

Cheers,
Corentin

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


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




--
Alberto.