1. Use the type system to prevent all the bugs that arise from (de)normalization of domain names. We should use newtype wrappers around string domain names that we can only create by using a normalize_foo constructor. That way we can make sure that we never do a comparison on a denormalized name.