The approach for calculating marginal-cost and full-cost prices introduced in #1148 requires calculating prices in dependency-order (i.e. if commodity A consumes commodity B as part of its production, then we must calculate the price of B before A). This breaks down in models with circularities (A consumes B and B consumes A), and we don't currently have any plan for how to address this. As it currently stands, this is flagged at the validation stage (disallow creating any InvestmentSet::Cycles containing commodities with marginal/full pricing strategies), but clearly this is something we need to address so we can remove this restriction.