digraph ipu_stack_package_partition {
  graph [rankdir=LR, bgcolor="white", fontname="DejaVu Sans", fontsize=17,
         label="ipu_codegen::tile — package build/run detail", labelloc=t, labeljust=l, pad=0.2, nodesep=0.3, ranksep=0.75, newrank=true, overlap=false, splines=polyline, outputorder=edgesfirst];
  node [fontname="DejaVu Sans", fontsize=9, style="rounded,filled", color="#52606d", penwidth=0.8];
  edge [fontname="DejaVu Sans", fontsize=7, color="#52606d", arrowsize=0.55, penwidth=0.8];
  subgraph cluster_primary { label="primary nodes"; color="#d9e8fb"; style="rounded";
    f0 [label="ipu_codegen::tile::TileProgramLowering::exchange_code_end", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub const fn exchange_code_end(&self) -> u32 — crates/ipu-codegen/src/tile.rs:128"];
    f1 [label="ipu_codegen::tile::TileProgramLowering::lower_tile", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn lower_tile(&self, tile: u16) -> Result<TileProgram, TileLoweringError> — crates/ipu-codegen/src/tile.rs:132"];
    f10 [label="ipu_codegen::tile::TileProgramLowering::new", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn new( program: &'a LowProgram, placement: &'a Placement, exchanges: &'a [PhysicalExchangePhase], kernels: &'a KernelBuildPlan, exchange_code_base: u32, execution_tile_count: u16, validate_exchange_placement: bool, ) -> Result<Self, TileLoweringError> — crates/ipu-codegen/src/tile.rs:82"];
    f7 [label="ipu_codegen::tile::align_up", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn align_up(value: u32, alignment: u32) -> Result<u32, TileLoweringError> — crates/ipu-codegen/src/tile.rs:437"];
    f8 [label="ipu_codegen::tile::compact_exchange_table_bytes", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn compact_exchange_table_bytes( exchanges: &[PhysicalExchangePhase], execution_tile_count: u16, scheduled_tile_count: u16, ) -> Result<u32, TileLoweringError> — crates/ipu-codegen/src/tile.rs:444"];
    f9 [label="ipu_codegen::tile::layout_exchange_rows", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn layout_exchange_rows( exchanges: &[PhysicalExchangePhase], tile: u16, scheduled_tile_count: u16, base: u32, validate_placement: bool, ) -> Result<(BTreeMap<ExchangePhaseId, PlacedExchange>, u32), TileLoweringError> — crates/ipu-codegen/src/tile.rs:472"];
    f4 [label="ipu_codegen::tile::local_copy_call", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn local_copy_call(copy: &crate::LocalCopy) -> Option<(&'static str, Vec<u32>)> — crates/ipu-codegen/src/tile.rs:291"];
    f6 [label="ipu_codegen::tile::lower_inactive_work", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn lower_inactive_work( program: &LowProgram, work: &TileWorkList, exchange_rows: &BTreeMap<ExchangePhaseId, PlacedExchange>, ) -> Result<Vec<TileStep>, TileLoweringError> — crates/ipu-codegen/src/tile.rs:396"];
    f5 [label="ipu_codegen::tile::lower_repeat", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn lower_repeat( program: &LowProgram, repeat: &RepeatRun, placement: &Placement, kernels: &KernelBuildPlan, phases: &BTreeMap<ExchangePhaseId, &PhysicalExchangePhase>, exchange_rows: &BTreeMap<ExchangePhaseId, PlacedExchange>, ) -> Result<RepeatStep, TileLoweringError> — crates/ipu-codegen/src/tile.rs:323"];
    f3 [label="ipu_codegen::tile::lower_work", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn lower_work( program: &LowProgram, tile: &TileWorkList, placement: &Placement, kernels: &KernelBuildPlan, phases: &BTreeMap<ExchangePhaseId, &PhysicalExchangePhase>, exchange_rows: &BTreeMap<ExchangePhaseId, PlacedExchange>, overrides: &BTreeMap<LowShardId, TileAddress>, inside_repeat: bool, ) -> Result<Vec<TileStep>, TileLoweringError> — crates/ipu-codegen/src/tile.rs:205"];
    f2 [label="ipu_codegen::tile::placed_local_copy", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn placed_local_copy( program: &LowProgram, placement: &Placement, copy: &crate::LocalCopy, ) -> Result<(u32, u32), TileLoweringError> — crates/ipu-codegen/src/tile.rs:176"];
    t3 [label="ipu_codegen::tile::PlacedExchange\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/tile.rs:72"];
    t2 [label="ipu_codegen::tile::SharedRow\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/tile.rs:488"];
    t1 [label="ipu_codegen::tile::TileLoweringError\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/tile.rs:28"];
    t0 [label="ipu_codegen::tile::TileProgramLowering\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/tile.rs:10"];
  }
  subgraph cluster_external { label="outgoing references — click to open target partition"; color="#d9d9d9"; style="rounded,dashed";
    xf0 [label="ipu_codegen::exchange::diagnose_exchange_tile", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-exchange.svg", target="_top", tooltip="open target partition"];
    xf1 [label="ipu_codegen::exchange::inactive_exchange_program", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-exchange.svg", target="_top", tooltip="open target partition"];
    xf2 [label="ipu_codegen::graph::OperationId::index", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-graph.svg", target="_top", tooltip="open target partition"];
    xf3 [label="ipu_codegen::host::collect", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-host.svg", target="_top", tooltip="open target partition"];
    xf4 [label="ipu_codegen::kernel::materialize_kernel_run", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-kernel.svg", target="_top", tooltip="open target partition"];
    xf7 [label="ipu_codegen::low::ExchangePhaseId::index", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-low-part-1.svg", target="_top", tooltip="open target partition"];
    xf6 [label="ipu_codegen::low::LowProgram::work", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-low-part-1.svg", target="_top", tooltip="open target partition"];
    xf5 [label="ipu_codegen::low::LowShardId::index", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-low-part-1.svg", target="_top", tooltip="open target partition"];
    xf8 [label="ipu_exchange::normalized_exchange_address_words", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xt0 [label="ipu_codegen::exchange::PhysicalExchangePhase\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-exchange.svg", target="_top", tooltip="open defining partition"];
    xt1 [label="ipu_codegen::graph::Repeat\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-graph.svg", target="_top", tooltip="open defining partition"];
    xt2 [label="ipu_codegen::kernel::KernelBuildPlan\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-kernel.svg", target="_top", tooltip="open defining partition"];
    xt10 [label="ipu_codegen::low::ExchangePhaseId\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt3 [label="ipu_codegen::low::LocalCopy\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt4 [label="ipu_codegen::low::LocalCopyPattern\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt9 [label="ipu_codegen::low::LowProgram\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt6 [label="ipu_codegen::low::LowShardId\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt5 [label="ipu_codegen::low::RepeatRun\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt8 [label="ipu_codegen::low::TileWorkList\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt7 [label="ipu_codegen::low::TileWorkRef\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt11 [label="ipu_codegen::place::Placement\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-place.svg", target="_top", tooltip="open defining partition"];
    xt17 [label="ipu_codegen::program::CheckpointStep\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt13 [label="ipu_codegen::program::ComputeStep\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt12 [label="ipu_codegen::program::ExchangePatch\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt23 [label="ipu_codegen::program::ExchangeSetupPatch\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt21 [label="ipu_codegen::program::ExchangeStep\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt16 [label="ipu_codegen::program::PlacedExchangeRow\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt19 [label="ipu_codegen::program::RepeatPointer\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt18 [label="ipu_codegen::program::RepeatStep\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt14 [label="ipu_codegen::program::StepProfile\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt20 [label="ipu_codegen::program::TileAddress\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt22 [label="ipu_codegen::program::TileProgram\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt15 [label="ipu_codegen::program::TileStep\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
  }
  f1 -> f3 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f1 -> f6 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f1 -> f9 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f1 -> xt22 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f1 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> xf5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f2 -> xt3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> xt9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> xt11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xf2 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f3 -> xf4 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f3 -> xf6 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f3 -> f2 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f3 -> f4 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f3 -> f5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f3 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt7 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt13 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt14 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt15 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt20 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt21 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> xt3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> xt4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> f3 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt5 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt14 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt15 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt19 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt20 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> t3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xf2 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f6 -> xf6 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f6 -> xt1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt7 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt14 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt15 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt21 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> t3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f7 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> f9 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> xf0 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> xf1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> xf7 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> f7 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> xf8 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> xt10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> xt12 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> xt16 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> xt23 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> t3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f10 -> xf3 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f10 -> f8 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f10 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f10 -> xt2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f10 -> xt9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f10 -> xt11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f10 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  legend [shape=note, style="filled", fillcolor="#ffffff", color="#9aa5b1", fontsize=8,
          label="Solid: MIR-resolved call   Dotted: source fallback\nDashed, no arrow: uses type   Dashed node: link to another partition\nBlue: build   Green: run   Purple: shared"];
}
