h&\N      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP Safe-Inferred!)*/014 linear-smcEquality-witnessing order type  !$#"%('&)*+,-./0123456789:;<=>?@-,+*)%('&.!$#"/012 3456789:;< =>?@   7(8.820 Safe-Inferred!()*/01245QRSTUVWXYZ[\]^_`ab Safe-Inferred!()*/0120cdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred !()*/0141 linear-smcintermediate result linear-smcexpose does two things: 1. push abstract morphisms (E, X) into the already processed part 2. turn f K g into a Merge linear-smcMerge L/R pair linear-smcPerform 1 reduction step, assumes input is already maximally exposed and sorted.  linear-smc:Perform all reduction steps and return intermediate states GHIJKLMNOP GJLMINHKOP       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk]lmnopX[q\rstuvwxyzy{^_|`ab}~cdefg'linear-smc-2.0.2-GQ2KOY5rqzUHe1zpw9iteUControl.Category.ConstrainedControl.Category.LinearControl.Category.FreeCartesianControl.Category.FreeSMCOrderLTGTEQ HasCompare compareMorphs ComparatorHopf InvertibledualClosedapplycurry CoCartesianinlinrnewjam▿ Cartesianexlexrdisdup▵Monoidal×swapassocassoc'unitorunitor'⊗ProdObjprodobjobjprodobjunitCategoryObjid∘TrivialAllO4O3O2.objProdprodObjunitObj// disDefault exlDefault exrDefault▵!cartesianCrosscartesianUnitorcartesianUnitor' cartesianSwapcartesianAssoccartesianAssoc' jamDefault newDefault▿!transp $fTrivialka $fCategoryFUN$fProdObjTrivial $fMonoidalFUN$fCartesianFUN $fClosedFUNP!:encodemkUnitignoresplitmergedecodecopydiscard FreeCartesian:▵:EmbedP2P1I:.:Cat:<::>:showDbgparens mapGenerators assocRight rightView assocLeftleftView evalCartesian SimplifierProtoSimplifierPartialComposerComposer:×:U'UA'ASUnitorIRILURULHasShowtoShowShofromShoXshoConcompareUnitorstrivializeUnitorcommuteUnitorsevalM evalUnitor evalUnitor'monoidalSimplify monoidalRules neverEqual mkSimplifiertoDuptoERexpose reduceStep reductionStepreductionSteps:+