can/should Functor have a quantified coercible constraint?