cocategory copoint copresheaf direct product power pushout relation comma category projection pregroupoid