functor equality