module SenateTypes( CandidateID, UpperLowerMap ) where -- fairly obvious, rankings and candidateIDs are both numbers type Ranking = Int type CandidateID = Int -- 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 = [[CandidateID]] -- merely a list in the order of how candidates 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)]