@@ -33,6 +33,12 @@ InstallGlobalFunction( FREYD_CATEGORY,
33
33
34
34
freyd_category!. category_as_first_argument := true ;
35
35
36
+ if IsBound ( underlying_category!. supports_empty_limits ) then
37
+
38
+ freyd_category!. supports_empty_limits := underlying_category!. supports_empty_limits;
39
+
40
+ fi ;
41
+
36
42
freyd_category!. compiler_hints := rec (
37
43
category_attribute_names := [
38
44
" UnderlyingCategory" ,
@@ -597,9 +603,10 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_FREYD_CATEGORY,
597
603
AddUniversalMorphismIntoDirectSumWithGivenDirectSum( category,
598
604
function ( cat, diagram, test_object, source, direct_sum_object )
599
605
600
- return FreydCategoryMorphism( Source( source [ 1 ] ) ,
606
+ return FreydCategoryMorphism( test_object ,
601
607
UniversalMorphismIntoDirectSum( underlying_category,
602
608
List( diagram, obj -> Range( RelationMorphism( obj ) ) ),
609
+ Range( RelationMorphism( test_object ) ),
603
610
List( source, mor -> MorphismDatum( mor ) ) ),
604
611
direct_sum_object
605
612
);
@@ -624,8 +631,9 @@ InstallGlobalFunction( INSTALL_FUNCTIONS_FOR_FREYD_CATEGORY,
624
631
return FreydCategoryMorphism( direct_sum_object,
625
632
UniversalMorphismFromDirectSum( underlying_category,
626
633
List( diagram, obj -> Range( RelationMorphism( obj ) ) ),
634
+ Range( RelationMorphism( test_object ) ),
627
635
List( sink, mor -> MorphismDatum( mor ) ) ),
628
- Range( sink [ 1 ] )
636
+ test_object
629
637
);
630
638
631
639
end );
0 commit comments