Modifications to make attrvars play nicer with data migrations. The key change in CSets is to redefine ACSetFunctors, which are used critically in data migrations to compose with ordinary functors representing the migrations themselves, to again always take values in FinSetInts and FinDomFunctions when possible. Previously, the ACSetFunctor of an ACSet containing any Attrvars would take values entirely in VarSets, which both confused the difference between actual Attrvars and combinatorial data and interfaced badly with the Limits API.
To make this work I also defined how to compose FinFunctions with VarFunctions on the left.
Modifications to make attrvars play nicer with data migrations. The key change in CSets is to redefine
ACSetFunctor
s, which are used critically in data migrations to compose with ordinary functors representing the migrations themselves, to again always take values inFinSetInt
s andFinDomFunction
s when possible. Previously, theACSetFunctor
of anACSet
containing anyAttrvar
s would take values entirely inVarSet
s, which both confused the difference between actualAttrvar
s and combinatorial data and interfaced badly with theLimit
s API.To make this work I also defined how to compose
FinFunction
s withVarFunction
s on the left.