module SenateTypes( Ranking, Position, CandidateID, AbovePreferences, BelowPreferences, FullPreferences, UpperMap, LowerMap, Trace ) where -- fairly obvious, rankings, positions and candidateIDs are all numbers type Ranking = Int type Position = Int type CandidateID = String type AbovePreferences = [(Position,Ranking)] type BelowPreferences = [(Position,Ranking)] type FullPreferences = (AbovePreferences,BelowPreferences) -- positions in the uppermap list correspond to the boxes above the line, -- and the lists of candidateIDs are the boxes below the line type UpperMap = [[Position]] -- a list of candidates in the order of how they were placed below the line type LowerMap = [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 Trace = [(Ranking,CandidateID)]