public static void AssertImplements(this Field field, Type type)
 {
     if (!Implements(field, type))
     {
         throw new InvalidOperationException("{0} does not implement {1}".FormatWith(field.ToString(), type.Name));
     }
 }
 public override string ToString()
 {
     return("[{0}]\r\n  {1}\r\n  {2}".FormatWith(Name, BackReference.Name, Field.ToString()));
 }