{
  "revision": "c5c4321bcc6416bdc639f1ff9218c2c538051156",
  "description": "Recorded lanelang outcomes, separate from the browser numerical illustration. Source checkout may be newer than the public repository.",
  "files": {
    "PAPER.pdf": "8374ca3eeba37ec52379a6c349cd12654368b0984d2d4da1a21401c90e1af01c",
    "PAPER-dark.pdf": "4833cba57d8969feee68f615d76cb2a1de159e98b01ece33026518cf9315157e",
    "CITATION.cff": "e9aed90bd6e96afca872f2eb8ff47fcbfe3a153b40e16dba2fa29a295d43cc78",
    "src/lanelang/lattice.c": "f96f436c8cdc49ef863a5a94a47e65057dfad5823103244047f55353c9873054",
    "src/lanelang/heal.c": "7ae76cc92c5728ecf6d10ec0d81739e51b9f8d78890e850f8403d3f4e99d8f25",
    "src/lanelang/lower.c": "6bd352f5f11b392b8e9646cf11c196f260b650040db975fb550612b4c1c98551"
  },
  "scenarios": [
    {
      "id": "reject_poison",
      "path": "src/tests/lanelang/reject_poison.lane",
      "sha256": "0abb93dbfd0c1c46914aec31bca191a5327202804caa3f9bee27f8d32bf50e9d",
      "source": "// Copyright 2026 PolitePixels Limited\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage app\n\n// EXPECT: reject computed=approx demanded=replay primary=21:5 secondary=20:19 hops=2\nfunc main() Float {\n    x := indices(count: 100000.0)\n    approx pre := sum(x * 0.25)\n    replay demanded := sum(x + pre)\n    return demanded\n}\n",
      "runs": {
        "check": {
          "exitCode": 1,
          "output": "src/tests/lanelang/reject_poison.lane:21:5: error: determinism lane violation: this value computes approx where replay is demanded. An unpinned schedule cannot be recovered downstream: the rounding already happened. Pin the producer by naming it with a replay or exact qualifier, or weaken the demand\n    21 |     replay demanded := sum(x + pre)\n       |     ^^^^^^ the demand is stated here\n  ... the guarantee was lost 2 steps upstream:\n    20 |     approx pre := sum(x * 0.25)\n       |                   ~~~ introduced here\nsrc/tests/lanelang/reject_poison.lane:20:19: note: 'sum' is a fold/free, so it contributes approx to the join\n    20 |     approx pre := sum(x * 0.25)\n       |                   ^^^\nlanelang: 1 determinism lane violation\n"
        },
        "lower": {
          "exitCode": 1,
          "output": "kernel n3 sum fold_free\nkernel n6 sum fold_replay\n"
        },
        "dot": {
          "exitCode": 1,
          "output": "digraph lanelang {\n  rankdir=LR;\n  node [shape=box style=\"rounded,filled\" fontname=\"Helvetica\" fontsize=10];\n  edge [fontname=\"Helvetica\" fontsize=9];\n  n0 [label=\"indices\\nindices\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n1 [label=\"const\\nconst\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n2 [label=\"*\\nelementwise\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n3 [label=\"sum\\nfold\\nfold/free\\n= approx\" fillcolor=\"#f6dcdc\" penwidth=3 color=\"#b03030\"];\n  n4 [label=\"pre\\ndemand\\nneutral\\ndemands approx\\n= approx\" fillcolor=\"#f6dcdc\"];\n  n5 [label=\"+\\nelementwise\\nneutral\\n= approx\" fillcolor=\"#f6dcdc\" penwidth=3 color=\"#b03030\"];\n  n6 [label=\"sum\\nfold\\nfold/fixed-tree\\n= approx\" fillcolor=\"#f6dcdc\" penwidth=3 color=\"#b03030\"];\n  n7 [label=\"demanded\\ndemand\\nneutral\\ndemands replay\\n= approx\" fillcolor=\"#f6dcdc\" peripheries=2];\n  n0 -> n2;\n  n1 -> n2;\n  n2 -> n3;\n  n3 -> n4;\n  n0 -> n5;\n  n4 -> n5;\n  n5 -> n6 [penwidth=3 color=\"#b03030\"];\n  n6 -> n7;\n}\n"
        }
      }
    },
    {
      "id": "accept_reannotate",
      "path": "src/tests/lanelang/accept_reannotate.lane",
      "sha256": "585114fe4e0a86cc6a79a2a966bec61d8c54c6aa2bf1a76dec3b49b551501f37",
      "source": "// Copyright 2026 PolitePixels Limited\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage app\n\n// EXPECT: accept\nfunc main() Float {\n    x := indices(count: 1000.0)\n    replay s := sum(x)\n    replay r := sum(x * s)\n    return r + s\n}\n",
      "runs": {
        "check": {
          "exitCode": 0,
          "output": "accepted: 2 declarations checked, 0 producers healed, result lane replay\n"
        },
        "lower": {
          "exitCode": 0,
          "output": "kernel n1 sum fold_replay\nkernel n4 sum fold_replay\n"
        },
        "dot": {
          "exitCode": 0,
          "output": "digraph lanelang {\n  rankdir=LR;\n  node [shape=box style=\"rounded,filled\" fontname=\"Helvetica\" fontsize=10];\n  edge [fontname=\"Helvetica\" fontsize=9];\n  n0 [label=\"indices\\nindices\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n1 [label=\"sum\\nfold\\nfold/fixed-tree\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n2 [label=\"s\\ndemand\\nneutral\\ndemands replay\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n3 [label=\"*\\nelementwise\\nneutral\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n4 [label=\"sum\\nfold\\nfold/fixed-tree\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n5 [label=\"r\\ndemand\\nneutral\\ndemands replay\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n6 [label=\"+\\nelementwise\\nneutral\\n= replay\" fillcolor=\"#dbe4f0\" peripheries=2];\n  n0 -> n1;\n  n1 -> n2;\n  n0 -> n3;\n  n2 -> n3;\n  n3 -> n4;\n  n4 -> n5;\n  n5 -> n6;\n  n2 -> n6;\n}\n"
        }
      }
    },
    {
      "id": "accept_healed",
      "path": "src/tests/lanelang/accept_healed.lane",
      "sha256": "26c8ccddf6fd88696b8b7e10419575c00436c00a2b1c0da2384b61d787570cf2",
      "source": "// Copyright 2026 PolitePixels Limited\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage app\n\n// EXPECT: accept\n// EXPECT-NO-KERNEL: fold_free\nfunc main() Float {\n    x := indices(count: 1000.0)\n    s := sum(x)\n    replay energy := sum(x * s)\n    return energy\n}\n",
      "runs": {
        "check": {
          "exitCode": 0,
          "output": "accepted: 1 declaration checked, 1 producer healed, result lane replay\n"
        },
        "lower": {
          "exitCode": 0,
          "output": "kernel n1 s fold_replay\nkernel n3 sum fold_replay\n"
        },
        "dot": {
          "exitCode": 0,
          "output": "digraph lanelang {\n  rankdir=LR;\n  node [shape=box style=\"rounded,filled\" fontname=\"Helvetica\" fontsize=10];\n  edge [fontname=\"Helvetica\" fontsize=9];\n  n0 [label=\"indices\\nindices\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n1 [label=\"s\\nfold\\nfold/fixed-tree\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n2 [label=\"*\\nelementwise\\nneutral\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n3 [label=\"sum\\nfold\\nfold/fixed-tree\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n4 [label=\"energy\\ndemand\\nneutral\\ndemands replay\\n= replay\" fillcolor=\"#dbe4f0\" peripheries=2];\n  n0 -> n1;\n  n0 -> n2;\n  n1 -> n2;\n  n2 -> n3;\n  n3 -> n4;\n}\n"
        }
      }
    },
    {
      "id": "reject_escape_through_binding",
      "path": "src/tests/lanelang/reject_escape_through_binding.lane",
      "sha256": "abaedc85e92d1bd6f255f6e1d339cf6f13c1bec7f61be41ff178fe23cf4d3b01",
      "source": "// Copyright 2026 PolitePixels Limited\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage app\n\n// EXPECT: reject computed=approx demanded=replay primary=22:5 secondary=20:16 hops=3\nfunc main() Float {\n    x := indices(count: 100000.0)\n    partial := sum(x * 0.5)\n    y := partial + 1.0\n    replay demanded := sum(x * y)\n    return demanded + y * 0.0\n}\n",
      "runs": {
        "check": {
          "exitCode": 1,
          "output": "src/tests/lanelang/reject_escape_through_binding.lane:22:5: error: determinism lane violation: this value computes approx where replay is demanded. An unpinned schedule cannot be recovered downstream: the rounding already happened. Pin the producer by naming it with a replay or exact qualifier, or weaken the demand\n    22 |     replay demanded := sum(x * y)\n       |     ^^^^^^ the demand is stated here\n  ... the guarantee was lost 3 steps upstream:\n    20 |     partial := sum(x * 0.5)\n       |                ~~~ introduced here\nsrc/tests/lanelang/reject_escape_through_binding.lane:20:16: note: 'partial' is a fold/free, so it contributes approx to the join\n    20 |     partial := sum(x * 0.5)\n       |                ^^^\nlanelang: 1 determinism lane violation\n"
        },
        "lower": {
          "exitCode": 1,
          "output": "kernel n3 partial fold_free\nkernel n7 sum fold_replay\n"
        },
        "dot": {
          "exitCode": 1,
          "output": "digraph lanelang {\n  rankdir=LR;\n  node [shape=box style=\"rounded,filled\" fontname=\"Helvetica\" fontsize=10];\n  edge [fontname=\"Helvetica\" fontsize=9];\n  n0 [label=\"indices\\nindices\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n1 [label=\"const\\nconst\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n2 [label=\"*\\nelementwise\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n3 [label=\"partial\\nfold\\nfold/free\\n= approx\" fillcolor=\"#f6dcdc\" penwidth=3 color=\"#b03030\"];\n  n4 [label=\"const\\nconst\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n5 [label=\"y\\nelementwise\\nneutral\\n= approx\" fillcolor=\"#f6dcdc\" penwidth=3 color=\"#b03030\"];\n  n6 [label=\"*\\nelementwise\\nneutral\\n= approx\" fillcolor=\"#f6dcdc\" penwidth=3 color=\"#b03030\"];\n  n7 [label=\"sum\\nfold\\nfold/fixed-tree\\n= approx\" fillcolor=\"#f6dcdc\" penwidth=3 color=\"#b03030\"];\n  n8 [label=\"demanded\\ndemand\\nneutral\\ndemands replay\\n= approx\" fillcolor=\"#f6dcdc\"];\n  n9 [label=\"const\\nconst\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n10 [label=\"*\\nelementwise\\nneutral\\n= approx\" fillcolor=\"#f6dcdc\"];\n  n11 [label=\"+\\nelementwise\\nneutral\\n= approx\" fillcolor=\"#f6dcdc\" peripheries=2];\n  n0 -> n2;\n  n1 -> n2;\n  n2 -> n3;\n  n3 -> n5 [penwidth=3 color=\"#b03030\"];\n  n4 -> n5;\n  n0 -> n6;\n  n5 -> n6 [penwidth=3 color=\"#b03030\"];\n  n6 -> n7 [penwidth=3 color=\"#b03030\"];\n  n7 -> n8;\n  n5 -> n10;\n  n9 -> n10;\n  n8 -> n11;\n  n10 -> n11;\n}\n"
        }
      }
    },
    {
      "id": "accept_cse_distinct",
      "path": "src/tests/lanelang/accept_cse_distinct.lane",
      "sha256": "119d5671f7b2fa9c97d55d7b2da37f770f94f40556411d56ec2614728710fd0b",
      "source": "// Copyright 2026 PolitePixels Limited\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage app\n\n// EXPECT: accept\n// EXPECT-KERNEL: fold_free\n// EXPECT-KERNEL: fold_replay\nfunc main() Float {\n    x := indices(count: 100000.0)\n    a := sum(x)\n    replay b := sum(x)\n    return a - b\n}\n",
      "runs": {
        "check": {
          "exitCode": 0,
          "output": "accepted: 1 declaration checked, 0 producers healed, result lane approx\n  note: the strongest demand written is replay, but the result is approx. A demand covers the\n        value it is written on and everything feeding it, so a producer no demand\n        reaches keeps its own lane. Qualify the binding that names the whole\n        expression, or name the producers still outside every cone.\n"
        },
        "lower": {
          "exitCode": 0,
          "output": "kernel n1 a fold_free\nkernel n2 sum fold_replay\n"
        },
        "dot": {
          "exitCode": 0,
          "output": "digraph lanelang {\n  rankdir=LR;\n  node [shape=box style=\"rounded,filled\" fontname=\"Helvetica\" fontsize=10];\n  edge [fontname=\"Helvetica\" fontsize=9];\n  n0 [label=\"indices\\nindices\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n1 [label=\"a\\nfold\\nfold/free\\n= approx\" fillcolor=\"#f6dcdc\"];\n  n2 [label=\"sum\\nfold\\nfold/fixed-tree\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n3 [label=\"b\\ndemand\\nneutral\\ndemands replay\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n4 [label=\"-\\nelementwise\\nneutral\\n= approx\" fillcolor=\"#f6dcdc\" peripheries=2];\n  n0 -> n1;\n  n0 -> n2;\n  n2 -> n3;\n  n1 -> n4;\n  n3 -> n4;\n}\n"
        }
      }
    },
    {
      "id": "reject_ungrounded_replay",
      "path": "src/tests/lanelang/reject_ungrounded_replay.lane",
      "sha256": "ed7d43272ac80fdf46463bd5d25fc8c86dfeb8155da2f16919820c095866d2bf",
      "source": "// Copyright 2026 PolitePixels Limited\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\npackage app\n\n// EXPECT: reject ungrounded-nodes=4\nfunc main() Float {\n    x := source(count: 1000.0)\n    replay energy := sum(x * 2.0)\n    return energy\n}\n",
      "runs": {
        "check": {
          "exitCode": 1,
          "output": "src/tests/lanelang/reject_ungrounded_replay.lane:19:5: error: replay demands a cone the program fixes or a blessing vouches for, and this value is neither. The bits do not move with the schedule here, they move with the world: vouch for it with @bless(...) on the binding that names it, take the value as a parameter, which makes it the caller's obligation, or weaken the demand to approx\n    19 |     replay energy := sum(x * 2.0)\n       |     ^^^^^^\nsrc/tests/lanelang/reject_ungrounded_replay.lane:18:10: note: 'source' is a leaf this program does not fix, so its value is not a function of the program\n    18 |     x := source(count: 1000.0)\n       |          ^^^^^^\nlanelang: 1 ungrounded demand\n"
        },
        "lower": {
          "exitCode": 1,
          "output": "kernel n3 sum fold_replay\n"
        },
        "dot": {
          "exitCode": 1,
          "output": "digraph lanelang {\n  rankdir=LR;\n  node [shape=box style=\"rounded,filled\" fontname=\"Helvetica\" fontsize=10];\n  edge [fontname=\"Helvetica\" fontsize=9];\n  n0 [label=\"source\\nsource\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n1 [label=\"const\\nconst\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n2 [label=\"*\\nelementwise\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n3 [label=\"sum\\nfold\\nfold/fixed-tree\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n4 [label=\"energy\\ndemand\\nneutral\\ndemands replay\\n= replay\" fillcolor=\"#dbe4f0\" peripheries=2];\n  n0 -> n2;\n  n1 -> n2;\n  n2 -> n3;\n  n3 -> n4;\n}\n"
        }
      }
    },
    {
      "id": "accept_bless_checksum",
      "path": "src/tests/lanelang/accept_bless_checksum.lane",
      "sha256": "f9aa2740a4e07ddad8d5232fe05a7aeeced429095cded9d00ae3439cc4acaee6",
      "source": "// Copyright 2026 PolitePixels Limited\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\npackage app\n\n// EXPECT: accept ungrounded-nodes=4\n// EXPECT-KERNEL: fold_replay\nfunc main() Float {\n    @bless(0x1234abcd) x := source(count: 1000.0)\n    replay energy := sum(x * 2.0)\n    return energy\n}\n",
      "runs": {
        "check": {
          "exitCode": 0,
          "output": "accepted: 1 declaration checked, 0 producers healed, result lane replay\n"
        },
        "lower": {
          "exitCode": 0,
          "output": "kernel n3 sum fold_replay\n"
        },
        "dot": {
          "exitCode": 0,
          "output": "digraph lanelang {\n  rankdir=LR;\n  node [shape=box style=\"rounded,filled\" fontname=\"Helvetica\" fontsize=10];\n  edge [fontname=\"Helvetica\" fontsize=9];\n  n0 [label=\"source\\nsource\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n1 [label=\"const\\nconst\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n2 [label=\"*\\nelementwise\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n3 [label=\"sum\\nfold\\nfold/fixed-tree\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n4 [label=\"energy\\ndemand\\nneutral\\ndemands replay\\n= replay\" fillcolor=\"#dbe4f0\" peripheries=2];\n  n0 -> n2;\n  n1 -> n2;\n  n2 -> n3;\n  n3 -> n4;\n}\n"
        }
      }
    },
    {
      "id": "reject_bless_partial_cone",
      "path": "src/tests/lanelang/reject_bless_partial_cone.lane",
      "sha256": "611799f90c3ccc0dc489d959ee987421918fe77d533134cce9b6a065870ff693",
      "source": "// Copyright 2026 PolitePixels Limited\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\npackage app\n\n// EXPECT: reject ungrounded-nodes=6\nfunc main() Float {\n    @bless signed := source(count: 1000.0)\n    unsigned := source(count: 1000.0)\n    replay energy := sum(signed * 2.0 + unsigned)\n    return energy\n}\n",
      "runs": {
        "check": {
          "exitCode": 1,
          "output": "src/tests/lanelang/reject_bless_partial_cone.lane:20:5: error: replay demands a cone the program fixes or a blessing vouches for, and this value is neither. The bits do not move with the schedule here, they move with the world: vouch for it with @bless(...) on the binding that names it, take the value as a parameter, which makes it the caller's obligation, or weaken the demand to approx\n    20 |     replay energy := sum(signed * 2.0 + unsigned)\n       |     ^^^^^^\nsrc/tests/lanelang/reject_bless_partial_cone.lane:19:17: note: 'source' is a leaf this program does not fix, so its value is not a function of the program\n    19 |     unsigned := source(count: 1000.0)\n       |                 ^^^^^^\nlanelang: 1 ungrounded demand\n"
        },
        "lower": {
          "exitCode": 1,
          "output": "kernel n5 sum fold_replay\n"
        },
        "dot": {
          "exitCode": 1,
          "output": "digraph lanelang {\n  rankdir=LR;\n  node [shape=box style=\"rounded,filled\" fontname=\"Helvetica\" fontsize=10];\n  edge [fontname=\"Helvetica\" fontsize=9];\n  n0 [label=\"source\\nsource\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n1 [label=\"source\\nsource\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n2 [label=\"const\\nconst\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n3 [label=\"*\\nelementwise\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n4 [label=\"+\\nelementwise\\nneutral\\n= exact\" fillcolor=\"#d7ecd9\"];\n  n5 [label=\"sum\\nfold\\nfold/fixed-tree\\n= replay\" fillcolor=\"#dbe4f0\"];\n  n6 [label=\"energy\\ndemand\\nneutral\\ndemands replay\\n= replay\" fillcolor=\"#dbe4f0\" peripheries=2];\n  n0 -> n3;\n  n2 -> n3;\n  n3 -> n4;\n  n1 -> n4;\n  n4 -> n5;\n  n5 -> n6;\n}\n"
        }
      }
    }
  ]
}
