Checksums

Agree (sort-of) in the `string_of` case. I don't really like this special-casing in `of_string` though. Is this function required anyway?