generalize subtype operator

allow user-definable subtype operators such as <coerce: in addition to the plain <: