Closes #158. As discussed on the issue, this makes it possible to safely serialize data into hashes, and encourages serializable data to make illegal states unrepresentable.