pub fn translate_type<Id, T, U>(
    interner: &mut impl TypeContext<Id, U>,
    arc_type: &T
) -> U
where T: TypePtr<Id = Id>, U: TypePtr<Id = Id>, Id: Clone, T::SpannedId: Into<U::SpannedId> + Clone,