For many common uses of protocols, it may be inconvenient to subclass protocols.Interface or to manually create a Protocol instance. So, the protocols package includes a number of utility functions to make these uses more convenient.