message: Explain why each case is unreachable in freeze
  Summary: There are good reasons for each case we don't handle, but when they come up, it can take a while to figure it out. Add notes for next time I screw this up.
diff: @@ -187,7 +187,14 @@ impl Freezer {
  ValueMem::Mutable(x) => {
  *fvmem = FrozenValueMem::Immutable(immutable_static(x.into_inner().freeze(self)))
  }
  - _ => v.unexpected("FrozenHeap::freeze case 3"),
  + _ => {
  + // We don't expect Unitialized, because that is not a real value.
  + // We don't expect Forward or ThawOnWrite since they are handled in step 2.
  + // We don't expect Copied or Blackhole because that only happens during GC.
  + // We don't expect CallEnter/CallExit as that is only during profiling on the heap, and not referenced.
  + // We don't expect Ref, because that only occurs inside ValueRef, and that has a custom freeze.
  + v.unexpected("FrozenHeap::freeze case 3")
  + }
  }
  fv
  }
  