ceylon.language.meta.model.Member<? extends Container, ceylon.language.meta.model.ClassOrInterface<?>> member
= getAppliedClassOrInterface(null, null, typeArguments, containerType);
// This is all very ugly but we're trying to make it cheaper and friendlier than just checking the full type and showing
// implementation types to the user, such as AppliedMemberClass
TypeDescriptor actualReifiedContainer;
if(member instanceof AppliedMemberClass)
actualReifiedContainer = ((AppliedMemberClass)member).$reifiedContainer;
else
actualReifiedContainer = ((AppliedMemberInterface)member).$reifiedContainer;
ProducedType actualType = Metamodel.getModel((ceylon.language.meta.model.Type<?>) member);