add func_diagonal, fix naturality for DiagonalCat