diagonal functor