pub fn translate_alias<Id, T, U, F, I>(
    interner: &mut I,
    alias: &AliasData<Id, T>,
    translate: F
) -> AliasData<Id, U>
where T: TypePtr<Id = Id>, U: TypePtr<Id = Id>, Id: Clone, T::SpannedId: Clone, F: FnMut(&mut I, &T) -> U, I: TypeContext<Id, U>,