module SenateTypes( Ranking, Position, CandidateID, AboveLineBallot, BelowLineBallot, Criteria ) where -- fairly obvious, rankings, positions and candidateIDs are all numbers type Ranking = Int type Position = Int type CandidateID = String -- positions in the uppermap list correspond to the boxes above the line, -- and the lists of candidateIDs are the boxes below the line type AboveLineBallot = [[Position]] -- a list of candidates in the order of how they were placed below the line type BelowLineBallot = [CandidateID] -- represents a criteria used for finding ballots that voted a specific -- way, for example voted for candidate C as #1, candidate F as #2, etc type Criteria = [(Ranking,CandidateID)]