What is the argument against declaring protected-access members on interfaces? This, for example, is invalid:
public interface IOrange { public OrangePee
By implementing an interface the type states that it supports a specific set of methods. If any of these methods were not public, it would not be available to callers and thus the type would not support the interface as stated.