Generic Protocols, man. They. Are. Hard. Easy to create, but difficult to work with. For simple scenarios, they play well for the most part but unfortunately, the more complexity you create whilst working with them, the more you start to realize how much work needs to be done on them.
In this post, I'll walk through how to create a generic protocol, where you ***can't*** use them, and a workaround you can use to help a brotha out.