I have the following statements:
Voter sender = voters[msg.sender];
if (!sender || sender.voted) throw;
I'm new to solidity, so I might not be aware of how (or if) coercion works.
As I found out in this question,
[...] every possible key exists and is mapped to a value whose byte-representation is all zeros [...]
Knowing that, shouldn't the !sender
statement above return true
?