code: func DeepHashObject(hasher hash.Hash, objectToWrite interface{}) {
  	hasher.Reset()
  	printer := spew.ConfigState{
  		Indent:         " ",
  		SortKeys:       true,
  		DisableMethods: true,
  		SpewKeys:       true,
  	}
  	printer.Fprintf(hasher, "%#v", objectToWrite)
  }
docs: // DeepHashObject writes specified object to hash using the spew library
  // which follows pointers and prints actual values of the nested objects
  // ensuring the hash does not change when a pointer changes.