pub fn remove_alias<T>(
    env: &(dyn TypeEnv<Type = T> + '_),
    interner: &mut impl TypeContext<Symbol, T>,
    typ: &T
) -> Result<Option<T>, Error>
where T: TypeExt<Id = Symbol, SpannedId = Symbol> + Clone + Display, T::Types: Clone + Default + Extend<T> + FromIterator<T>, T::Generics: Clone + FromIterator<Generic<Symbol>>, T::Fields: Clone,
Expand description

Expand typ if it is an alias that can be expanded and return the expanded type. Returns None if the type is not an alias or the alias could not be expanded.