When splitting parts of FreydCategoriesForCAP into a new package AdditiveClosureForCAP, the CategoryOfRows should also be moved.
It installs some Weak* operations, e.g.,
|
## Operations important for Freyd categories |
|
|
|
AddWeakKernelEmbedding( category, |
|
function( cat, morphism ) |
|
local homalg_matrix; |
|
|
|
homalg_matrix := ReducedSyzygiesOfRows( UnderlyingMatrix( morphism ) ); |
|
|
|
return CategoryOfRowsMorphism( cat, CategoryOfRowsObject( cat, NrRows( homalg_matrix ) ), homalg_matrix, Source( morphism ) ); # taking NrRows could be avoided by using a WithGiven version |
|
|
|
end ); |
These Weak* operations are, however, declared and generated in gap/FreydCategoriesForCAP.gi
|
WeakKernelEmbedding := rec( |
|
filter_list := [ "category", "morphism" ], |
|
input_arguments_names := [ "cat", "alpha" ], |
|
output_range_getter_string := "Source( alpha )", |
|
output_range_getter_preconditions := [ ], |
|
with_given_object_position := "Source", |
|
return_type := "morphism", |
|
dual_operation := "WeakCokernelProjection", |
|
is_merely_set_theoretic := true ), |
So the new AdditiveClosureForCAP package would need to load FreydCategoriesForCAP to work properly and vice versa. This defeats the purpose of splitting.
A workaround would be to move these method records into a separate file (which should be done anyways) and move it to CAP itself.
I could also only extract the method records relevant to CategoryOfRows and move them to AdditiveClosureForCAP, but that is ugly.
Any better solutions?
When splitting parts of
FreydCategoriesForCAPinto a new packageAdditiveClosureForCAP, theCategoryOfRowsshould also be moved.It installs some
Weak*operations, e.g.,CAP_project/FreydCategoriesForCAP/gap/CategoryOfRows.gi
Lines 634 to 644 in 06b93ab
These
Weak*operations are, however, declared and generated ingap/FreydCategoriesForCAP.giCAP_project/FreydCategoriesForCAP/gap/FreydCategoriesForCAP.gi
Lines 114 to 122 in 06b93ab
So the new
AdditiveClosureForCAPpackage would need to loadFreydCategoriesForCAPto work properly and vice versa. This defeats the purpose of splitting.A workaround would be to move these method records into a separate file (which should be done anyways) and move it to
CAPitself.I could also only extract the method records relevant to
CategoryOfRowsand move them toAdditiveClosureForCAP, but that is ugly.Any better solutions?