This program takes AEC electoral data and runs the Single Transferable Vote algorithm on it to calculate election outcomes. To compile this program, the following dependencies are needed: ghc (of course) gnu make Note however that make isn't strictly necessary if you have a look in the makefile to see the compilation commands required. Aside from base, the cabal packages required to compile this program are: directory either-unwrap either transformers parsec vector array time Compilation is done by 'make all'. Further instruction on how to use this program can be obtained from the '--help' switch, once compiled. The required data files this program expects can be obtained from http://results.aec.gov.au/20499/Website/SenateDownloadsMenu-20499-Csv.htm Specifically, the files listed under 'Formal Preferences'. At the moment this program can only handle AEC Senate data from 2016 or later. Processing of State Legislative Council data and more general STV data is a goal of future versions. Valid parameters for the '--state' option are 'NSW', 'QLD', 'VIC', 'TAS, 'SA', 'WA', 'ACT', 'NT', all uppercase. Note that the number of count logs this program outputs differs from the number that the AEC provides. This is because the AEC's program merges a few more logs compared to this one, eg the initial count, and counts that elect candidates. On the other hand, the AEC program is also a lot more verbose on the distribution of preferences, and doesn't do bulk exclusions. Finally, be aware that processing STV data takes a long time. It also takes a lot of memory for the larger datasets. If you want to be sure that progress is happening, either turn on the '--verbose' switch or monitor the output log directory.