Better error reporting
Wrap protocol method vars in a polymorphic binder to abstract over protocol tvars