Bendtorch.OptState.split: def of bendtorch@1.3.0.0 Import: import bendtorch@1.3.0.0/main.bend as Bendtorch Lines 78-87 of bendtorch@1.3.0.0/main.bend: https://jend.leeeet.dev/read.txt?path=bendtorch@1.3.0.0/main.bend&start_line=78&end_line=87 import Base # A packed tree splits at its node; a part not yet stepped splits into two such parts. A leaf belongs to one matrix and # is never split (it goes to the left, the right side starts empty). def OptState.split(-A: Type, -B: Type, st: OptState>) -> Two, OptState>: match st: case NoMom{}: Two{NoMom{}, NoMom{}} case OneMom{Two{a, b}}: Two{OneMom{a}, OneMom{b}} case TwoMom{Two{a, b}, Two{c, d}}: Two{TwoMom{a, c}, TwoMom{b, d}} case Packed{PNode{a, b}}: Two{Packed{a}, Packed{b}} case Packed{PNew{+f}}: Two{Packed{PNew{f}}, Packed{PNew{f}}} case Packed{t}: Two{Packed{t}, Packed{PNew{False{}}}} Uses (4): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=bendtorch@1.3.0.0/main.bend&name=OptState https://jend.leeeet.dev/definition.txt?path=bendtorch@1.3.0.0/main.bend&name=PTree https://jend.leeeet.dev/definition.txt?path=bendtorch@1.3.0.0/main.bend&name=Two