Bison was originally written by Robert Corbett.  It would not be what
it is today without the invaluable help of these people:

Airy Andre                Airy.Andre@edf.fr
Akim Demaille             akim@freefriends.org
Albert Chin-A-Young       china@thewrittenword.com
Alexander Belopolsky      alexb@rentec.com
Alexandre Duret-Lutz      adl@src.lip6.fr
Andreas Schwab            schwab@suse.de
Andrew Suffield           asuffield@users.sourceforge.net
Anthony Heading           ajrh@ajrh.net
Arnold Robbins            arnold@skeeve.com
Art Haas                  ahaas@neosoft.com
Baron Schwartz            baron@sequent.org
Benoit Perrot             benoit.perrot@epita.fr
Bert Deknuydt             Bert.Deknuydt@esat.kuleuven.ac.be
Bruce Lilly               blilly@erols.com
Bruno Haible              bruno@clisp.org
Charles-Henri de Boysson  de-boy_c@epita.fr
Cris Bailiff              c.bailiff+bison@awayweb.com
Cris van Pelt             cris@amf03054.office.wxs.nl
Daniel Hagerty            hag@gnu.org
David J. MacKenzie        djm@gnu.org
Derek M. Jones	          derek@knosof.co.uk
Dick Streefland           dick.streefland@altium.nl
Enrico Scholz             enrico.scholz@informatik.tu-chemnitz.de
Evgeny Stambulchik        fnevgeny@plasma-gate.weizmann.ac.il
Fabrice Bauzac            noon@cote-dazur.com
Florian Krohm             florian@edamail.fishkill.ibm.com
Frank Heckenbach          frank@g-n-u.de
Guido Trentalancia        trentalg@aston.ac.uk
H. Merijn Brand           h.m.brand@hccnet.nl
Hans Aberg                haberg@matematik.su.se
Jan Nieuwenhuizen         janneke@gnu.org
Jesse Thilo               jthilo@gnu.org
Jim Kent                  jkent@arch.sel.sony.com
Jim Meyering              jim@meyering.net
Joel E. Denny             jdenny@ces.clemson.edu
Juan Manuel Guerrero      ST001906@HRZ1.HRZ.TU-Darmstadt.De
Kees Zeelenberg           kzlg@users.sourceforge.net
Keith Browne              kbrowne@legato.com
Laurent Mascherpa         laurent.mascherpa@epita.fr
Magnus Fromreide          magfr@lysator.liu.se
Marc Autret               autret_m@epita.fr
Martin Mokrejs            mmokrejs@natur.cuni.cz
Martin Nylin		  martin.nylin@linuxmail.org
Matt Kraai                kraai@alumni.cmu.edu
Matt Rosing               rosing@peakfive.com
Michael Hayes             m.hayes@elec.canterbury.ac.nz
Mickael Labau             labau_m@epita.fr
Mike Castle               dalgoda@ix.netcom.com
Neil Booth                NeilB@earthling.net
Nelson H. F. Beebe        beebe@math.utah.edu
Nicolas Burrus            nicolas.burrus@epita.fr
Nicolas Tisserand         nicolas.tisserand@epita.fr
Noah Friedman             friedman@gnu.org
Oleg Smolsky              oleg.smolsky@pacific-simulators.co.nz
Pascal Bart               pascal.bart@epita.fr
Paul Eggert               eggert@cs.ucla.edu
Paul Hilfinger            Hilfinger@CS.Berkeley.EDU
Per Allansson             per@appgate.com
Peter Fales               psfales@lucent.com
Peter Hamorsky            hamo@upjs.sk
Piotr Gackiewicz          gacek@intertel.com.pl
Quoc Peyrot               chojin@lrde.epita.fr
R Blake                   blakers@mac.com
Raja R Harinath           harinath@cs.umn.edu
Richard Stallman          rms@gnu.org
Robert Anisko             anisko_r@epita.fr
Shura                     debil_urod@ngs.ru
Steve Murphy		  murf@parsetree.com
Tim Josling               tej@melbpc.org.au
Tim Van Holder            tim.van.holder@pandora.be
Tom Lane                  tgl@sss.pgh.pa.us
Tom Tromey                tromey@cygnus.com
Tommy Nordgren		  tommy.nordgren@chello.se
Troy A. Johnson           troyj@ecn.purdue.edu
Vin Shelton               acs@alumni.princeton.edu
Wayne Green               wayne@infosavvy.com
Wolfram Wagner            ww@mpi-sb.mpg.de
Wwp                       subscript@free.fr
Zack Weinberg             zack@codesourcery.com
                          twlevo@xs4all.nl

Many people are not named here because we lost track of them.  We
thank them!  Please, help us keeping this list up to date.

Local Variables:
mode: text
End:
