We would like to support all combinations of the following axes - Src type sized or unsized - Dst type sized or unsized - Src larger than, same size as, or smaller than Dst type for the same fat pointer metadata - Includes when Src is sized and Dst is unsized and vice-versa - Dst same size as Src given a metadata fix-up operation Some specific operations we could support: - Sizes same w/o metadata fix-up: permits shared and exclusive reference casts - For same metadata, Dst smaller than Src: supports shared reference casts - When both types are sized: supports by-value transmute - For same metadata, Dst larger than Src: supports by-value transmute if uninit bytes are valid at the end of Dst - Sizes same given metadata fix-up: shared and exclusive casts (with metadata fix-up)