public override void ProcessType(TypeDefinition type)
        {
            if (!Annotations.IsMarked(type))
            {
                LinkContext.AddLinkedAwayType(type);
            }

            if (type.HasInterfaces)
            {
                foreach (var iface in type.Interfaces)
                {
                    if (Annotations.IsMarked(iface))
                    {
                        continue;
                    }

                    // This interface might be removed, so save it
                    if (!ProtocolImplementations.TryGetValue(type, out var list))
                    {
                        ProtocolImplementations [type] = list = new List <TypeDefinition> ();
                    }
                    list.Add(iface.InterfaceType.Resolve());
                }
            }
        }