= (ceylon.language.meta.model.MemberClass)
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 = ((AppliedMemberClass)member).$reifiedContainer;
TypeDescriptor actualReifiedArguments = ((AppliedMemberClass)member).$reifiedArguments;
ProducedType actualType = Metamodel.getModel((ceylon.language.meta.model.Type<?>) member);
Metamodel.checkReifiedTypeArgument("memberApply", "Member<$1,Class<$2,$3>>&Class<$2,$3>",
Variance.IN, Metamodel.getProducedType(actualReifiedContainer), $reifiedContainer,
Variance.OUT, actualType, $reifiedType,
Variance.IN, Metamodel.getProducedType(actualReifiedArguments), $reifiedArguments);