digraph ipu_stack_package_partition {
  graph [rankdir=LR, bgcolor="white", fontname="DejaVu Sans", fontsize=17,
         label="ipu_codegen::operator — 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";
    f6 [label="ipu_codegen::operator::AllocationRequirements::merge", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn merge(&mut self, other: Self) — crates/ipu-codegen/src/operator.rs:438"];
    f7 [label="ipu_codegen::operator::AllocationRequirements::require_distinct_element", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn require_distinct_element(&mut self) — crates/ipu-codegen/src/operator.rs:445"];
    f12 [label="ipu_codegen::operator::ConversionStrategy::uses_intersections", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub const fn uses_intersections(self) -> bool — crates/ipu-codegen/src/operator.rs:563"];
    f0 [label="ipu_codegen::operator::DeferredTransform::map_slice", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="/// Map one rectangular output slice back to a rectangular producer slice. /// Returning `None` means that the requested slice crosses a transform /// discontinuity and must be divided before dispatch. pub fn map_slice( self, source_shape: &TensorShape, output_shape: &TensorShape, output: &[(u32, u32)], ) -> Option<DeferredSliceMapping> — crates/ipu-codegen/src/operator.rs:190"];
    f3 [label="ipu_codegen::operator::GemmKernelFamily::kernel", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn kernel(self, mode: GemmKernelMode, block: GemmBlockShape) -> TileKernelSpec — crates/ipu-codegen/src/operator.rs:329"];
    f2 [label="ipu_codegen::operator::GemmResultGrid::tile_count", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub const fn tile_count(self) -> u16 — crates/ipu-codegen/src/operator.rs:299"];
    f11 [label="ipu_codegen::operator::MemorySpaceRequirements::with_distinct_elements", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn with_distinct_elements( mut self, operands: impl IntoIterator<Item = MemoryOperand>, ) -> Self — crates/ipu-codegen/src/operator.rs:515"];
    f8 [label="ipu_codegen::operator::OperandRequirement::new", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn new(format: TensorFormat, alignment: u32) -> Self — crates/ipu-codegen/src/operator.rs:466"];
    f9 [label="ipu_codegen::operator::OperandRequirement::with_access_tail", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn with_access_tail(mut self, bytes: u32) -> Self — crates/ipu-codegen/src/operator.rs:477"];
    f10 [label="ipu_codegen::operator::OperandRequirement::with_materialization", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn with_materialization(mut self, materialization: OperandMaterialization) -> Self — crates/ipu-codegen/src/operator.rs:487"];
    f4 [label="ipu_codegen::operator::OperatorDispatch::empty_output_shard_policy", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn empty_output_shard_policy(&self) -> EmptyOutputShardPolicy — crates/ipu-codegen/src/operator.rs:395"];
    f17 [label="ipu_codegen::operator::OperatorPlan::candidate", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub(crate) fn candidate( operator: MidOperator, dispatch: OperatorDispatch, requirements: OperatorRequirements, deferred_output: Option<DeferredOutputPlan>, ) -> Self — crates/ipu-codegen/src/operator.rs:628"];
    f18 [label="ipu_codegen::operator::OperatorPlan::supports", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub(crate) fn supports(&self, inputs: &[TensorType], output: &TensorShape) -> bool — crates/ipu-codegen/src/operator.rs:643"];
    f19 [label="ipu_codegen::operator::OperatorPlan::validate", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn validate( &self, inputs: &[TensorType], output: &TensorType, ) -> Result<(), OperatorPlanError> — crates/ipu-codegen/src/operator.rs:710"];
    f1 [label="ipu_codegen::operator::Precision::bytes", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub const fn bytes(self) -> u64 — crates/ipu-codegen/src/operator.rs:22"];
    f14 [label="ipu_codegen::operator::alias_compatible", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn alias_compatible( index: usize, requirements: &[OperandRequirement], inputs: &[TensorType], output_requirement: &OperandRequirement, output_shape: &TensorShape, ) -> bool — crates/ipu-codegen/src/operator.rs:599"];
    f13 [label="ipu_codegen::operator::layout_conversion_strategy", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn layout_conversion_strategy(from: &Layout, to: &Layout) -> ConversionStrategy — crates/ipu-codegen/src/operator.rs:567"];
    f5 [label="ipu_codegen::operator::layout_has_empty_shards", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub(crate) fn layout_has_empty_shards(layout: &Layout, shape: &TensorShape) -> bool — crates/ipu-codegen/src/operator.rs:403"];
    f16 [label="ipu_codegen::operator::valid_memory_operand", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn valid_memory_operand(operand: MemoryOperand, input_count: usize) -> bool — crates/ipu-codegen/src/operator.rs:619"];
    f15 [label="ipu_codegen::operator::valid_requirement", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn valid_requirement(requirement: &OperandRequirement, shape: &TensorShape) -> bool — crates/ipu-codegen/src/operator.rs:614"];
    t19 [label="ipu_codegen::operator::AccumulationPrecision\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:32"];
    t29 [label="ipu_codegen::operator::AllocationRequirements\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:430"];
    t7 [label="ipu_codegen::operator::AttentionBlocking\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:159"];
    t5 [label="ipu_codegen::operator::AttentionKernelFamily\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:147"];
    t6 [label="ipu_codegen::operator::AttentionPadding\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:153"];
    t8 [label="ipu_codegen::operator::AttentionPlan\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:171"];
    t21 [label="ipu_codegen::operator::BlockedGemmPlan\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:349"];
    t39 [label="ipu_codegen::operator::ConversionPlan\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:577"];
    t37 [label="ipu_codegen::operator::ConversionStrategy\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:552"];
    t12 [label="ipu_codegen::operator::DeferredInputPlan\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:260"];
    t11 [label="ipu_codegen::operator::DeferredOutputPlan\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:250"];
    t10 [label="ipu_codegen::operator::DeferredSliceMapping\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:242"];
    t9 [label="ipu_codegen::operator::DeferredTransform\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:183"];
    t25 [label="ipu_codegen::operator::EmptyOutputShardPolicy\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:389"];
    t17 [label="ipu_codegen::operator::GemmBlockShape\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:316"];
    t13 [label="ipu_codegen::operator::GemmDistribution\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:268"];
    t20 [label="ipu_codegen::operator::GemmGeometry\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:342"];
    t14 [label="ipu_codegen::operator::GemmGrid\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:278"];
    t18 [label="ipu_codegen::operator::GemmKernelFamily\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:322"];
    t41 [label="ipu_codegen::operator::GemmKernelMode\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:97"];
    t2 [label="ipu_codegen::operator::GemmOrientation\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:122"];
    t22 [label="ipu_codegen::operator::GemmPlanConstraint\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:359"];
    t15 [label="ipu_codegen::operator::GemmResultGrid\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:293"];
    t0 [label="ipu_codegen::operator::GemmWeightLoad\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:103"];
    t1 [label="ipu_codegen::operator::GridOrder\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:114"];
    t30 [label="ipu_codegen::operator::LocalOperandStaging\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:452"];
    t28 [label="ipu_codegen::operator::MemoryElementRequirement\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:423"];
    t33 [label="ipu_codegen::operator::MemoryOperand\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:502"];
    t34 [label="ipu_codegen::operator::MemorySpaceRequirements\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:508"];
    t26 [label="ipu_codegen::operator::MidOperator\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:38"];
    t31 [label="ipu_codegen::operator::OperandMaterialization\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:459"];
    t27 [label="ipu_codegen::operator::OperandRequirement\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:411"];
    t4 [label="ipu_codegen::operator::OperatorDispatch\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:133"];
    t36 [label="ipu_codegen::operator::OperatorPlan\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:534"];
    t40 [label="ipu_codegen::operator::OperatorPlanError\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:585"];
    t35 [label="ipu_codegen::operator::OperatorRequirements\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:526"];
    t32 [label="ipu_codegen::operator::OutputAliasing\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:495"];
    t16 [label="ipu_codegen::operator::ParallelReductionPlan\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:305"];
    t24 [label="ipu_codegen::operator::PointwiseInputMapping\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:380"];
    t3 [label="ipu_codegen::operator::Precision\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:12"];
    t23 [label="ipu_codegen::operator::ReductionStaging\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:368"];
    t38 [label="ipu_codegen::operator::TileKernelSpec\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/operator.rs:55"];
  }
  subgraph cluster_external { label="outgoing references — click to open target partition"; color="#d9d9d9"; style="rounded,dashed";
    xf0 [label="ipu_codegen::config::PlannerSearchDomain::default", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-config.svg", target="_top", tooltip="open target partition"];
    xf1 [label="ipu_codegen::emitter::CodegenOptions::default", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-emitter.svg", target="_top", tooltip="open target partition"];
    xf5 [label="ipu_codegen::layout::Layout::resolve", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open target partition"];
    xf3 [label="ipu_codegen::layout::ResolvedLayout::has_empty_shards", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open target partition"];
    xf4 [label="ipu_codegen::layout::ResolvedLayout::maximum_axis_extent", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open target partition"];
    xf2 [label="ipu_codegen::layout::ResolvedLayout::padded_shape", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open target partition"];
    xf6 [label="ipu_codegen::place::DisjointSets::find", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-place.svg", target="_top", tooltip="open target partition"];
    xt0 [label="ipu_codegen::graph::TensorShape\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-graph.svg", target="_top", tooltip="open defining partition"];
    xt5 [label="ipu_codegen::layout::AmpOrder\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open defining partition"];
    xt2 [label="ipu_codegen::layout::BlockMajorOrder\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open defining partition"];
    xt4 [label="ipu_codegen::layout::ElementOrder\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open defining partition"];
    xt3 [label="ipu_codegen::layout::Layout\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open defining partition"];
    xt1 [label="ipu_codegen::layout::TensorAxis\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open defining partition"];
    xt6 [label="ipu_codegen::layout::TensorFormat\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open defining partition"];
    xt7 [label="ipu_codegen::layout::TensorType\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-layout.svg", target="_top", tooltip="open defining partition"];
  }
  f0 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f0 -> t10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t38 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t41 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xf3 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> xf5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> t28 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f7 -> t28 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> xf0 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f8 -> xf1 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f8 -> xt6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> t29 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> t30 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> t31 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f10 -> t31 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f11 -> t33 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f13 -> xt3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f13 -> t37 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f14 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f14 -> xt7 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f14 -> t27 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f15 -> xf5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f15 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f15 -> t27 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f16 -> t33 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f17 -> t4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f17 -> t11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f17 -> t26 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f17 -> t35 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f18 -> f14 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f18 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f18 -> f16 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f18 -> f19 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f18 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f18 -> xt7 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f18 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> xf2 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f19 -> xf4 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f19 -> f4 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f19 -> f5 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f19 -> xf6 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f19 -> xt1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> xt2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> xt4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> xt5 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> xt7 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t7 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t13 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t19 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t26 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t38 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t40 [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"];
}
