Есть еще одна интересеная мысль про предкатегории/категории, которую редко вспоминают, но она мне кажется полезной. Обычно категории определяются через предкатегории, но можно сделать и наоборот. Предкатегории можно определить как тройки (X,C,f), где X — тип, C — категория, а f : X -> Ob(C) — сюръективная функция.