This is a good point about the enums. I think that with this change, those enums should be deprecated in favor of explicitly setting the progress class to use.

I had thought about naming the protocol `MMProgressView`. The only problem I saw with this is that the name makes it appear that it is a concrete subclass of `UIView`. We are enforcing that it is a `UIView` at the compiler-level by making the property `UIView <MMProgressView>`, but this is not in the protocol itself.