[INFO] fetching crate oak-prolog 0.0.11... [INFO] testing oak-prolog-0.0.11 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate oak-prolog 0.0.11 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate oak-prolog 0.0.11 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate oak-prolog 0.0.11 [INFO] tweaked toml for crates.io crate oak-prolog 0.0.11 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oak-prolog 0.0.11 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oak-prolog 0.0.11 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9b1eb0f4f0d8fe549bcd2b136f0afac4fbec624d9f7479ec4a893cf33cf567b3 [INFO] running `Command { std: "docker" "start" "-a" "9b1eb0f4f0d8fe549bcd2b136f0afac4fbec624d9f7479ec4a893cf33cf567b3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9b1eb0f4f0d8fe549bcd2b136f0afac4fbec624d9f7479ec4a893cf33cf567b3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9b1eb0f4f0d8fe549bcd2b136f0afac4fbec624d9f7479ec4a893cf33cf567b3", kill_on_drop: false }` [INFO] [stdout] 9b1eb0f4f0d8fe549bcd2b136f0afac4fbec624d9f7479ec4a893cf33cf567b3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d0239e7cdde3a9fc5b473051f082faa9ddb130bb47536dd5646f293ef496197f [INFO] running `Command { std: "docker" "start" "-a" "d0239e7cdde3a9fc5b473051f082faa9ddb130bb47536dd5646f293ef496197f", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling twox-hash v2.1.2 [INFO] [stderr] Compiling triomphe v0.1.15 [INFO] [stderr] Compiling oak-core v0.0.11 [INFO] [stderr] Compiling oak-prolog v0.0.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `GreenNode` and `OakError` [INFO] [stdout] --> src/parser/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | GreenNode, OakError, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct PrologLexer<'config> { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 14 | config: &'config PrologLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PrologLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: feature `new_range_api` is declared but not used [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(new_range_api)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.54s [INFO] running `Command { std: "docker" "inspect" "d0239e7cdde3a9fc5b473051f082faa9ddb130bb47536dd5646f293ef496197f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d0239e7cdde3a9fc5b473051f082faa9ddb130bb47536dd5646f293ef496197f", kill_on_drop: false }` [INFO] [stdout] d0239e7cdde3a9fc5b473051f082faa9ddb130bb47536dd5646f293ef496197f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b1a488572909a340b022cc602ae0afa495e538f0a69fb399941164533c97e51c [INFO] running `Command { std: "docker" "start" "-a" "b1a488572909a340b022cc602ae0afa495e538f0a69fb399941164533c97e51c", kill_on_drop: false }` [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stdout] warning: unused imports: `GreenNode` and `OakError` [INFO] [stdout] --> src/parser/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | GreenNode, OakError, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct PrologLexer<'config> { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 14 | config: &'config PrologLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PrologLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: feature `new_range_api` is declared but not used [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(new_range_api)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling oak-testing v0.0.11 [INFO] [stderr] Compiling oak-prolog v0.0.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `GreenNode` and `OakError` [INFO] [stdout] --> src/parser/mod.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | GreenNode, OakError, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct PrologLexer<'config> { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 14 | config: &'config PrologLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PrologLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: feature `new_range_api` is declared but not used [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(new_range_api)] [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 3.18s [INFO] running `Command { std: "docker" "inspect" "b1a488572909a340b022cc602ae0afa495e538f0a69fb399941164533c97e51c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b1a488572909a340b022cc602ae0afa495e538f0a69fb399941164533c97e51c", kill_on_drop: false }` [INFO] [stdout] b1a488572909a340b022cc602ae0afa495e538f0a69fb399941164533c97e51c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 372cdfa0c0402c83e44e7867c946dc6a86240d8f1ab25b2fde1ba532167a11e7 [INFO] running `Command { std: "docker" "start" "-a" "372cdfa0c0402c83e44e7867c946dc6a86240d8f1ab25b2fde1ba532167a11e7", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `GreenNode` and `OakError` [INFO] [stderr] --> src/parser/mod.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | GreenNode, OakError, [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: field `config` is never read [INFO] [stderr] --> src/lexer/mod.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 13 | pub struct PrologLexer<'config> { [INFO] [stderr] | ----------- field in this struct [INFO] [stderr] 14 | config: &'config PrologLanguage, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `PrologLexer` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: feature `new_range_api` is declared but not used [INFO] [stderr] --> src/lib.rs:2:12 [INFO] [stderr] | [INFO] [stderr] 2 | #![feature(new_range_api)] [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `oak-prolog` (lib) generated 3 warnings (run `cargo fix --lib -p oak-prolog` to apply 1 suggestion) [INFO] [stderr] warning: `oak-prolog` (lib test) generated 3 warnings (3 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oak_prolog-a2e2cbadf7273ddb) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/main.rs (/opt/rustwide/target/debug/deps/main-6b25533a2c5d0146) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test parser::test_prolog_parser ... FAILED [INFO] [stdout] test ready ... ok [INFO] [stdout] test lexer::test_prolog_lexer ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- parser::test_prolog_parser stdout ---- [INFO] [stdout] Testing file: /opt/rustwide/workdir/tests/parser/basic.pl [INFO] [stdout] Error: CustomError { message: "Read-only file system (os error 30)" } [INFO] [stdout] [INFO] [stdout] ---- lexer::test_prolog_lexer stdout ---- [INFO] [stdout] Testing file: /opt/rustwide/workdir/tests/lexer/basic.pl [INFO] [stderr] error: test failed, to rerun pass `--test main` [INFO] [stdout] Error: TestFailure { path: "/opt/rustwide/workdir/tests/lexer/basic.pl", expected: "LexerTestExpected {\n success: true,\n count: 100,\n tokens: [\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 157,\n end: 159,\n },\n TokenData {\n kind: \"Atom\",\n text: \"module\",\n start: 160,\n end: 166,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 166,\n end: 167,\n },\n TokenData {\n kind: \"Atom\",\n text: \"comprehensive_test\",\n start: 167,\n end: 185,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 185,\n end: 186,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 187,\n end: 188,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 194,\n end: 200,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 200,\n end: 201,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 201,\n end: 202,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 202,\n end: 203,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 209,\n end: 215,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 215,\n end: 216,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 216,\n end: 217,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 217,\n end: 218,\n },\n TokenData {\n kind: \"Atom\",\n text: \"ancestor\",\n start: 224,\n end: 232,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 232,\n end: 233,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 233,\n end: 234,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 234,\n end: 235,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factorial\",\n start: 241,\n end: 250,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 250,\n end: 251,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 251,\n end: 252,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 252,\n end: 253,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 259,\n end: 268,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 268,\n end: 269,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 269,\n end: 270,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 270,\n end: 271,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 277,\n end: 288,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 288,\n end: 289,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 289,\n end: 290,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 290,\n end: 291,\n },\n TokenData {\n kind: \"Atom\",\n text: \"reverse_list\",\n start: 297,\n end: 309,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 309,\n end: 310,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 310,\n end: 311,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 311,\n end: 312,\n },\n TokenData {\n kind: \"Atom\",\n text: \"member_check\",\n start: 318,\n end: 330,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 330,\n end: 331,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 331,\n end: 332,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 332,\n end: 333,\n },\n TokenData {\n kind: \"Atom\",\n text: \"length_list\",\n start: 339,\n end: 350,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 350,\n end: 351,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 351,\n end: 352,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 352,\n end: 353,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sum_list\",\n start: 359,\n end: 367,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 367,\n end: 368,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 368,\n end: 369,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 369,\n end: 370,\n },\n TokenData {\n kind: \"Atom\",\n text: \"max_list\",\n start: 376,\n end: 384,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 384,\n end: 385,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 385,\n end: 386,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 386,\n end: 387,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sort_list\",\n start: 393,\n end: 402,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 402,\n end: 403,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 403,\n end: 404,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 404,\n end: 405,\n },\n TokenData {\n kind: \"Atom\",\n text: \"quicksort\",\n start: 411,\n end: 420,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 420,\n end: 421,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 421,\n end: 422,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 422,\n end: 423,\n },\n TokenData {\n kind: \"Atom\",\n text: \"binary_tree\",\n start: 429,\n end: 440,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 440,\n end: 441,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 441,\n end: 442,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 442,\n end: 443,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_member\",\n start: 449,\n end: 460,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 460,\n end: 461,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 461,\n end: 462,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 462,\n end: 463,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_insert\",\n start: 469,\n end: 480,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 480,\n end: 481,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 481,\n end: 482,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 482,\n end: 483,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 489,\n end: 499,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 499,\n end: 500,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 500,\n end: 501,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 501,\n end: 502,\n },\n TokenData {\n kind: \"Atom\",\n text: \"path\",\n start: 508,\n end: 512,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 512,\n end: 513,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 513,\n end: 514,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 514,\n end: 515,\n },\n TokenData {\n kind: \"Atom\",\n text: \"connected\",\n start: 521,\n end: 530,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 530,\n end: 531,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 531,\n end: 532,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 532,\n end: 533,\n },\n TokenData {\n kind: \"Atom\",\n text: \"solve_puzzle\",\n start: 539,\n end: 551,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 551,\n end: 552,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 552,\n end: 553,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 555,\n end: 556,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 556,\n end: 557,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 557,\n end: 558,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 588,\n end: 590,\n },\n TokenData {\n kind: \"Atom\",\n text: \"use_module\",\n start: 591,\n end: 601,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 601,\n end: 602,\n },\n TokenData {\n kind: \"Atom\",\n text: \"library\",\n start: 602,\n end: 609,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 609,\n end: 610,\n },\n TokenData {\n kind: \"Atom\",\n text: \"lists\",\n start: 610,\n end: 615,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 615,\n end: 616,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 616,\n end: 617,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 617,\n end: 618,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 620,\n end: 622,\n },\n TokenData {\n kind: \"Atom\",\n text: \"use_module\",\n start: 623,\n end: 633,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 633,\n end: 634,\n },\n ],\n errors: [],\n}", actual: "LexerTestExpected {\n success: true,\n count: 6028,\n tokens: [\n TokenData {\n kind: \"Comment\",\n text: \"% Prolog Test File - Comprehensive Syntax Coverage\",\n start: 0,\n end: 50,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 50,\n end: 52,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% This file tests various Prolog syntax elements for lexer testing\",\n start: 52,\n end: 118,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 118,\n end: 120,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 120,\n end: 122,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Module declaration (SWI-Prolog)\",\n start: 122,\n end: 155,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 155,\n end: 157,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 157,\n end: 159,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 159,\n end: 160,\n },\n TokenData {\n kind: \"Atom\",\n text: \"module\",\n start: 160,\n end: 166,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 166,\n end: 167,\n },\n TokenData {\n kind: \"Atom\",\n text: \"comprehensive_test\",\n start: 167,\n end: 185,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 185,\n end: 186,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 186,\n end: 187,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 187,\n end: 188,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 188,\n end: 190,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 190,\n end: 194,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 194,\n end: 200,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 200,\n end: 201,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 201,\n end: 202,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 202,\n end: 203,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 203,\n end: 205,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 205,\n end: 209,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 209,\n end: 215,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 215,\n end: 216,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 216,\n end: 217,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 217,\n end: 218,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 218,\n end: 220,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 220,\n end: 224,\n },\n TokenData {\n kind: \"Atom\",\n text: \"ancestor\",\n start: 224,\n end: 232,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 232,\n end: 233,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 233,\n end: 234,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 234,\n end: 235,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 235,\n end: 237,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 237,\n end: 241,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factorial\",\n start: 241,\n end: 250,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 250,\n end: 251,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 251,\n end: 252,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 252,\n end: 253,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 253,\n end: 255,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 255,\n end: 259,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 259,\n end: 268,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 268,\n end: 269,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 269,\n end: 270,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 270,\n end: 271,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 271,\n end: 273,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 273,\n end: 277,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 277,\n end: 288,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 288,\n end: 289,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 289,\n end: 290,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 290,\n end: 291,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 291,\n end: 293,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 293,\n end: 297,\n },\n TokenData {\n kind: \"Atom\",\n text: \"reverse_list\",\n start: 297,\n end: 309,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 309,\n end: 310,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 310,\n end: 311,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 311,\n end: 312,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 312,\n end: 314,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 314,\n end: 318,\n },\n TokenData {\n kind: \"Atom\",\n text: \"member_check\",\n start: 318,\n end: 330,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 330,\n end: 331,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 331,\n end: 332,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 332,\n end: 333,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 333,\n end: 335,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 335,\n end: 339,\n },\n TokenData {\n kind: \"Atom\",\n text: \"length_list\",\n start: 339,\n end: 350,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 350,\n end: 351,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 351,\n end: 352,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 352,\n end: 353,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 353,\n end: 355,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 355,\n end: 359,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sum_list\",\n start: 359,\n end: 367,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 367,\n end: 368,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 368,\n end: 369,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 369,\n end: 370,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 370,\n end: 372,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 372,\n end: 376,\n },\n TokenData {\n kind: \"Atom\",\n text: \"max_list\",\n start: 376,\n end: 384,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 384,\n end: 385,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 385,\n end: 386,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 386,\n end: 387,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 387,\n end: 389,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 389,\n end: 393,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sort_list\",\n start: 393,\n end: 402,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 402,\n end: 403,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 403,\n end: 404,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 404,\n end: 405,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 405,\n end: 407,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 407,\n end: 411,\n },\n TokenData {\n kind: \"Atom\",\n text: \"quicksort\",\n start: 411,\n end: 420,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 420,\n end: 421,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 421,\n end: 422,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 422,\n end: 423,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 423,\n end: 425,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 425,\n end: 429,\n },\n TokenData {\n kind: \"Atom\",\n text: \"binary_tree\",\n start: 429,\n end: 440,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 440,\n end: 441,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 441,\n end: 442,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 442,\n end: 443,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 443,\n end: 445,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 445,\n end: 449,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_member\",\n start: 449,\n end: 460,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 460,\n end: 461,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 461,\n end: 462,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 462,\n end: 463,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 463,\n end: 465,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 465,\n end: 469,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_insert\",\n start: 469,\n end: 480,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 480,\n end: 481,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 481,\n end: 482,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 482,\n end: 483,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 483,\n end: 485,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 485,\n end: 489,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 489,\n end: 499,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 499,\n end: 500,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 500,\n end: 501,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 501,\n end: 502,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 502,\n end: 504,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 504,\n end: 508,\n },\n TokenData {\n kind: \"Atom\",\n text: \"path\",\n start: 508,\n end: 512,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 512,\n end: 513,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 513,\n end: 514,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 514,\n end: 515,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 515,\n end: 517,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 517,\n end: 521,\n },\n TokenData {\n kind: \"Atom\",\n text: \"connected\",\n start: 521,\n end: 530,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 530,\n end: 531,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 531,\n end: 532,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 532,\n end: 533,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 533,\n end: 535,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 535,\n end: 539,\n },\n TokenData {\n kind: \"Atom\",\n text: \"solve_puzzle\",\n start: 539,\n end: 551,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 551,\n end: 552,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 552,\n end: 553,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 553,\n end: 555,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 555,\n end: 556,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 556,\n end: 557,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 557,\n end: 558,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 558,\n end: 560,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 560,\n end: 562,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Directives and pragmas\",\n start: 562,\n end: 586,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 586,\n end: 588,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 588,\n end: 590,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 590,\n end: 591,\n },\n TokenData {\n kind: \"Atom\",\n text: \"use_module\",\n start: 591,\n end: 601,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 601,\n end: 602,\n },\n TokenData {\n kind: \"Atom\",\n text: \"library\",\n start: 602,\n end: 609,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 609,\n end: 610,\n },\n TokenData {\n kind: \"Atom\",\n text: \"lists\",\n start: 610,\n end: 615,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 615,\n end: 616,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 616,\n end: 617,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 617,\n end: 618,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 618,\n end: 620,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 620,\n end: 622,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 622,\n end: 623,\n },\n TokenData {\n kind: \"Atom\",\n text: \"use_module\",\n start: 623,\n end: 633,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 633,\n end: 634,\n },\n TokenData {\n kind: \"Atom\",\n text: \"library\",\n start: 634,\n end: 641,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 641,\n end: 642,\n },\n TokenData {\n kind: \"Atom\",\n text: \"clpfd\",\n start: 642,\n end: 647,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 647,\n end: 648,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 648,\n end: 649,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 649,\n end: 650,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 650,\n end: 652,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 652,\n end: 654,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 654,\n end: 655,\n },\n TokenData {\n kind: \"Atom\",\n text: \"use_module\",\n start: 655,\n end: 665,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 665,\n end: 666,\n },\n TokenData {\n kind: \"Atom\",\n text: \"library\",\n start: 666,\n end: 673,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 673,\n end: 674,\n },\n TokenData {\n kind: \"Atom\",\n text: \"dcg\",\n start: 674,\n end: 677,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 677,\n end: 678,\n },\n TokenData {\n kind: \"Atom\",\n text: \"basics\",\n start: 678,\n end: 684,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 684,\n end: 685,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 685,\n end: 686,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 686,\n end: 687,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 687,\n end: 689,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 689,\n end: 691,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 691,\n end: 692,\n },\n TokenData {\n kind: \"Atom\",\n text: \"use_module\",\n start: 692,\n end: 702,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 702,\n end: 703,\n },\n TokenData {\n kind: \"Atom\",\n text: \"library\",\n start: 703,\n end: 710,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 710,\n end: 711,\n },\n TokenData {\n kind: \"Atom\",\n text: \"apply\",\n start: 711,\n end: 716,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 716,\n end: 717,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 717,\n end: 718,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 718,\n end: 719,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 719,\n end: 721,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 721,\n end: 723,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 723,\n end: 724,\n },\n TokenData {\n kind: \"Atom\",\n text: \"use_module\",\n start: 724,\n end: 734,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 734,\n end: 735,\n },\n TokenData {\n kind: \"Atom\",\n text: \"library\",\n start: 735,\n end: 742,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 742,\n end: 743,\n },\n TokenData {\n kind: \"Atom\",\n text: \"aggregate\",\n start: 743,\n end: 752,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 752,\n end: 753,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 753,\n end: 754,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 754,\n end: 755,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 755,\n end: 757,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 757,\n end: 759,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 759,\n end: 761,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 761,\n end: 762,\n },\n TokenData {\n kind: \"Atom\",\n text: \"dynamic\",\n start: 762,\n end: 769,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 769,\n end: 770,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fact\",\n start: 770,\n end: 774,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 774,\n end: 775,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 775,\n end: 776,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 776,\n end: 777,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 777,\n end: 778,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 778,\n end: 780,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 780,\n end: 782,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 782,\n end: 783,\n },\n TokenData {\n kind: \"Atom\",\n text: \"multifile\",\n start: 783,\n end: 792,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 792,\n end: 793,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 793,\n end: 799,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 799,\n end: 800,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 800,\n end: 801,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 801,\n end: 802,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 802,\n end: 803,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 803,\n end: 805,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 805,\n end: 807,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 807,\n end: 808,\n },\n TokenData {\n kind: \"Atom\",\n text: \"discontiguous\",\n start: 808,\n end: 821,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 821,\n end: 822,\n },\n TokenData {\n kind: \"Atom\",\n text: \"test_case\",\n start: 822,\n end: 831,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 831,\n end: 832,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 832,\n end: 833,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 833,\n end: 834,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 834,\n end: 835,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 835,\n end: 837,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 837,\n end: 839,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Operators\",\n start: 839,\n end: 850,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 850,\n end: 852,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 852,\n end: 854,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 854,\n end: 855,\n },\n TokenData {\n kind: \"Atom\",\n text: \"op\",\n start: 855,\n end: 857,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 857,\n end: 858,\n },\n TokenData {\n kind: \"Integer\",\n text: \"500\",\n start: 858,\n end: 861,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 861,\n end: 862,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 862,\n end: 863,\n },\n TokenData {\n kind: \"Atom\",\n text: \"yfx\",\n start: 863,\n end: 866,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 866,\n end: 867,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 867,\n end: 868,\n },\n TokenData {\n kind: \"Atom\",\n text: \"likes\",\n start: 868,\n end: 873,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 873,\n end: 874,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 874,\n end: 875,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 875,\n end: 877,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 877,\n end: 879,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 879,\n end: 880,\n },\n TokenData {\n kind: \"Atom\",\n text: \"op\",\n start: 880,\n end: 882,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 882,\n end: 883,\n },\n TokenData {\n kind: \"Integer\",\n text: \"600\",\n start: 883,\n end: 886,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 886,\n end: 887,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 887,\n end: 888,\n },\n TokenData {\n kind: \"Atom\",\n text: \"xfx\",\n start: 888,\n end: 891,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 891,\n end: 892,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 892,\n end: 893,\n },\n TokenData {\n kind: \"Atom\",\n text: \"loves\",\n start: 893,\n end: 898,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 898,\n end: 899,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 899,\n end: 900,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 900,\n end: 902,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 902,\n end: 904,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 904,\n end: 905,\n },\n TokenData {\n kind: \"Atom\",\n text: \"op\",\n start: 905,\n end: 907,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 907,\n end: 908,\n },\n TokenData {\n kind: \"Integer\",\n text: \"700\",\n start: 908,\n end: 911,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 911,\n end: 912,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 912,\n end: 913,\n },\n TokenData {\n kind: \"Atom\",\n text: \"xfx\",\n start: 913,\n end: 916,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 916,\n end: 917,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 917,\n end: 918,\n },\n TokenData {\n kind: \"Atom\",\n text: \"married_to\",\n start: 918,\n end: 928,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 928,\n end: 929,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 929,\n end: 930,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 930,\n end: 932,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 932,\n end: 934,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Facts - Basic database\",\n start: 934,\n end: 958,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 958,\n end: 960,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 960,\n end: 966,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 966,\n end: 967,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 967,\n end: 971,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 971,\n end: 972,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 972,\n end: 973,\n },\n TokenData {\n kind: \"Atom\",\n text: \"doe\",\n start: 973,\n end: 976,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 976,\n end: 977,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 977,\n end: 978,\n },\n TokenData {\n kind: \"Integer\",\n text: \"30\",\n start: 978,\n end: 980,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 980,\n end: 981,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 981,\n end: 982,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 982,\n end: 984,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 984,\n end: 990,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 990,\n end: 991,\n },\n TokenData {\n kind: \"Atom\",\n text: \"jane\",\n start: 991,\n end: 995,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 995,\n end: 996,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 996,\n end: 997,\n },\n TokenData {\n kind: \"Atom\",\n text: \"smith\",\n start: 997,\n end: 1002,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1002,\n end: 1003,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1003,\n end: 1004,\n },\n TokenData {\n kind: \"Integer\",\n text: \"25\",\n start: 1004,\n end: 1006,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1006,\n end: 1007,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1007,\n end: 1008,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1008,\n end: 1010,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 1010,\n end: 1016,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1016,\n end: 1017,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bob\",\n start: 1017,\n end: 1020,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1020,\n end: 1021,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1021,\n end: 1022,\n },\n TokenData {\n kind: \"Atom\",\n text: \"johnson\",\n start: 1022,\n end: 1029,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1029,\n end: 1030,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1030,\n end: 1031,\n },\n TokenData {\n kind: \"Integer\",\n text: \"35\",\n start: 1031,\n end: 1033,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1033,\n end: 1034,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1034,\n end: 1035,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1035,\n end: 1037,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 1037,\n end: 1043,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1043,\n end: 1044,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 1044,\n end: 1049,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1049,\n end: 1050,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1050,\n end: 1051,\n },\n TokenData {\n kind: \"Atom\",\n text: \"brown\",\n start: 1051,\n end: 1056,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1056,\n end: 1057,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1057,\n end: 1058,\n },\n TokenData {\n kind: \"Integer\",\n text: \"28\",\n start: 1058,\n end: 1060,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1060,\n end: 1061,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1061,\n end: 1062,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1062,\n end: 1064,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 1064,\n end: 1070,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1070,\n end: 1071,\n },\n TokenData {\n kind: \"Atom\",\n text: \"charlie\",\n start: 1071,\n end: 1078,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1078,\n end: 1079,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1079,\n end: 1080,\n },\n TokenData {\n kind: \"Atom\",\n text: \"davis\",\n start: 1080,\n end: 1085,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1085,\n end: 1086,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1086,\n end: 1087,\n },\n TokenData {\n kind: \"Integer\",\n text: \"40\",\n start: 1087,\n end: 1089,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1089,\n end: 1090,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1090,\n end: 1091,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1091,\n end: 1093,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 1093,\n end: 1099,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1099,\n end: 1100,\n },\n TokenData {\n kind: \"Atom\",\n text: \"diana\",\n start: 1100,\n end: 1105,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1105,\n end: 1106,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1106,\n end: 1107,\n },\n TokenData {\n kind: \"Atom\",\n text: \"wilson\",\n start: 1107,\n end: 1113,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1113,\n end: 1114,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1114,\n end: 1115,\n },\n TokenData {\n kind: \"Integer\",\n text: \"32\",\n start: 1115,\n end: 1117,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1117,\n end: 1118,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1118,\n end: 1119,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1119,\n end: 1121,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 1121,\n end: 1127,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1127,\n end: 1128,\n },\n TokenData {\n kind: \"Atom\",\n text: \"eve\",\n start: 1128,\n end: 1131,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1131,\n end: 1132,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1132,\n end: 1133,\n },\n TokenData {\n kind: \"Atom\",\n text: \"miller\",\n start: 1133,\n end: 1139,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1139,\n end: 1140,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1140,\n end: 1141,\n },\n TokenData {\n kind: \"Integer\",\n text: \"27\",\n start: 1141,\n end: 1143,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1143,\n end: 1144,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1144,\n end: 1145,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1145,\n end: 1147,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 1147,\n end: 1153,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1153,\n end: 1154,\n },\n TokenData {\n kind: \"Atom\",\n text: \"frank\",\n start: 1154,\n end: 1159,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1159,\n end: 1160,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1160,\n end: 1161,\n },\n TokenData {\n kind: \"Atom\",\n text: \"garcia\",\n start: 1161,\n end: 1167,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1167,\n end: 1168,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1168,\n end: 1169,\n },\n TokenData {\n kind: \"Integer\",\n text: \"45\",\n start: 1169,\n end: 1171,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1171,\n end: 1172,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1172,\n end: 1173,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1173,\n end: 1175,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1175,\n end: 1177,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Facts with different arities\",\n start: 1177,\n end: 1207,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1207,\n end: 1209,\n },\n TokenData {\n kind: \"Atom\",\n text: \"age\",\n start: 1209,\n end: 1212,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1212,\n end: 1213,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 1213,\n end: 1217,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1217,\n end: 1218,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1218,\n end: 1219,\n },\n TokenData {\n kind: \"Integer\",\n text: \"30\",\n start: 1219,\n end: 1221,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1221,\n end: 1222,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1222,\n end: 1223,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1223,\n end: 1225,\n },\n TokenData {\n kind: \"Atom\",\n text: \"age\",\n start: 1225,\n end: 1228,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1228,\n end: 1229,\n },\n TokenData {\n kind: \"Atom\",\n text: \"jane\",\n start: 1229,\n end: 1233,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1233,\n end: 1234,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1234,\n end: 1235,\n },\n TokenData {\n kind: \"Integer\",\n text: \"25\",\n start: 1235,\n end: 1237,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1237,\n end: 1238,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1238,\n end: 1239,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1239,\n end: 1241,\n },\n TokenData {\n kind: \"Atom\",\n text: \"age\",\n start: 1241,\n end: 1244,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1244,\n end: 1245,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bob\",\n start: 1245,\n end: 1248,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1248,\n end: 1249,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1249,\n end: 1250,\n },\n TokenData {\n kind: \"Integer\",\n text: \"35\",\n start: 1250,\n end: 1252,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1252,\n end: 1253,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1253,\n end: 1254,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1254,\n end: 1256,\n },\n TokenData {\n kind: \"Atom\",\n text: \"age\",\n start: 1256,\n end: 1259,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1259,\n end: 1260,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 1260,\n end: 1265,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1265,\n end: 1266,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1266,\n end: 1267,\n },\n TokenData {\n kind: \"Integer\",\n text: \"28\",\n start: 1267,\n end: 1269,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1269,\n end: 1270,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1270,\n end: 1271,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1271,\n end: 1273,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1273,\n end: 1275,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Gender facts\",\n start: 1275,\n end: 1289,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1289,\n end: 1291,\n },\n TokenData {\n kind: \"Atom\",\n text: \"male\",\n start: 1291,\n end: 1295,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1295,\n end: 1296,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 1296,\n end: 1300,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1300,\n end: 1301,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1301,\n end: 1302,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1302,\n end: 1304,\n },\n TokenData {\n kind: \"Atom\",\n text: \"male\",\n start: 1304,\n end: 1308,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1308,\n end: 1309,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bob\",\n start: 1309,\n end: 1312,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1312,\n end: 1313,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1313,\n end: 1314,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1314,\n end: 1316,\n },\n TokenData {\n kind: \"Atom\",\n text: \"male\",\n start: 1316,\n end: 1320,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1320,\n end: 1321,\n },\n TokenData {\n kind: \"Atom\",\n text: \"charlie\",\n start: 1321,\n end: 1328,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1328,\n end: 1329,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1329,\n end: 1330,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1330,\n end: 1332,\n },\n TokenData {\n kind: \"Atom\",\n text: \"male\",\n start: 1332,\n end: 1336,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1336,\n end: 1337,\n },\n TokenData {\n kind: \"Atom\",\n text: \"frank\",\n start: 1337,\n end: 1342,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1342,\n end: 1343,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1343,\n end: 1344,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1344,\n end: 1346,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1346,\n end: 1348,\n },\n TokenData {\n kind: \"Atom\",\n text: \"female\",\n start: 1348,\n end: 1354,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1354,\n end: 1355,\n },\n TokenData {\n kind: \"Atom\",\n text: \"jane\",\n start: 1355,\n end: 1359,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1359,\n end: 1360,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1360,\n end: 1361,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1361,\n end: 1363,\n },\n TokenData {\n kind: \"Atom\",\n text: \"female\",\n start: 1363,\n end: 1369,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1369,\n end: 1370,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 1370,\n end: 1375,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1375,\n end: 1376,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1376,\n end: 1377,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1377,\n end: 1379,\n },\n TokenData {\n kind: \"Atom\",\n text: \"female\",\n start: 1379,\n end: 1385,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1385,\n end: 1386,\n },\n TokenData {\n kind: \"Atom\",\n text: \"diana\",\n start: 1386,\n end: 1391,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1391,\n end: 1392,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1392,\n end: 1393,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1393,\n end: 1395,\n },\n TokenData {\n kind: \"Atom\",\n text: \"female\",\n start: 1395,\n end: 1401,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1401,\n end: 1402,\n },\n TokenData {\n kind: \"Atom\",\n text: \"eve\",\n start: 1402,\n end: 1405,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1405,\n end: 1406,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1406,\n end: 1407,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1407,\n end: 1409,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1409,\n end: 1411,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Family relationships\",\n start: 1411,\n end: 1433,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1433,\n end: 1435,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 1435,\n end: 1441,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1441,\n end: 1442,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 1442,\n end: 1446,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1446,\n end: 1447,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1447,\n end: 1448,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 1448,\n end: 1453,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1453,\n end: 1454,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1454,\n end: 1455,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1455,\n end: 1457,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 1457,\n end: 1463,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1463,\n end: 1464,\n },\n TokenData {\n kind: \"Atom\",\n text: \"jane\",\n start: 1464,\n end: 1468,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1468,\n end: 1469,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1469,\n end: 1470,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 1470,\n end: 1475,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1475,\n end: 1476,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1476,\n end: 1477,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1477,\n end: 1479,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 1479,\n end: 1485,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1485,\n end: 1486,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bob\",\n start: 1486,\n end: 1489,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1489,\n end: 1490,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1490,\n end: 1491,\n },\n TokenData {\n kind: \"Atom\",\n text: \"charlie\",\n start: 1491,\n end: 1498,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1498,\n end: 1499,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1499,\n end: 1500,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1500,\n end: 1502,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 1502,\n end: 1508,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1508,\n end: 1509,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 1509,\n end: 1514,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1514,\n end: 1515,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1515,\n end: 1516,\n },\n TokenData {\n kind: \"Atom\",\n text: \"diana\",\n start: 1516,\n end: 1521,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1521,\n end: 1522,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1522,\n end: 1523,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1523,\n end: 1525,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 1525,\n end: 1531,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1531,\n end: 1532,\n },\n TokenData {\n kind: \"Atom\",\n text: \"charlie\",\n start: 1532,\n end: 1539,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1539,\n end: 1540,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1540,\n end: 1541,\n },\n TokenData {\n kind: \"Atom\",\n text: \"eve\",\n start: 1541,\n end: 1544,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1544,\n end: 1545,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1545,\n end: 1546,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1546,\n end: 1548,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 1548,\n end: 1554,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1554,\n end: 1555,\n },\n TokenData {\n kind: \"Atom\",\n text: \"diana\",\n start: 1555,\n end: 1560,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1560,\n end: 1561,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1561,\n end: 1562,\n },\n TokenData {\n kind: \"Atom\",\n text: \"frank\",\n start: 1562,\n end: 1567,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1567,\n end: 1568,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1568,\n end: 1569,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1569,\n end: 1571,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1571,\n end: 1573,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Marriage relationships\",\n start: 1573,\n end: 1597,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1597,\n end: 1599,\n },\n TokenData {\n kind: \"Atom\",\n text: \"married\",\n start: 1599,\n end: 1606,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1606,\n end: 1607,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 1607,\n end: 1611,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1611,\n end: 1612,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1612,\n end: 1613,\n },\n TokenData {\n kind: \"Atom\",\n text: \"jane\",\n start: 1613,\n end: 1617,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1617,\n end: 1618,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1618,\n end: 1619,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1619,\n end: 1621,\n },\n TokenData {\n kind: \"Atom\",\n text: \"married\",\n start: 1621,\n end: 1628,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1628,\n end: 1629,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bob\",\n start: 1629,\n end: 1632,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1632,\n end: 1633,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1633,\n end: 1634,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 1634,\n end: 1639,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1639,\n end: 1640,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1640,\n end: 1641,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1641,\n end: 1643,\n },\n TokenData {\n kind: \"Atom\",\n text: \"married\",\n start: 1643,\n end: 1650,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1650,\n end: 1651,\n },\n TokenData {\n kind: \"Atom\",\n text: \"charlie\",\n start: 1651,\n end: 1658,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1658,\n end: 1659,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1659,\n end: 1660,\n },\n TokenData {\n kind: \"Atom\",\n text: \"diana\",\n start: 1660,\n end: 1665,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1665,\n end: 1666,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1666,\n end: 1667,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1667,\n end: 1669,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1669,\n end: 1671,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Preferences and relationships\",\n start: 1671,\n end: 1702,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1702,\n end: 1704,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 1704,\n end: 1708,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1708,\n end: 1709,\n },\n TokenData {\n kind: \"Atom\",\n text: \"likes\",\n start: 1709,\n end: 1714,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1714,\n end: 1715,\n },\n TokenData {\n kind: \"Atom\",\n text: \"pizza\",\n start: 1715,\n end: 1720,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1720,\n end: 1721,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1721,\n end: 1723,\n },\n TokenData {\n kind: \"Atom\",\n text: \"jane\",\n start: 1723,\n end: 1727,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1727,\n end: 1728,\n },\n TokenData {\n kind: \"Atom\",\n text: \"likes\",\n start: 1728,\n end: 1733,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1733,\n end: 1734,\n },\n TokenData {\n kind: \"Atom\",\n text: \"pasta\",\n start: 1734,\n end: 1739,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1739,\n end: 1740,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1740,\n end: 1742,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bob\",\n start: 1742,\n end: 1745,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1745,\n end: 1746,\n },\n TokenData {\n kind: \"Atom\",\n text: \"likes\",\n start: 1746,\n end: 1751,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1751,\n end: 1752,\n },\n TokenData {\n kind: \"Atom\",\n text: \"burgers\",\n start: 1752,\n end: 1759,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1759,\n end: 1760,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1760,\n end: 1762,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 1762,\n end: 1767,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1767,\n end: 1768,\n },\n TokenData {\n kind: \"Atom\",\n text: \"likes\",\n start: 1768,\n end: 1773,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1773,\n end: 1774,\n },\n TokenData {\n kind: \"Atom\",\n text: \"salad\",\n start: 1774,\n end: 1779,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1779,\n end: 1780,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1780,\n end: 1782,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1782,\n end: 1784,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 1784,\n end: 1788,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1788,\n end: 1789,\n },\n TokenData {\n kind: \"Atom\",\n text: \"loves\",\n start: 1789,\n end: 1794,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1794,\n end: 1795,\n },\n TokenData {\n kind: \"Atom\",\n text: \"jane\",\n start: 1795,\n end: 1799,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1799,\n end: 1800,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1800,\n end: 1802,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bob\",\n start: 1802,\n end: 1805,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1805,\n end: 1806,\n },\n TokenData {\n kind: \"Atom\",\n text: \"loves\",\n start: 1806,\n end: 1811,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1811,\n end: 1812,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 1812,\n end: 1817,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1817,\n end: 1818,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1818,\n end: 1820,\n },\n TokenData {\n kind: \"Atom\",\n text: \"charlie\",\n start: 1820,\n end: 1827,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1827,\n end: 1828,\n },\n TokenData {\n kind: \"Atom\",\n text: \"loves\",\n start: 1828,\n end: 1833,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1833,\n end: 1834,\n },\n TokenData {\n kind: \"Atom\",\n text: \"diana\",\n start: 1834,\n end: 1839,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1839,\n end: 1840,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1840,\n end: 1842,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1842,\n end: 1844,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 1844,\n end: 1848,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1848,\n end: 1849,\n },\n TokenData {\n kind: \"Atom\",\n text: \"married_to\",\n start: 1849,\n end: 1859,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1859,\n end: 1860,\n },\n TokenData {\n kind: \"Atom\",\n text: \"jane\",\n start: 1860,\n end: 1864,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1864,\n end: 1865,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1865,\n end: 1867,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bob\",\n start: 1867,\n end: 1870,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1870,\n end: 1871,\n },\n TokenData {\n kind: \"Atom\",\n text: \"married_to\",\n start: 1871,\n end: 1881,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1881,\n end: 1882,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 1882,\n end: 1887,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1887,\n end: 1888,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1888,\n end: 1890,\n },\n TokenData {\n kind: \"Atom\",\n text: \"charlie\",\n start: 1890,\n end: 1897,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1897,\n end: 1898,\n },\n TokenData {\n kind: \"Atom\",\n text: \"married_to\",\n start: 1898,\n end: 1908,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1908,\n end: 1909,\n },\n TokenData {\n kind: \"Atom\",\n text: \"diana\",\n start: 1909,\n end: 1914,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1914,\n end: 1915,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1915,\n end: 1917,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1917,\n end: 1919,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Location facts\",\n start: 1919,\n end: 1935,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1935,\n end: 1937,\n },\n TokenData {\n kind: \"Atom\",\n text: \"lives_in\",\n start: 1937,\n end: 1945,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1945,\n end: 1946,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 1946,\n end: 1950,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1950,\n end: 1951,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1951,\n end: 1952,\n },\n TokenData {\n kind: \"Atom\",\n text: \"new_york\",\n start: 1952,\n end: 1960,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1960,\n end: 1961,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1961,\n end: 1962,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1962,\n end: 1964,\n },\n TokenData {\n kind: \"Atom\",\n text: \"lives_in\",\n start: 1964,\n end: 1972,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1972,\n end: 1973,\n },\n TokenData {\n kind: \"Atom\",\n text: \"jane\",\n start: 1973,\n end: 1977,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1977,\n end: 1978,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1978,\n end: 1979,\n },\n TokenData {\n kind: \"Atom\",\n text: \"new_york\",\n start: 1979,\n end: 1987,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1987,\n end: 1988,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 1988,\n end: 1989,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1989,\n end: 1991,\n },\n TokenData {\n kind: \"Atom\",\n text: \"lives_in\",\n start: 1991,\n end: 1999,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1999,\n end: 2000,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bob\",\n start: 2000,\n end: 2003,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2003,\n end: 2004,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2004,\n end: 2005,\n },\n TokenData {\n kind: \"Atom\",\n text: \"london\",\n start: 2005,\n end: 2011,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2011,\n end: 2012,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2012,\n end: 2013,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2013,\n end: 2015,\n },\n TokenData {\n kind: \"Atom\",\n text: \"lives_in\",\n start: 2015,\n end: 2023,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2023,\n end: 2024,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 2024,\n end: 2029,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2029,\n end: 2030,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2030,\n end: 2031,\n },\n TokenData {\n kind: \"Atom\",\n text: \"london\",\n start: 2031,\n end: 2037,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2037,\n end: 2038,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2038,\n end: 2039,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2039,\n end: 2041,\n },\n TokenData {\n kind: \"Atom\",\n text: \"lives_in\",\n start: 2041,\n end: 2049,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2049,\n end: 2050,\n },\n TokenData {\n kind: \"Atom\",\n text: \"charlie\",\n start: 2050,\n end: 2057,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2057,\n end: 2058,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2058,\n end: 2059,\n },\n TokenData {\n kind: \"Atom\",\n text: \"paris\",\n start: 2059,\n end: 2064,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2064,\n end: 2065,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2065,\n end: 2066,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2066,\n end: 2068,\n },\n TokenData {\n kind: \"Atom\",\n text: \"lives_in\",\n start: 2068,\n end: 2076,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2076,\n end: 2077,\n },\n TokenData {\n kind: \"Atom\",\n text: \"diana\",\n start: 2077,\n end: 2082,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2082,\n end: 2083,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2083,\n end: 2084,\n },\n TokenData {\n kind: \"Atom\",\n text: \"paris\",\n start: 2084,\n end: 2089,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2089,\n end: 2090,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2090,\n end: 2091,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2091,\n end: 2093,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2093,\n end: 2095,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Occupation facts\",\n start: 2095,\n end: 2113,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2113,\n end: 2115,\n },\n TokenData {\n kind: \"Atom\",\n text: \"works_as\",\n start: 2115,\n end: 2123,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2123,\n end: 2124,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 2124,\n end: 2128,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2128,\n end: 2129,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2129,\n end: 2130,\n },\n TokenData {\n kind: \"Atom\",\n text: \"engineer\",\n start: 2130,\n end: 2138,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2138,\n end: 2139,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2139,\n end: 2140,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2140,\n end: 2142,\n },\n TokenData {\n kind: \"Atom\",\n text: \"works_as\",\n start: 2142,\n end: 2150,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2150,\n end: 2151,\n },\n TokenData {\n kind: \"Atom\",\n text: \"jane\",\n start: 2151,\n end: 2155,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2155,\n end: 2156,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2156,\n end: 2157,\n },\n TokenData {\n kind: \"Atom\",\n text: \"doctor\",\n start: 2157,\n end: 2163,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2163,\n end: 2164,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2164,\n end: 2165,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2165,\n end: 2167,\n },\n TokenData {\n kind: \"Atom\",\n text: \"works_as\",\n start: 2167,\n end: 2175,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2175,\n end: 2176,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bob\",\n start: 2176,\n end: 2179,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2179,\n end: 2180,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2180,\n end: 2181,\n },\n TokenData {\n kind: \"Atom\",\n text: \"teacher\",\n start: 2181,\n end: 2188,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2188,\n end: 2189,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2189,\n end: 2190,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2190,\n end: 2192,\n },\n TokenData {\n kind: \"Atom\",\n text: \"works_as\",\n start: 2192,\n end: 2200,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2200,\n end: 2201,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 2201,\n end: 2206,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2206,\n end: 2207,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2207,\n end: 2208,\n },\n TokenData {\n kind: \"Atom\",\n text: \"lawyer\",\n start: 2208,\n end: 2214,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2214,\n end: 2215,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2215,\n end: 2216,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2216,\n end: 2218,\n },\n TokenData {\n kind: \"Atom\",\n text: \"works_as\",\n start: 2218,\n end: 2226,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2226,\n end: 2227,\n },\n TokenData {\n kind: \"Atom\",\n text: \"charlie\",\n start: 2227,\n end: 2234,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2234,\n end: 2235,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2235,\n end: 2236,\n },\n TokenData {\n kind: \"Atom\",\n text: \"artist\",\n start: 2236,\n end: 2242,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2242,\n end: 2243,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2243,\n end: 2244,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2244,\n end: 2246,\n },\n TokenData {\n kind: \"Atom\",\n text: \"works_as\",\n start: 2246,\n end: 2254,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2254,\n end: 2255,\n },\n TokenData {\n kind: \"Atom\",\n text: \"diana\",\n start: 2255,\n end: 2260,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2260,\n end: 2261,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2261,\n end: 2262,\n },\n TokenData {\n kind: \"Atom\",\n text: \"scientist\",\n start: 2262,\n end: 2271,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2271,\n end: 2272,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2272,\n end: 2273,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2273,\n end: 2275,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2275,\n end: 2277,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Rules - Basic logical relationships\",\n start: 2277,\n end: 2314,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2314,\n end: 2316,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2316,\n end: 2318,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Grandparent relationship\",\n start: 2318,\n end: 2344,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2344,\n end: 2346,\n },\n TokenData {\n kind: \"Atom\",\n text: \"grandparent\",\n start: 2346,\n end: 2357,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2357,\n end: 2358,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2358,\n end: 2359,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2359,\n end: 2360,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2360,\n end: 2361,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 2361,\n end: 2362,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2362,\n end: 2363,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2363,\n end: 2364,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 2364,\n end: 2366,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2366,\n end: 2368,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2368,\n end: 2372,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 2372,\n end: 2378,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2378,\n end: 2379,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2379,\n end: 2380,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2380,\n end: 2381,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2381,\n end: 2382,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2382,\n end: 2383,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2383,\n end: 2384,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2384,\n end: 2385,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2385,\n end: 2387,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2387,\n end: 2391,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 2391,\n end: 2397,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2397,\n end: 2398,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2398,\n end: 2399,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2399,\n end: 2400,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2400,\n end: 2401,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 2401,\n end: 2402,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2402,\n end: 2403,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2403,\n end: 2404,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2404,\n end: 2406,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2406,\n end: 2408,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Ancestor relationship (recursive)\",\n start: 2408,\n end: 2443,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2443,\n end: 2445,\n },\n TokenData {\n kind: \"Atom\",\n text: \"ancestor\",\n start: 2445,\n end: 2453,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2453,\n end: 2454,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2454,\n end: 2455,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2455,\n end: 2456,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2456,\n end: 2457,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2457,\n end: 2458,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2458,\n end: 2459,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2459,\n end: 2460,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 2460,\n end: 2462,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2462,\n end: 2464,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2464,\n end: 2468,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 2468,\n end: 2474,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2474,\n end: 2475,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2475,\n end: 2476,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2476,\n end: 2477,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2477,\n end: 2478,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2478,\n end: 2479,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2479,\n end: 2480,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2480,\n end: 2481,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2481,\n end: 2483,\n },\n TokenData {\n kind: \"Atom\",\n text: \"ancestor\",\n start: 2483,\n end: 2491,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2491,\n end: 2492,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2492,\n end: 2493,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2493,\n end: 2494,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2494,\n end: 2495,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2495,\n end: 2496,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2496,\n end: 2497,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2497,\n end: 2498,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 2498,\n end: 2500,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2500,\n end: 2502,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2502,\n end: 2506,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 2506,\n end: 2512,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2512,\n end: 2513,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2513,\n end: 2514,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2514,\n end: 2515,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2515,\n end: 2516,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 2516,\n end: 2517,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2517,\n end: 2518,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2518,\n end: 2519,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2519,\n end: 2521,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2521,\n end: 2525,\n },\n TokenData {\n kind: \"Atom\",\n text: \"ancestor\",\n start: 2525,\n end: 2533,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2533,\n end: 2534,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 2534,\n end: 2535,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2535,\n end: 2536,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2536,\n end: 2537,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2537,\n end: 2538,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2538,\n end: 2539,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2539,\n end: 2540,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2540,\n end: 2542,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2542,\n end: 2544,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Sibling relationship\",\n start: 2544,\n end: 2566,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2566,\n end: 2568,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sibling\",\n start: 2568,\n end: 2575,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2575,\n end: 2576,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2576,\n end: 2577,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2577,\n end: 2578,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2578,\n end: 2579,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2579,\n end: 2580,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2580,\n end: 2581,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2581,\n end: 2582,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 2582,\n end: 2584,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2584,\n end: 2586,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2586,\n end: 2590,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 2590,\n end: 2596,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2596,\n end: 2597,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 2597,\n end: 2598,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2598,\n end: 2599,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2599,\n end: 2600,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2600,\n end: 2601,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2601,\n end: 2602,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2602,\n end: 2603,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2603,\n end: 2605,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2605,\n end: 2609,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 2609,\n end: 2615,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2615,\n end: 2616,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 2616,\n end: 2617,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2617,\n end: 2618,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2618,\n end: 2619,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2619,\n end: 2620,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2620,\n end: 2621,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2621,\n end: 2622,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2622,\n end: 2624,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2624,\n end: 2628,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2628,\n end: 2629,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2629,\n end: 2630,\n },\n TokenData {\n kind: \"NotUnify\",\n text: \"\\\\=\",\n start: 2630,\n end: 2632,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2632,\n end: 2633,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2633,\n end: 2634,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2634,\n end: 2635,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2635,\n end: 2637,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2637,\n end: 2639,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Uncle/Aunt relationship\",\n start: 2639,\n end: 2664,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2664,\n end: 2666,\n },\n TokenData {\n kind: \"Atom\",\n text: \"uncle\",\n start: 2666,\n end: 2671,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2671,\n end: 2672,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2672,\n end: 2673,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2673,\n end: 2674,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2674,\n end: 2675,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2675,\n end: 2676,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2676,\n end: 2677,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2677,\n end: 2678,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 2678,\n end: 2680,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2680,\n end: 2682,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2682,\n end: 2686,\n },\n TokenData {\n kind: \"Atom\",\n text: \"male\",\n start: 2686,\n end: 2690,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2690,\n end: 2691,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2691,\n end: 2692,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2692,\n end: 2693,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2693,\n end: 2694,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2694,\n end: 2696,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2696,\n end: 2700,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sibling\",\n start: 2700,\n end: 2707,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2707,\n end: 2708,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2708,\n end: 2709,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2709,\n end: 2710,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2710,\n end: 2711,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 2711,\n end: 2712,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2712,\n end: 2713,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2713,\n end: 2714,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2714,\n end: 2716,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2716,\n end: 2720,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 2720,\n end: 2726,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2726,\n end: 2727,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 2727,\n end: 2728,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2728,\n end: 2729,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2729,\n end: 2730,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2730,\n end: 2731,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2731,\n end: 2732,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2732,\n end: 2733,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2733,\n end: 2735,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2735,\n end: 2737,\n },\n TokenData {\n kind: \"Atom\",\n text: \"aunt\",\n start: 2737,\n end: 2741,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2741,\n end: 2742,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2742,\n end: 2743,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2743,\n end: 2744,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2744,\n end: 2745,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2745,\n end: 2746,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2746,\n end: 2747,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2747,\n end: 2748,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 2748,\n end: 2750,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2750,\n end: 2752,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2752,\n end: 2756,\n },\n TokenData {\n kind: \"Atom\",\n text: \"female\",\n start: 2756,\n end: 2762,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2762,\n end: 2763,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2763,\n end: 2764,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2764,\n end: 2765,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2765,\n end: 2766,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2766,\n end: 2768,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2768,\n end: 2772,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sibling\",\n start: 2772,\n end: 2779,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2779,\n end: 2780,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2780,\n end: 2781,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2781,\n end: 2782,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2782,\n end: 2783,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 2783,\n end: 2784,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2784,\n end: 2785,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2785,\n end: 2786,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2786,\n end: 2788,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2788,\n end: 2792,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 2792,\n end: 2798,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2798,\n end: 2799,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 2799,\n end: 2800,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2800,\n end: 2801,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2801,\n end: 2802,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2802,\n end: 2803,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2803,\n end: 2804,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2804,\n end: 2805,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2805,\n end: 2807,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2807,\n end: 2809,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Cousin relationship\",\n start: 2809,\n end: 2830,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2830,\n end: 2832,\n },\n TokenData {\n kind: \"Atom\",\n text: \"cousin\",\n start: 2832,\n end: 2838,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2838,\n end: 2839,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2839,\n end: 2840,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2840,\n end: 2841,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2841,\n end: 2842,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2842,\n end: 2843,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2843,\n end: 2844,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2844,\n end: 2845,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 2845,\n end: 2847,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2847,\n end: 2849,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2849,\n end: 2853,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 2853,\n end: 2859,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2859,\n end: 2860,\n },\n TokenData {\n kind: \"Variable\",\n text: \"A\",\n start: 2860,\n end: 2861,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2861,\n end: 2862,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2862,\n end: 2863,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2863,\n end: 2864,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2864,\n end: 2865,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2865,\n end: 2866,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2866,\n end: 2868,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2868,\n end: 2872,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 2872,\n end: 2878,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2878,\n end: 2879,\n },\n TokenData {\n kind: \"Variable\",\n text: \"B\",\n start: 2879,\n end: 2880,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2880,\n end: 2881,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2881,\n end: 2882,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2882,\n end: 2883,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2883,\n end: 2884,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2884,\n end: 2885,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2885,\n end: 2887,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2887,\n end: 2891,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sibling\",\n start: 2891,\n end: 2898,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2898,\n end: 2899,\n },\n TokenData {\n kind: \"Variable\",\n text: \"A\",\n start: 2899,\n end: 2900,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2900,\n end: 2901,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2901,\n end: 2902,\n },\n TokenData {\n kind: \"Variable\",\n text: \"B\",\n start: 2902,\n end: 2903,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2903,\n end: 2904,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 2904,\n end: 2905,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2905,\n end: 2907,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2907,\n end: 2909,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Same generation\",\n start: 2909,\n end: 2926,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2926,\n end: 2928,\n },\n TokenData {\n kind: \"Atom\",\n text: \"same_generation\",\n start: 2928,\n end: 2943,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2943,\n end: 2944,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2944,\n end: 2945,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2945,\n end: 2946,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2946,\n end: 2947,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2947,\n end: 2948,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2948,\n end: 2949,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2949,\n end: 2950,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 2950,\n end: 2952,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2952,\n end: 2954,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2954,\n end: 2958,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 2958,\n end: 2964,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2964,\n end: 2965,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 2965,\n end: 2966,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2966,\n end: 2967,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2967,\n end: 2968,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 2968,\n end: 2969,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2969,\n end: 2970,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2970,\n end: 2971,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 2971,\n end: 2972,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2972,\n end: 2973,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2973,\n end: 2974,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2974,\n end: 2976,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2976,\n end: 2980,\n },\n TokenData {\n kind: \"Atom\",\n text: \"person\",\n start: 2980,\n end: 2986,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2986,\n end: 2987,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 2987,\n end: 2988,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2988,\n end: 2989,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2989,\n end: 2990,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 2990,\n end: 2991,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2991,\n end: 2992,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2992,\n end: 2993,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 2993,\n end: 2994,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2994,\n end: 2995,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2995,\n end: 2996,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2996,\n end: 2998,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2998,\n end: 3002,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 3002,\n end: 3003,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3003,\n end: 3004,\n },\n TokenData {\n kind: \"NotUnify\",\n text: \"\\\\=\",\n start: 3004,\n end: 3006,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3006,\n end: 3007,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 3007,\n end: 3008,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3008,\n end: 3009,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3009,\n end: 3011,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3011,\n end: 3015,\n },\n TokenData {\n kind: \"BitwiseNot\",\n text: \"\\\\\",\n start: 3015,\n end: 3016,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 3016,\n end: 3017,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3017,\n end: 3018,\n },\n TokenData {\n kind: \"Atom\",\n text: \"ancestor\",\n start: 3018,\n end: 3026,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3026,\n end: 3027,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 3027,\n end: 3028,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3028,\n end: 3029,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3029,\n end: 3030,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 3030,\n end: 3031,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3031,\n end: 3032,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3032,\n end: 3033,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3033,\n end: 3035,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3035,\n end: 3039,\n },\n TokenData {\n kind: \"BitwiseNot\",\n text: \"\\\\\",\n start: 3039,\n end: 3040,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 3040,\n end: 3041,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3041,\n end: 3042,\n },\n TokenData {\n kind: \"Atom\",\n text: \"ancestor\",\n start: 3042,\n end: 3050,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3050,\n end: 3051,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 3051,\n end: 3052,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3052,\n end: 3053,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3053,\n end: 3054,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 3054,\n end: 3055,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3055,\n end: 3056,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3056,\n end: 3057,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3057,\n end: 3059,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3059,\n end: 3061,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Mathematical predicates\",\n start: 3061,\n end: 3086,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3086,\n end: 3088,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3088,\n end: 3090,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Factorial\",\n start: 3090,\n end: 3101,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3101,\n end: 3103,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factorial\",\n start: 3103,\n end: 3112,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3112,\n end: 3113,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 3113,\n end: 3114,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3114,\n end: 3115,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3115,\n end: 3116,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 3116,\n end: 3117,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3117,\n end: 3118,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3118,\n end: 3119,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3119,\n end: 3121,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3121,\n end: 3122,\n },\n TokenData {\n kind: \"Cut\",\n text: \"!\",\n start: 3122,\n end: 3123,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3123,\n end: 3124,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3124,\n end: 3126,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factorial\",\n start: 3126,\n end: 3135,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3135,\n end: 3136,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3136,\n end: 3137,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3137,\n end: 3138,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3138,\n end: 3139,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3139,\n end: 3140,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3140,\n end: 3141,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3141,\n end: 3142,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3142,\n end: 3144,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3144,\n end: 3146,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3146,\n end: 3150,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3150,\n end: 3151,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3151,\n end: 3152,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 3152,\n end: 3153,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3153,\n end: 3154,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 3154,\n end: 3155,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3155,\n end: 3156,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3156,\n end: 3158,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3158,\n end: 3162,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N1\",\n start: 3162,\n end: 3164,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3164,\n end: 3165,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 3165,\n end: 3167,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3167,\n end: 3168,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3168,\n end: 3169,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3169,\n end: 3170,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 3170,\n end: 3171,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3171,\n end: 3172,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 3172,\n end: 3173,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3173,\n end: 3174,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3174,\n end: 3176,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3176,\n end: 3180,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factorial\",\n start: 3180,\n end: 3189,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3189,\n end: 3190,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N1\",\n start: 3190,\n end: 3192,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3192,\n end: 3193,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3193,\n end: 3194,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F1\",\n start: 3194,\n end: 3196,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3196,\n end: 3197,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3197,\n end: 3198,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3198,\n end: 3200,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3200,\n end: 3204,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3204,\n end: 3205,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3205,\n end: 3206,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 3206,\n end: 3208,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3208,\n end: 3209,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3209,\n end: 3210,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3210,\n end: 3211,\n },\n TokenData {\n kind: \"Multiply\",\n text: \"*\",\n start: 3211,\n end: 3212,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3212,\n end: 3213,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F1\",\n start: 3213,\n end: 3215,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3215,\n end: 3216,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3216,\n end: 3218,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3218,\n end: 3220,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Fibonacci sequence\",\n start: 3220,\n end: 3240,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3240,\n end: 3242,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 3242,\n end: 3251,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3251,\n end: 3252,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 3252,\n end: 3253,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3253,\n end: 3254,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3254,\n end: 3255,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 3255,\n end: 3256,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3256,\n end: 3257,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3257,\n end: 3258,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3258,\n end: 3260,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3260,\n end: 3261,\n },\n TokenData {\n kind: \"Cut\",\n text: \"!\",\n start: 3261,\n end: 3262,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3262,\n end: 3263,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3263,\n end: 3265,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 3265,\n end: 3274,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3274,\n end: 3275,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 3275,\n end: 3276,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3276,\n end: 3277,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3277,\n end: 3278,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 3278,\n end: 3279,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3279,\n end: 3280,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3280,\n end: 3281,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3281,\n end: 3283,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3283,\n end: 3284,\n },\n TokenData {\n kind: \"Cut\",\n text: \"!\",\n start: 3284,\n end: 3285,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3285,\n end: 3286,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3286,\n end: 3288,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 3288,\n end: 3297,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3297,\n end: 3298,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3298,\n end: 3299,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3299,\n end: 3300,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3300,\n end: 3301,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3301,\n end: 3302,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3302,\n end: 3303,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3303,\n end: 3304,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3304,\n end: 3306,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3306,\n end: 3308,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3308,\n end: 3312,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3312,\n end: 3313,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3313,\n end: 3314,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 3314,\n end: 3315,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3315,\n end: 3316,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 3316,\n end: 3317,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3317,\n end: 3318,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3318,\n end: 3320,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3320,\n end: 3324,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N1\",\n start: 3324,\n end: 3326,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3326,\n end: 3327,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 3327,\n end: 3329,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3329,\n end: 3330,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3330,\n end: 3331,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3331,\n end: 3332,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 3332,\n end: 3333,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3333,\n end: 3334,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 3334,\n end: 3335,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3335,\n end: 3336,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3336,\n end: 3338,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3338,\n end: 3342,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N2\",\n start: 3342,\n end: 3344,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3344,\n end: 3345,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 3345,\n end: 3347,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3347,\n end: 3348,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3348,\n end: 3349,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3349,\n end: 3350,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 3350,\n end: 3351,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3351,\n end: 3352,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 3352,\n end: 3353,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3353,\n end: 3354,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3354,\n end: 3356,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3356,\n end: 3360,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 3360,\n end: 3369,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3369,\n end: 3370,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N1\",\n start: 3370,\n end: 3372,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3372,\n end: 3373,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3373,\n end: 3374,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F1\",\n start: 3374,\n end: 3376,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3376,\n end: 3377,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3377,\n end: 3378,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3378,\n end: 3380,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3380,\n end: 3384,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 3384,\n end: 3393,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3393,\n end: 3394,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N2\",\n start: 3394,\n end: 3396,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3396,\n end: 3397,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3397,\n end: 3398,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F2\",\n start: 3398,\n end: 3400,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3400,\n end: 3401,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3401,\n end: 3402,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3402,\n end: 3404,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3404,\n end: 3408,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3408,\n end: 3409,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3409,\n end: 3410,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 3410,\n end: 3412,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3412,\n end: 3413,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F1\",\n start: 3413,\n end: 3415,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3415,\n end: 3416,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 3416,\n end: 3417,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3417,\n end: 3418,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F2\",\n start: 3418,\n end: 3420,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3420,\n end: 3421,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3421,\n end: 3423,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3423,\n end: 3425,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Greatest Common Divisor\",\n start: 3425,\n end: 3450,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3450,\n end: 3452,\n },\n TokenData {\n kind: \"Atom\",\n text: \"gcd\",\n start: 3452,\n end: 3455,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3455,\n end: 3456,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 3456,\n end: 3457,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3457,\n end: 3458,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3458,\n end: 3459,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 3459,\n end: 3460,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3460,\n end: 3461,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3461,\n end: 3462,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 3462,\n end: 3463,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3463,\n end: 3464,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3464,\n end: 3465,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3465,\n end: 3467,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3467,\n end: 3468,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 3468,\n end: 3469,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3469,\n end: 3470,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 3470,\n end: 3471,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3471,\n end: 3472,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 3472,\n end: 3473,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3473,\n end: 3474,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3474,\n end: 3475,\n },\n TokenData {\n kind: \"Cut\",\n text: \"!\",\n start: 3475,\n end: 3476,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3476,\n end: 3477,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3477,\n end: 3479,\n },\n TokenData {\n kind: \"Atom\",\n text: \"gcd\",\n start: 3479,\n end: 3482,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3482,\n end: 3483,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 3483,\n end: 3484,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3484,\n end: 3485,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3485,\n end: 3486,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 3486,\n end: 3487,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3487,\n end: 3488,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3488,\n end: 3489,\n },\n TokenData {\n kind: \"Variable\",\n text: \"G\",\n start: 3489,\n end: 3490,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3490,\n end: 3491,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3491,\n end: 3492,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3492,\n end: 3494,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3494,\n end: 3496,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3496,\n end: 3500,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 3500,\n end: 3501,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3501,\n end: 3502,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 3502,\n end: 3503,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3503,\n end: 3504,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 3504,\n end: 3505,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3505,\n end: 3506,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3506,\n end: 3508,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3508,\n end: 3512,\n },\n TokenData {\n kind: \"Variable\",\n text: \"R\",\n start: 3512,\n end: 3513,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3513,\n end: 3514,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 3514,\n end: 3516,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3516,\n end: 3517,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 3517,\n end: 3518,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3518,\n end: 3519,\n },\n TokenData {\n kind: \"Modulo\",\n text: \"mod\",\n start: 3519,\n end: 3522,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3522,\n end: 3523,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 3523,\n end: 3524,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3524,\n end: 3525,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3525,\n end: 3527,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3527,\n end: 3531,\n },\n TokenData {\n kind: \"Atom\",\n text: \"gcd\",\n start: 3531,\n end: 3534,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3534,\n end: 3535,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 3535,\n end: 3536,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3536,\n end: 3537,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3537,\n end: 3538,\n },\n TokenData {\n kind: \"Variable\",\n text: \"R\",\n start: 3538,\n end: 3539,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3539,\n end: 3540,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3540,\n end: 3541,\n },\n TokenData {\n kind: \"Variable\",\n text: \"G\",\n start: 3541,\n end: 3542,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3542,\n end: 3543,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3543,\n end: 3544,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3544,\n end: 3546,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3546,\n end: 3548,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Prime number check\",\n start: 3548,\n end: 3568,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3568,\n end: 3570,\n },\n TokenData {\n kind: \"Atom\",\n text: \"is_prime\",\n start: 3570,\n end: 3578,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3578,\n end: 3579,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 3579,\n end: 3580,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3580,\n end: 3581,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3581,\n end: 3582,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3582,\n end: 3584,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3584,\n end: 3585,\n },\n TokenData {\n kind: \"Cut\",\n text: \"!\",\n start: 3585,\n end: 3586,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3586,\n end: 3587,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3587,\n end: 3589,\n },\n TokenData {\n kind: \"Atom\",\n text: \"is_prime\",\n start: 3589,\n end: 3597,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3597,\n end: 3598,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3598,\n end: 3599,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3599,\n end: 3600,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3600,\n end: 3601,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3601,\n end: 3603,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3603,\n end: 3605,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3605,\n end: 3609,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3609,\n end: 3610,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3610,\n end: 3611,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 3611,\n end: 3612,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3612,\n end: 3613,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 3613,\n end: 3614,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3614,\n end: 3615,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3615,\n end: 3617,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3617,\n end: 3621,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3621,\n end: 3622,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3622,\n end: 3623,\n },\n TokenData {\n kind: \"Modulo\",\n text: \"mod\",\n start: 3623,\n end: 3626,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3626,\n end: 3627,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 3627,\n end: 3628,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3628,\n end: 3629,\n },\n TokenData {\n kind: \"NotUnify\",\n text: \"=\\\\=\",\n start: 3629,\n end: 3632,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3632,\n end: 3633,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 3633,\n end: 3634,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3634,\n end: 3635,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3635,\n end: 3637,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3637,\n end: 3641,\n },\n TokenData {\n kind: \"BitwiseNot\",\n text: \"\\\\\",\n start: 3641,\n end: 3642,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 3642,\n end: 3643,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3643,\n end: 3644,\n },\n TokenData {\n kind: \"Atom\",\n text: \"has_factor\",\n start: 3644,\n end: 3654,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3654,\n end: 3655,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3655,\n end: 3656,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3656,\n end: 3657,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3657,\n end: 3658,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 3658,\n end: 3659,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3659,\n end: 3660,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3660,\n end: 3661,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3661,\n end: 3663,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3663,\n end: 3665,\n },\n TokenData {\n kind: \"Atom\",\n text: \"has_factor\",\n start: 3665,\n end: 3675,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3675,\n end: 3676,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3676,\n end: 3677,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3677,\n end: 3678,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3678,\n end: 3679,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3679,\n end: 3680,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3680,\n end: 3681,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3681,\n end: 3682,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3682,\n end: 3684,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3684,\n end: 3686,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3686,\n end: 3690,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3690,\n end: 3691,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3691,\n end: 3692,\n },\n TokenData {\n kind: \"Multiply\",\n text: \"*\",\n start: 3692,\n end: 3693,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3693,\n end: 3694,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3694,\n end: 3695,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3695,\n end: 3696,\n },\n TokenData {\n kind: \"ArithNotEqual\",\n text: \"=<\",\n start: 3696,\n end: 3698,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3698,\n end: 3699,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3699,\n end: 3700,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3700,\n end: 3701,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3701,\n end: 3703,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3703,\n end: 3707,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3707,\n end: 3708,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3708,\n end: 3709,\n },\n TokenData {\n kind: \"Modulo\",\n text: \"mod\",\n start: 3709,\n end: 3712,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3712,\n end: 3713,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3713,\n end: 3714,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3714,\n end: 3715,\n },\n TokenData {\n kind: \"ArithEqual\",\n text: \"=:=\",\n start: 3715,\n end: 3718,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3718,\n end: 3719,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0.\",\n start: 3719,\n end: 3721,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3721,\n end: 3723,\n },\n TokenData {\n kind: \"Atom\",\n text: \"has_factor\",\n start: 3723,\n end: 3733,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3733,\n end: 3734,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3734,\n end: 3735,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3735,\n end: 3736,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3736,\n end: 3737,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3737,\n end: 3738,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3738,\n end: 3739,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3739,\n end: 3740,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3740,\n end: 3742,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3742,\n end: 3744,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3744,\n end: 3748,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3748,\n end: 3749,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3749,\n end: 3750,\n },\n TokenData {\n kind: \"Multiply\",\n text: \"*\",\n start: 3750,\n end: 3751,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3751,\n end: 3752,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3752,\n end: 3753,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3753,\n end: 3754,\n },\n TokenData {\n kind: \"Less\",\n text: \"<\",\n start: 3754,\n end: 3755,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3755,\n end: 3756,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3756,\n end: 3757,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3757,\n end: 3758,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3758,\n end: 3760,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3760,\n end: 3764,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F2\",\n start: 3764,\n end: 3766,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3766,\n end: 3767,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 3767,\n end: 3769,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3769,\n end: 3770,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 3770,\n end: 3771,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3771,\n end: 3772,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 3772,\n end: 3773,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3773,\n end: 3774,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 3774,\n end: 3775,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3775,\n end: 3776,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3776,\n end: 3778,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3778,\n end: 3782,\n },\n TokenData {\n kind: \"Atom\",\n text: \"has_factor\",\n start: 3782,\n end: 3792,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3792,\n end: 3793,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 3793,\n end: 3794,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3794,\n end: 3795,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3795,\n end: 3796,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F2\",\n start: 3796,\n end: 3798,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3798,\n end: 3799,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3799,\n end: 3800,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3800,\n end: 3802,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3802,\n end: 3804,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% List operations\",\n start: 3804,\n end: 3821,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3821,\n end: 3823,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3823,\n end: 3825,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Append lists\",\n start: 3825,\n end: 3839,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3839,\n end: 3841,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 3841,\n end: 3852,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3852,\n end: 3853,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3853,\n end: 3854,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3854,\n end: 3855,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3855,\n end: 3856,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3856,\n end: 3857,\n },\n TokenData {\n kind: \"Variable\",\n text: \"L\",\n start: 3857,\n end: 3858,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3858,\n end: 3859,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3859,\n end: 3860,\n },\n TokenData {\n kind: \"Variable\",\n text: \"L\",\n start: 3860,\n end: 3861,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3861,\n end: 3862,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3862,\n end: 3863,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3863,\n end: 3865,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 3865,\n end: 3876,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3876,\n end: 3877,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3877,\n end: 3878,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 3878,\n end: 3879,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3879,\n end: 3880,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 3880,\n end: 3881,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3881,\n end: 3882,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3882,\n end: 3883,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3883,\n end: 3884,\n },\n TokenData {\n kind: \"Variable\",\n text: \"L\",\n start: 3884,\n end: 3885,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3885,\n end: 3886,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3886,\n end: 3887,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3887,\n end: 3888,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 3888,\n end: 3889,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3889,\n end: 3890,\n },\n TokenData {\n kind: \"Variable\",\n text: \"R\",\n start: 3890,\n end: 3891,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3891,\n end: 3892,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3892,\n end: 3893,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3893,\n end: 3894,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3894,\n end: 3896,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3896,\n end: 3898,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3898,\n end: 3902,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 3902,\n end: 3913,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3913,\n end: 3914,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 3914,\n end: 3915,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3915,\n end: 3916,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3916,\n end: 3917,\n },\n TokenData {\n kind: \"Variable\",\n text: \"L\",\n start: 3917,\n end: 3918,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3918,\n end: 3919,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3919,\n end: 3920,\n },\n TokenData {\n kind: \"Variable\",\n text: \"R\",\n start: 3920,\n end: 3921,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3921,\n end: 3922,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 3922,\n end: 3923,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3923,\n end: 3925,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3925,\n end: 3927,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Reverse list\",\n start: 3927,\n end: 3941,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3941,\n end: 3943,\n },\n TokenData {\n kind: \"Atom\",\n text: \"reverse_list\",\n start: 3943,\n end: 3955,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3955,\n end: 3956,\n },\n TokenData {\n kind: \"Variable\",\n text: \"List\",\n start: 3956,\n end: 3960,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3960,\n end: 3961,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3961,\n end: 3962,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Reversed\",\n start: 3962,\n end: 3970,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3970,\n end: 3971,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3971,\n end: 3972,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 3972,\n end: 3974,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3974,\n end: 3976,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3976,\n end: 3980,\n },\n TokenData {\n kind: \"Atom\",\n text: \"reverse_list\",\n start: 3980,\n end: 3992,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3992,\n end: 3993,\n },\n TokenData {\n kind: \"Variable\",\n text: \"List\",\n start: 3993,\n end: 3997,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3997,\n end: 3998,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3998,\n end: 3999,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3999,\n end: 4000,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4000,\n end: 4001,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4001,\n end: 4002,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4002,\n end: 4003,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Reversed\",\n start: 4003,\n end: 4011,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4011,\n end: 4012,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4012,\n end: 4013,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4013,\n end: 4015,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4015,\n end: 4017,\n },\n TokenData {\n kind: \"Atom\",\n text: \"reverse_list\",\n start: 4017,\n end: 4029,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4029,\n end: 4030,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4030,\n end: 4031,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4031,\n end: 4032,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4032,\n end: 4033,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4033,\n end: 4034,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Acc\",\n start: 4034,\n end: 4037,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4037,\n end: 4038,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4038,\n end: 4039,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Acc\",\n start: 4039,\n end: 4042,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4042,\n end: 4043,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4043,\n end: 4044,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4044,\n end: 4046,\n },\n TokenData {\n kind: \"Atom\",\n text: \"reverse_list\",\n start: 4046,\n end: 4058,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4058,\n end: 4059,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4059,\n end: 4060,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4060,\n end: 4061,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4061,\n end: 4062,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4062,\n end: 4063,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4063,\n end: 4064,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4064,\n end: 4065,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4065,\n end: 4066,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Acc\",\n start: 4066,\n end: 4069,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4069,\n end: 4070,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4070,\n end: 4071,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Reversed\",\n start: 4071,\n end: 4079,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4079,\n end: 4080,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4080,\n end: 4081,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 4081,\n end: 4083,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4083,\n end: 4085,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4085,\n end: 4089,\n },\n TokenData {\n kind: \"Atom\",\n text: \"reverse_list\",\n start: 4089,\n end: 4101,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4101,\n end: 4102,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4102,\n end: 4103,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4103,\n end: 4104,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4104,\n end: 4105,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4105,\n end: 4106,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4106,\n end: 4107,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4107,\n end: 4108,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Acc\",\n start: 4108,\n end: 4111,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4111,\n end: 4112,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4112,\n end: 4113,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4113,\n end: 4114,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Reversed\",\n start: 4114,\n end: 4122,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4122,\n end: 4123,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4123,\n end: 4124,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4124,\n end: 4126,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4126,\n end: 4128,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Member check\",\n start: 4128,\n end: 4142,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4142,\n end: 4144,\n },\n TokenData {\n kind: \"Atom\",\n text: \"member_check\",\n start: 4144,\n end: 4156,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4156,\n end: 4157,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4157,\n end: 4158,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4158,\n end: 4159,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4159,\n end: 4160,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4160,\n end: 4161,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4161,\n end: 4162,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4162,\n end: 4163,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 4163,\n end: 4164,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4164,\n end: 4165,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4165,\n end: 4166,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4166,\n end: 4167,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4167,\n end: 4169,\n },\n TokenData {\n kind: \"Atom\",\n text: \"member_check\",\n start: 4169,\n end: 4181,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4181,\n end: 4182,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4182,\n end: 4183,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4183,\n end: 4184,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4184,\n end: 4185,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4185,\n end: 4186,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 4186,\n end: 4187,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4187,\n end: 4188,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4188,\n end: 4189,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4189,\n end: 4190,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4190,\n end: 4191,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4191,\n end: 4192,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 4192,\n end: 4194,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4194,\n end: 4196,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4196,\n end: 4200,\n },\n TokenData {\n kind: \"Atom\",\n text: \"member_check\",\n start: 4200,\n end: 4212,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4212,\n end: 4213,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4213,\n end: 4214,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4214,\n end: 4215,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4215,\n end: 4216,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4216,\n end: 4217,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4217,\n end: 4218,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4218,\n end: 4219,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4219,\n end: 4221,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4221,\n end: 4223,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Length of list\",\n start: 4223,\n end: 4239,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4239,\n end: 4241,\n },\n TokenData {\n kind: \"Atom\",\n text: \"length_list\",\n start: 4241,\n end: 4252,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4252,\n end: 4253,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4253,\n end: 4254,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4254,\n end: 4255,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4255,\n end: 4256,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4256,\n end: 4257,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 4257,\n end: 4258,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4258,\n end: 4259,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4259,\n end: 4260,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4260,\n end: 4262,\n },\n TokenData {\n kind: \"Atom\",\n text: \"length_list\",\n start: 4262,\n end: 4273,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4273,\n end: 4274,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4274,\n end: 4275,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 4275,\n end: 4276,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4276,\n end: 4277,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4277,\n end: 4278,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4278,\n end: 4279,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4279,\n end: 4280,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4280,\n end: 4281,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 4281,\n end: 4282,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4282,\n end: 4283,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4283,\n end: 4284,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 4284,\n end: 4286,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4286,\n end: 4288,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4288,\n end: 4292,\n },\n TokenData {\n kind: \"Atom\",\n text: \"length_list\",\n start: 4292,\n end: 4303,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4303,\n end: 4304,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4304,\n end: 4305,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4305,\n end: 4306,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4306,\n end: 4307,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N1\",\n start: 4307,\n end: 4309,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4309,\n end: 4310,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4310,\n end: 4311,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4311,\n end: 4313,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4313,\n end: 4317,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 4317,\n end: 4318,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4318,\n end: 4319,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 4319,\n end: 4321,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4321,\n end: 4322,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N1\",\n start: 4322,\n end: 4324,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4324,\n end: 4325,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 4325,\n end: 4326,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4326,\n end: 4327,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1.\",\n start: 4327,\n end: 4329,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4329,\n end: 4331,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4331,\n end: 4333,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Sum of list elements\",\n start: 4333,\n end: 4355,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4355,\n end: 4357,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sum_list\",\n start: 4357,\n end: 4365,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4365,\n end: 4366,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4366,\n end: 4367,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4367,\n end: 4368,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4368,\n end: 4369,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4369,\n end: 4370,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 4370,\n end: 4371,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4371,\n end: 4372,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4372,\n end: 4373,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4373,\n end: 4375,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sum_list\",\n start: 4375,\n end: 4383,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4383,\n end: 4384,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4384,\n end: 4385,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4385,\n end: 4386,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4386,\n end: 4387,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4387,\n end: 4388,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4388,\n end: 4389,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4389,\n end: 4390,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4390,\n end: 4391,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Sum\",\n start: 4391,\n end: 4394,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4394,\n end: 4395,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4395,\n end: 4396,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 4396,\n end: 4398,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4398,\n end: 4400,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4400,\n end: 4404,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sum_list\",\n start: 4404,\n end: 4412,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4412,\n end: 4413,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4413,\n end: 4414,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4414,\n end: 4415,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4415,\n end: 4416,\n },\n TokenData {\n kind: \"Variable\",\n text: \"TailSum\",\n start: 4416,\n end: 4423,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4423,\n end: 4424,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4424,\n end: 4425,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4425,\n end: 4427,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4427,\n end: 4431,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Sum\",\n start: 4431,\n end: 4434,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4434,\n end: 4435,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 4435,\n end: 4437,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4437,\n end: 4438,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4438,\n end: 4439,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4439,\n end: 4440,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 4440,\n end: 4441,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4441,\n end: 4442,\n },\n TokenData {\n kind: \"Variable\",\n text: \"TailSum\",\n start: 4442,\n end: 4449,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4449,\n end: 4450,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4450,\n end: 4452,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4452,\n end: 4454,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Maximum element in list\",\n start: 4454,\n end: 4479,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4479,\n end: 4481,\n },\n TokenData {\n kind: \"Atom\",\n text: \"max_list\",\n start: 4481,\n end: 4489,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4489,\n end: 4490,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4490,\n end: 4491,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4491,\n end: 4492,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4492,\n end: 4493,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4493,\n end: 4494,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4494,\n end: 4495,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4495,\n end: 4496,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4496,\n end: 4497,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4497,\n end: 4498,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4498,\n end: 4500,\n },\n TokenData {\n kind: \"Atom\",\n text: \"max_list\",\n start: 4500,\n end: 4508,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4508,\n end: 4509,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4509,\n end: 4510,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4510,\n end: 4511,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4511,\n end: 4512,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4512,\n end: 4513,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4513,\n end: 4514,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4514,\n end: 4515,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4515,\n end: 4516,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Max\",\n start: 4516,\n end: 4519,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4519,\n end: 4520,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4520,\n end: 4521,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 4521,\n end: 4523,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4523,\n end: 4525,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4525,\n end: 4529,\n },\n TokenData {\n kind: \"Atom\",\n text: \"max_list\",\n start: 4529,\n end: 4537,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4537,\n end: 4538,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4538,\n end: 4539,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4539,\n end: 4540,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4540,\n end: 4541,\n },\n TokenData {\n kind: \"Variable\",\n text: \"TailMax\",\n start: 4541,\n end: 4548,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4548,\n end: 4549,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4549,\n end: 4550,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4550,\n end: 4552,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4552,\n end: 4556,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Max\",\n start: 4556,\n end: 4559,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4559,\n end: 4560,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 4560,\n end: 4562,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4562,\n end: 4563,\n },\n TokenData {\n kind: \"Atom\",\n text: \"max\",\n start: 4563,\n end: 4566,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4566,\n end: 4567,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4567,\n end: 4568,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4568,\n end: 4569,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4569,\n end: 4570,\n },\n TokenData {\n kind: \"Variable\",\n text: \"TailMax\",\n start: 4570,\n end: 4577,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4577,\n end: 4578,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4578,\n end: 4579,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4579,\n end: 4581,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4581,\n end: 4583,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Minimum element in list\",\n start: 4583,\n end: 4608,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4608,\n end: 4610,\n },\n TokenData {\n kind: \"Atom\",\n text: \"min_list\",\n start: 4610,\n end: 4618,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4618,\n end: 4619,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4619,\n end: 4620,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4620,\n end: 4621,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4621,\n end: 4622,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4622,\n end: 4623,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4623,\n end: 4624,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4624,\n end: 4625,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4625,\n end: 4626,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4626,\n end: 4627,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4627,\n end: 4629,\n },\n TokenData {\n kind: \"Atom\",\n text: \"min_list\",\n start: 4629,\n end: 4637,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4637,\n end: 4638,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4638,\n end: 4639,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4639,\n end: 4640,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4640,\n end: 4641,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4641,\n end: 4642,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4642,\n end: 4643,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4643,\n end: 4644,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4644,\n end: 4645,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Min\",\n start: 4645,\n end: 4648,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4648,\n end: 4649,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4649,\n end: 4650,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 4650,\n end: 4652,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4652,\n end: 4654,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4654,\n end: 4658,\n },\n TokenData {\n kind: \"Atom\",\n text: \"min_list\",\n start: 4658,\n end: 4666,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4666,\n end: 4667,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4667,\n end: 4668,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4668,\n end: 4669,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4669,\n end: 4670,\n },\n TokenData {\n kind: \"Variable\",\n text: \"TailMin\",\n start: 4670,\n end: 4677,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4677,\n end: 4678,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4678,\n end: 4679,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4679,\n end: 4681,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4681,\n end: 4685,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Min\",\n start: 4685,\n end: 4688,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4688,\n end: 4689,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 4689,\n end: 4691,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4691,\n end: 4692,\n },\n TokenData {\n kind: \"Atom\",\n text: \"min\",\n start: 4692,\n end: 4695,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4695,\n end: 4696,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4696,\n end: 4697,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4697,\n end: 4698,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4698,\n end: 4699,\n },\n TokenData {\n kind: \"Variable\",\n text: \"TailMin\",\n start: 4699,\n end: 4706,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4706,\n end: 4707,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4707,\n end: 4708,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4708,\n end: 4710,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4710,\n end: 4712,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Sort list (insertion sort)\",\n start: 4712,\n end: 4740,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4740,\n end: 4742,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sort_list\",\n start: 4742,\n end: 4751,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4751,\n end: 4752,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4752,\n end: 4753,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4753,\n end: 4754,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4754,\n end: 4755,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4755,\n end: 4756,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4756,\n end: 4757,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4757,\n end: 4758,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4758,\n end: 4759,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4759,\n end: 4760,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4760,\n end: 4762,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sort_list\",\n start: 4762,\n end: 4771,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4771,\n end: 4772,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4772,\n end: 4773,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4773,\n end: 4774,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4774,\n end: 4775,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4775,\n end: 4776,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4776,\n end: 4777,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4777,\n end: 4778,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4778,\n end: 4779,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Sorted\",\n start: 4779,\n end: 4785,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4785,\n end: 4786,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4786,\n end: 4787,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 4787,\n end: 4789,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4789,\n end: 4791,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4791,\n end: 4795,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sort_list\",\n start: 4795,\n end: 4804,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4804,\n end: 4805,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4805,\n end: 4806,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4806,\n end: 4807,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4807,\n end: 4808,\n },\n TokenData {\n kind: \"Variable\",\n text: \"SortedTail\",\n start: 4808,\n end: 4818,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4818,\n end: 4819,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4819,\n end: 4820,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4820,\n end: 4822,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4822,\n end: 4826,\n },\n TokenData {\n kind: \"Atom\",\n text: \"insert_sorted\",\n start: 4826,\n end: 4839,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4839,\n end: 4840,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4840,\n end: 4841,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4841,\n end: 4842,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4842,\n end: 4843,\n },\n TokenData {\n kind: \"Variable\",\n text: \"SortedTail\",\n start: 4843,\n end: 4853,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4853,\n end: 4854,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4854,\n end: 4855,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Sorted\",\n start: 4855,\n end: 4861,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4861,\n end: 4862,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4862,\n end: 4863,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4863,\n end: 4865,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4865,\n end: 4867,\n },\n TokenData {\n kind: \"Atom\",\n text: \"insert_sorted\",\n start: 4867,\n end: 4880,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4880,\n end: 4881,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4881,\n end: 4882,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4882,\n end: 4883,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4883,\n end: 4884,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4884,\n end: 4885,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4885,\n end: 4886,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4886,\n end: 4887,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4887,\n end: 4888,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4888,\n end: 4889,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4889,\n end: 4890,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4890,\n end: 4891,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4891,\n end: 4892,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4892,\n end: 4893,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4893,\n end: 4895,\n },\n TokenData {\n kind: \"Atom\",\n text: \"insert_sorted\",\n start: 4895,\n end: 4908,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4908,\n end: 4909,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4909,\n end: 4910,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4910,\n end: 4911,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4911,\n end: 4912,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4912,\n end: 4913,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4913,\n end: 4914,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4914,\n end: 4915,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4915,\n end: 4916,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4916,\n end: 4917,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4917,\n end: 4918,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4918,\n end: 4919,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4919,\n end: 4920,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4920,\n end: 4921,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4921,\n end: 4922,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4922,\n end: 4923,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4923,\n end: 4924,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4924,\n end: 4925,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4925,\n end: 4926,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4926,\n end: 4927,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4927,\n end: 4928,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 4928,\n end: 4930,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4930,\n end: 4932,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4932,\n end: 4936,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4936,\n end: 4937,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4937,\n end: 4938,\n },\n TokenData {\n kind: \"ArithNotEqual\",\n text: \"=<\",\n start: 4938,\n end: 4940,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4940,\n end: 4941,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4941,\n end: 4942,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4942,\n end: 4943,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4943,\n end: 4944,\n },\n TokenData {\n kind: \"Cut\",\n text: \"!\",\n start: 4944,\n end: 4945,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 4945,\n end: 4946,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4946,\n end: 4948,\n },\n TokenData {\n kind: \"Atom\",\n text: \"insert_sorted\",\n start: 4948,\n end: 4961,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4961,\n end: 4962,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4962,\n end: 4963,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4963,\n end: 4964,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4964,\n end: 4965,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4965,\n end: 4966,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4966,\n end: 4967,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4967,\n end: 4968,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 4968,\n end: 4969,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4969,\n end: 4970,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4970,\n end: 4971,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4971,\n end: 4972,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4972,\n end: 4973,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4973,\n end: 4974,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4974,\n end: 4975,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Result\",\n start: 4975,\n end: 4981,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4981,\n end: 4982,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4982,\n end: 4983,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4983,\n end: 4984,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 4984,\n end: 4986,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4986,\n end: 4988,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4988,\n end: 4992,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 4992,\n end: 4993,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4993,\n end: 4994,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 4994,\n end: 4995,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4995,\n end: 4996,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 4996,\n end: 4997,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4997,\n end: 4998,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4998,\n end: 5000,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5000,\n end: 5004,\n },\n TokenData {\n kind: \"Atom\",\n text: \"insert_sorted\",\n start: 5004,\n end: 5017,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5017,\n end: 5018,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 5018,\n end: 5019,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5019,\n end: 5020,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5020,\n end: 5021,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5021,\n end: 5022,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5022,\n end: 5023,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5023,\n end: 5024,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Result\",\n start: 5024,\n end: 5030,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5030,\n end: 5031,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5031,\n end: 5032,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5032,\n end: 5034,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5034,\n end: 5036,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Quicksort\",\n start: 5036,\n end: 5047,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5047,\n end: 5049,\n },\n TokenData {\n kind: \"Atom\",\n text: \"quicksort\",\n start: 5049,\n end: 5058,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5058,\n end: 5059,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5059,\n end: 5060,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5060,\n end: 5061,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5061,\n end: 5062,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5062,\n end: 5063,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5063,\n end: 5064,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5064,\n end: 5065,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5065,\n end: 5066,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5066,\n end: 5067,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5067,\n end: 5069,\n },\n TokenData {\n kind: \"Atom\",\n text: \"quicksort\",\n start: 5069,\n end: 5078,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5078,\n end: 5079,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5079,\n end: 5080,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5080,\n end: 5081,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5081,\n end: 5082,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5082,\n end: 5083,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5083,\n end: 5084,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5084,\n end: 5085,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5085,\n end: 5086,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Sorted\",\n start: 5086,\n end: 5092,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5092,\n end: 5093,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5093,\n end: 5094,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 5094,\n end: 5096,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5096,\n end: 5098,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5098,\n end: 5102,\n },\n TokenData {\n kind: \"Atom\",\n text: \"partition\",\n start: 5102,\n end: 5111,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5111,\n end: 5112,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5112,\n end: 5113,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5113,\n end: 5114,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5114,\n end: 5115,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5115,\n end: 5116,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5116,\n end: 5117,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5117,\n end: 5118,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Less\",\n start: 5118,\n end: 5122,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5122,\n end: 5123,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5123,\n end: 5124,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Greater\",\n start: 5124,\n end: 5131,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5131,\n end: 5132,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5132,\n end: 5133,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5133,\n end: 5135,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5135,\n end: 5139,\n },\n TokenData {\n kind: \"Atom\",\n text: \"quicksort\",\n start: 5139,\n end: 5148,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5148,\n end: 5149,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Less\",\n start: 5149,\n end: 5153,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5153,\n end: 5154,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5154,\n end: 5155,\n },\n TokenData {\n kind: \"Variable\",\n text: \"SortedLess\",\n start: 5155,\n end: 5165,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5165,\n end: 5166,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5166,\n end: 5167,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5167,\n end: 5169,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5169,\n end: 5173,\n },\n TokenData {\n kind: \"Atom\",\n text: \"quicksort\",\n start: 5173,\n end: 5182,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5182,\n end: 5183,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Greater\",\n start: 5183,\n end: 5190,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5190,\n end: 5191,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5191,\n end: 5192,\n },\n TokenData {\n kind: \"Variable\",\n text: \"SortedGreater\",\n start: 5192,\n end: 5205,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5205,\n end: 5206,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5206,\n end: 5207,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5207,\n end: 5209,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5209,\n end: 5213,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 5213,\n end: 5224,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5224,\n end: 5225,\n },\n TokenData {\n kind: \"Variable\",\n text: \"SortedLess\",\n start: 5225,\n end: 5235,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5235,\n end: 5236,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5236,\n end: 5237,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5237,\n end: 5238,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5238,\n end: 5239,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5239,\n end: 5240,\n },\n TokenData {\n kind: \"Variable\",\n text: \"SortedGreater\",\n start: 5240,\n end: 5253,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5253,\n end: 5254,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5254,\n end: 5255,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5255,\n end: 5256,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Sorted\",\n start: 5256,\n end: 5262,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5262,\n end: 5263,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5263,\n end: 5264,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5264,\n end: 5266,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5266,\n end: 5268,\n },\n TokenData {\n kind: \"Atom\",\n text: \"partition\",\n start: 5268,\n end: 5277,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5277,\n end: 5278,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 5278,\n end: 5279,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5279,\n end: 5280,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5280,\n end: 5281,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5281,\n end: 5282,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5282,\n end: 5283,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5283,\n end: 5284,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5284,\n end: 5285,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5285,\n end: 5286,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5286,\n end: 5287,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5287,\n end: 5288,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5288,\n end: 5289,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5289,\n end: 5290,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5290,\n end: 5291,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5291,\n end: 5292,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5292,\n end: 5293,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5293,\n end: 5295,\n },\n TokenData {\n kind: \"Atom\",\n text: \"partition\",\n start: 5295,\n end: 5304,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5304,\n end: 5305,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pivot\",\n start: 5305,\n end: 5310,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5310,\n end: 5311,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5311,\n end: 5312,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5312,\n end: 5313,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5313,\n end: 5314,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5314,\n end: 5315,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5315,\n end: 5316,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5316,\n end: 5317,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5317,\n end: 5318,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5318,\n end: 5319,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5319,\n end: 5320,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5320,\n end: 5321,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5321,\n end: 5322,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Less\",\n start: 5322,\n end: 5326,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5326,\n end: 5327,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5327,\n end: 5328,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5328,\n end: 5329,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Greater\",\n start: 5329,\n end: 5336,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5336,\n end: 5337,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5337,\n end: 5338,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 5338,\n end: 5340,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5340,\n end: 5342,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5342,\n end: 5346,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5346,\n end: 5347,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5347,\n end: 5348,\n },\n TokenData {\n kind: \"ArithNotEqual\",\n text: \"=<\",\n start: 5348,\n end: 5350,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5350,\n end: 5351,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pivot\",\n start: 5351,\n end: 5356,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5356,\n end: 5357,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5357,\n end: 5358,\n },\n TokenData {\n kind: \"Cut\",\n text: \"!\",\n start: 5358,\n end: 5359,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5359,\n end: 5360,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5360,\n end: 5362,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5362,\n end: 5366,\n },\n TokenData {\n kind: \"Atom\",\n text: \"partition\",\n start: 5366,\n end: 5375,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5375,\n end: 5376,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pivot\",\n start: 5376,\n end: 5381,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5381,\n end: 5382,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5382,\n end: 5383,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5383,\n end: 5384,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5384,\n end: 5385,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5385,\n end: 5386,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Less\",\n start: 5386,\n end: 5390,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5390,\n end: 5391,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5391,\n end: 5392,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Greater\",\n start: 5392,\n end: 5399,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5399,\n end: 5400,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5400,\n end: 5401,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5401,\n end: 5403,\n },\n TokenData {\n kind: \"Atom\",\n text: \"partition\",\n start: 5403,\n end: 5412,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5412,\n end: 5413,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pivot\",\n start: 5413,\n end: 5418,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5418,\n end: 5419,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5419,\n end: 5420,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5420,\n end: 5421,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5421,\n end: 5422,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5422,\n end: 5423,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5423,\n end: 5424,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5424,\n end: 5425,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5425,\n end: 5426,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5426,\n end: 5427,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Less\",\n start: 5427,\n end: 5431,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5431,\n end: 5432,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5432,\n end: 5433,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5433,\n end: 5434,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5434,\n end: 5435,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5435,\n end: 5436,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Greater\",\n start: 5436,\n end: 5443,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5443,\n end: 5444,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5444,\n end: 5445,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5445,\n end: 5446,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 5446,\n end: 5448,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5448,\n end: 5450,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5450,\n end: 5454,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5454,\n end: 5455,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5455,\n end: 5456,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 5456,\n end: 5457,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5457,\n end: 5458,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pivot\",\n start: 5458,\n end: 5463,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5463,\n end: 5464,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5464,\n end: 5466,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5466,\n end: 5470,\n },\n TokenData {\n kind: \"Atom\",\n text: \"partition\",\n start: 5470,\n end: 5479,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5479,\n end: 5480,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pivot\",\n start: 5480,\n end: 5485,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5485,\n end: 5486,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5486,\n end: 5487,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5487,\n end: 5488,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5488,\n end: 5489,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5489,\n end: 5490,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Less\",\n start: 5490,\n end: 5494,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5494,\n end: 5495,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5495,\n end: 5496,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Greater\",\n start: 5496,\n end: 5503,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5503,\n end: 5504,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5504,\n end: 5505,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5505,\n end: 5507,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5507,\n end: 5509,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Remove duplicates\",\n start: 5509,\n end: 5528,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5528,\n end: 5530,\n },\n TokenData {\n kind: \"Atom\",\n text: \"remove_duplicates\",\n start: 5530,\n end: 5547,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5547,\n end: 5548,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5548,\n end: 5549,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5549,\n end: 5550,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5550,\n end: 5551,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5551,\n end: 5552,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5552,\n end: 5553,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5553,\n end: 5554,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5554,\n end: 5555,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5555,\n end: 5556,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5556,\n end: 5558,\n },\n TokenData {\n kind: \"Atom\",\n text: \"remove_duplicates\",\n start: 5558,\n end: 5575,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5575,\n end: 5576,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5576,\n end: 5577,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5577,\n end: 5578,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5578,\n end: 5579,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5579,\n end: 5580,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5580,\n end: 5581,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5581,\n end: 5582,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5582,\n end: 5583,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5583,\n end: 5584,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5584,\n end: 5585,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5585,\n end: 5586,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Result\",\n start: 5586,\n end: 5592,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5592,\n end: 5593,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5593,\n end: 5594,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5594,\n end: 5595,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 5595,\n end: 5597,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5597,\n end: 5599,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5599,\n end: 5603,\n },\n TokenData {\n kind: \"BitwiseNot\",\n text: \"\\\\\",\n start: 5603,\n end: 5604,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 5604,\n end: 5605,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5605,\n end: 5606,\n },\n TokenData {\n kind: \"Atom\",\n text: \"member_check\",\n start: 5606,\n end: 5618,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5618,\n end: 5619,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5619,\n end: 5620,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5620,\n end: 5621,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5621,\n end: 5622,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5622,\n end: 5623,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5623,\n end: 5624,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5624,\n end: 5625,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5625,\n end: 5626,\n },\n TokenData {\n kind: \"Cut\",\n text: \"!\",\n start: 5626,\n end: 5627,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5627,\n end: 5628,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5628,\n end: 5630,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5630,\n end: 5634,\n },\n TokenData {\n kind: \"Atom\",\n text: \"remove_duplicates\",\n start: 5634,\n end: 5651,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5651,\n end: 5652,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5652,\n end: 5653,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5653,\n end: 5654,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5654,\n end: 5655,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Result\",\n start: 5655,\n end: 5661,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5661,\n end: 5662,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5662,\n end: 5663,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5663,\n end: 5665,\n },\n TokenData {\n kind: \"Atom\",\n text: \"remove_duplicates\",\n start: 5665,\n end: 5682,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5682,\n end: 5683,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5683,\n end: 5684,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5684,\n end: 5685,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5685,\n end: 5686,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5686,\n end: 5687,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5687,\n end: 5688,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5688,\n end: 5689,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5689,\n end: 5690,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Result\",\n start: 5690,\n end: 5696,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5696,\n end: 5697,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5697,\n end: 5698,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 5698,\n end: 5700,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5700,\n end: 5702,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5702,\n end: 5706,\n },\n TokenData {\n kind: \"Atom\",\n text: \"member_check\",\n start: 5706,\n end: 5718,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5718,\n end: 5719,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5719,\n end: 5720,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5720,\n end: 5721,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5721,\n end: 5722,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5722,\n end: 5723,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5723,\n end: 5724,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5724,\n end: 5725,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5725,\n end: 5727,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5727,\n end: 5731,\n },\n TokenData {\n kind: \"Atom\",\n text: \"remove_duplicates\",\n start: 5731,\n end: 5748,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5748,\n end: 5749,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5749,\n end: 5750,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5750,\n end: 5751,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5751,\n end: 5752,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Result\",\n start: 5752,\n end: 5758,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5758,\n end: 5759,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5759,\n end: 5760,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5760,\n end: 5762,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5762,\n end: 5764,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Flatten nested list\",\n start: 5764,\n end: 5785,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5785,\n end: 5787,\n },\n TokenData {\n kind: \"Atom\",\n text: \"flatten_list\",\n start: 5787,\n end: 5799,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5799,\n end: 5800,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5800,\n end: 5801,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5801,\n end: 5802,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5802,\n end: 5803,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5803,\n end: 5804,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5804,\n end: 5805,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5805,\n end: 5806,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5806,\n end: 5807,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5807,\n end: 5808,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5808,\n end: 5810,\n },\n TokenData {\n kind: \"Atom\",\n text: \"flatten_list\",\n start: 5810,\n end: 5822,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5822,\n end: 5823,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5823,\n end: 5824,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5824,\n end: 5825,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5825,\n end: 5826,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5826,\n end: 5827,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5827,\n end: 5828,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5828,\n end: 5829,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5829,\n end: 5830,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Flattened\",\n start: 5830,\n end: 5839,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5839,\n end: 5840,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5840,\n end: 5841,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 5841,\n end: 5843,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5843,\n end: 5845,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5845,\n end: 5849,\n },\n TokenData {\n kind: \"Atom\",\n text: \"is_list\",\n start: 5849,\n end: 5856,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5856,\n end: 5857,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5857,\n end: 5858,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5858,\n end: 5859,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5859,\n end: 5860,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5860,\n end: 5861,\n },\n TokenData {\n kind: \"Cut\",\n text: \"!\",\n start: 5861,\n end: 5862,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5862,\n end: 5863,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5863,\n end: 5865,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5865,\n end: 5869,\n },\n TokenData {\n kind: \"Atom\",\n text: \"flatten_list\",\n start: 5869,\n end: 5881,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5881,\n end: 5882,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5882,\n end: 5883,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5883,\n end: 5884,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5884,\n end: 5885,\n },\n TokenData {\n kind: \"Variable\",\n text: \"FlatH\",\n start: 5885,\n end: 5890,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5890,\n end: 5891,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5891,\n end: 5892,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5892,\n end: 5894,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5894,\n end: 5898,\n },\n TokenData {\n kind: \"Atom\",\n text: \"flatten_list\",\n start: 5898,\n end: 5910,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5910,\n end: 5911,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5911,\n end: 5912,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5912,\n end: 5913,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5913,\n end: 5914,\n },\n TokenData {\n kind: \"Variable\",\n text: \"FlatT\",\n start: 5914,\n end: 5919,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5919,\n end: 5920,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5920,\n end: 5921,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5921,\n end: 5923,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5923,\n end: 5927,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 5927,\n end: 5938,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5938,\n end: 5939,\n },\n TokenData {\n kind: \"Variable\",\n text: \"FlatH\",\n start: 5939,\n end: 5944,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5944,\n end: 5945,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5945,\n end: 5946,\n },\n TokenData {\n kind: \"Variable\",\n text: \"FlatT\",\n start: 5946,\n end: 5951,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5951,\n end: 5952,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5952,\n end: 5953,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Flattened\",\n start: 5953,\n end: 5962,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5962,\n end: 5963,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 5963,\n end: 5964,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5964,\n end: 5966,\n },\n TokenData {\n kind: \"Atom\",\n text: \"flatten_list\",\n start: 5966,\n end: 5978,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5978,\n end: 5979,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5979,\n end: 5980,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5980,\n end: 5981,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5981,\n end: 5982,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 5982,\n end: 5983,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5983,\n end: 5984,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 5984,\n end: 5985,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5985,\n end: 5986,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5986,\n end: 5987,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 5987,\n end: 5988,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5988,\n end: 5989,\n },\n TokenData {\n kind: \"Variable\",\n text: \"FlatT\",\n start: 5989,\n end: 5994,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5994,\n end: 5995,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5995,\n end: 5996,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5996,\n end: 5997,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 5997,\n end: 5999,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5999,\n end: 6001,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6001,\n end: 6005,\n },\n TokenData {\n kind: \"BitwiseNot\",\n text: \"\\\\\",\n start: 6005,\n end: 6006,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 6006,\n end: 6007,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6007,\n end: 6008,\n },\n TokenData {\n kind: \"Atom\",\n text: \"is_list\",\n start: 6008,\n end: 6015,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6015,\n end: 6016,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 6016,\n end: 6017,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6017,\n end: 6018,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6018,\n end: 6019,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6019,\n end: 6021,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6021,\n end: 6025,\n },\n TokenData {\n kind: \"Atom\",\n text: \"flatten_list\",\n start: 6025,\n end: 6037,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6037,\n end: 6038,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 6038,\n end: 6039,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6039,\n end: 6040,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6040,\n end: 6041,\n },\n TokenData {\n kind: \"Variable\",\n text: \"FlatT\",\n start: 6041,\n end: 6046,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6046,\n end: 6047,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6047,\n end: 6048,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6048,\n end: 6050,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6050,\n end: 6052,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Binary tree operations\",\n start: 6052,\n end: 6076,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6076,\n end: 6078,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6078,\n end: 6080,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Binary tree structure: empty or tree(Left, Value, Right)\",\n start: 6080,\n end: 6138,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6138,\n end: 6140,\n },\n TokenData {\n kind: \"Atom\",\n text: \"binary_tree\",\n start: 6140,\n end: 6151,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6151,\n end: 6152,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 6152,\n end: 6157,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6157,\n end: 6158,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6158,\n end: 6159,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6159,\n end: 6161,\n },\n TokenData {\n kind: \"Atom\",\n text: \"binary_tree\",\n start: 6161,\n end: 6172,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6172,\n end: 6173,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6173,\n end: 6177,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6177,\n end: 6178,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6178,\n end: 6182,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6182,\n end: 6183,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6183,\n end: 6184,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 6184,\n end: 6185,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6185,\n end: 6186,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6186,\n end: 6187,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6187,\n end: 6192,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6192,\n end: 6193,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6193,\n end: 6194,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6194,\n end: 6195,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 6195,\n end: 6197,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6197,\n end: 6199,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6199,\n end: 6203,\n },\n TokenData {\n kind: \"Atom\",\n text: \"binary_tree\",\n start: 6203,\n end: 6214,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6214,\n end: 6215,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6215,\n end: 6219,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6219,\n end: 6220,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6220,\n end: 6221,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6221,\n end: 6223,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6223,\n end: 6227,\n },\n TokenData {\n kind: \"Atom\",\n text: \"binary_tree\",\n start: 6227,\n end: 6238,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6238,\n end: 6239,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6239,\n end: 6244,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6244,\n end: 6245,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6245,\n end: 6246,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6246,\n end: 6248,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6248,\n end: 6250,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Tree membership\",\n start: 6250,\n end: 6267,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6267,\n end: 6269,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_member\",\n start: 6269,\n end: 6280,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6280,\n end: 6281,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6281,\n end: 6282,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6282,\n end: 6283,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6283,\n end: 6284,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6284,\n end: 6288,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6288,\n end: 6289,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 6289,\n end: 6290,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6290,\n end: 6291,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6291,\n end: 6292,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6292,\n end: 6293,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6293,\n end: 6294,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6294,\n end: 6295,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 6295,\n end: 6296,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6296,\n end: 6297,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6297,\n end: 6298,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6298,\n end: 6299,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6299,\n end: 6301,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_member\",\n start: 6301,\n end: 6312,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6312,\n end: 6313,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6313,\n end: 6314,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6314,\n end: 6315,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6315,\n end: 6316,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6316,\n end: 6320,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6320,\n end: 6321,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6321,\n end: 6325,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6325,\n end: 6326,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6326,\n end: 6327,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 6327,\n end: 6328,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6328,\n end: 6329,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6329,\n end: 6330,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 6330,\n end: 6331,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6331,\n end: 6332,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6332,\n end: 6333,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6333,\n end: 6334,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 6334,\n end: 6336,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6336,\n end: 6338,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6338,\n end: 6342,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_member\",\n start: 6342,\n end: 6353,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6353,\n end: 6354,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6354,\n end: 6355,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6355,\n end: 6356,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6356,\n end: 6357,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6357,\n end: 6361,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6361,\n end: 6362,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6362,\n end: 6363,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6363,\n end: 6365,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_member\",\n start: 6365,\n end: 6376,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6376,\n end: 6377,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6377,\n end: 6378,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6378,\n end: 6379,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6379,\n end: 6380,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6380,\n end: 6384,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6384,\n end: 6385,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 6385,\n end: 6386,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6386,\n end: 6387,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6387,\n end: 6388,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 6388,\n end: 6389,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6389,\n end: 6390,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6390,\n end: 6391,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6391,\n end: 6396,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6396,\n end: 6397,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6397,\n end: 6398,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6398,\n end: 6399,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 6399,\n end: 6401,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6401,\n end: 6403,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6403,\n end: 6407,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_member\",\n start: 6407,\n end: 6418,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6418,\n end: 6419,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6419,\n end: 6420,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6420,\n end: 6421,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6421,\n end: 6422,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6422,\n end: 6427,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6427,\n end: 6428,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6428,\n end: 6429,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6429,\n end: 6431,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6431,\n end: 6433,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Tree insertion (binary search tree)\",\n start: 6433,\n end: 6470,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6470,\n end: 6472,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_insert\",\n start: 6472,\n end: 6483,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6483,\n end: 6484,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6484,\n end: 6485,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6485,\n end: 6486,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6486,\n end: 6487,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 6487,\n end: 6492,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6492,\n end: 6493,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6493,\n end: 6494,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6494,\n end: 6498,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6498,\n end: 6499,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 6499,\n end: 6504,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6504,\n end: 6505,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6505,\n end: 6506,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6506,\n end: 6507,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6507,\n end: 6508,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6508,\n end: 6509,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 6509,\n end: 6514,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6514,\n end: 6515,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6515,\n end: 6516,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6516,\n end: 6517,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6517,\n end: 6519,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_insert\",\n start: 6519,\n end: 6530,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6530,\n end: 6531,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6531,\n end: 6532,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6532,\n end: 6533,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6533,\n end: 6534,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6534,\n end: 6538,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6538,\n end: 6539,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6539,\n end: 6543,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6543,\n end: 6544,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6544,\n end: 6545,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 6545,\n end: 6546,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6546,\n end: 6547,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6547,\n end: 6548,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6548,\n end: 6553,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6553,\n end: 6554,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6554,\n end: 6555,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6555,\n end: 6556,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6556,\n end: 6560,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6560,\n end: 6561,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewLeft\",\n start: 6561,\n end: 6568,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6568,\n end: 6569,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6569,\n end: 6570,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 6570,\n end: 6571,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6571,\n end: 6572,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6572,\n end: 6573,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6573,\n end: 6578,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6578,\n end: 6579,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6579,\n end: 6580,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6580,\n end: 6581,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 6581,\n end: 6583,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6583,\n end: 6585,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6585,\n end: 6589,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6589,\n end: 6590,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6590,\n end: 6591,\n },\n TokenData {\n kind: \"Less\",\n text: \"<\",\n start: 6591,\n end: 6592,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6592,\n end: 6593,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 6593,\n end: 6594,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6594,\n end: 6595,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6595,\n end: 6597,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6597,\n end: 6601,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_insert\",\n start: 6601,\n end: 6612,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6612,\n end: 6613,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6613,\n end: 6614,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6614,\n end: 6615,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6615,\n end: 6616,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6616,\n end: 6620,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6620,\n end: 6621,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6621,\n end: 6622,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewLeft\",\n start: 6622,\n end: 6629,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6629,\n end: 6630,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6630,\n end: 6631,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6631,\n end: 6633,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_insert\",\n start: 6633,\n end: 6644,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6644,\n end: 6645,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6645,\n end: 6646,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6646,\n end: 6647,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6647,\n end: 6648,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6648,\n end: 6652,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6652,\n end: 6653,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6653,\n end: 6657,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6657,\n end: 6658,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6658,\n end: 6659,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 6659,\n end: 6660,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6660,\n end: 6661,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6661,\n end: 6662,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6662,\n end: 6667,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6667,\n end: 6668,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6668,\n end: 6669,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6669,\n end: 6670,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6670,\n end: 6674,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6674,\n end: 6675,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6675,\n end: 6679,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6679,\n end: 6680,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6680,\n end: 6681,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 6681,\n end: 6682,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6682,\n end: 6683,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6683,\n end: 6684,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewRight\",\n start: 6684,\n end: 6692,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6692,\n end: 6693,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6693,\n end: 6694,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6694,\n end: 6695,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 6695,\n end: 6697,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6697,\n end: 6699,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6699,\n end: 6703,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6703,\n end: 6704,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6704,\n end: 6705,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 6705,\n end: 6706,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6706,\n end: 6707,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 6707,\n end: 6708,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6708,\n end: 6709,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6709,\n end: 6711,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6711,\n end: 6715,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_insert\",\n start: 6715,\n end: 6726,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6726,\n end: 6727,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6727,\n end: 6728,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6728,\n end: 6729,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6729,\n end: 6730,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6730,\n end: 6735,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6735,\n end: 6736,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6736,\n end: 6737,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewRight\",\n start: 6737,\n end: 6745,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6745,\n end: 6746,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6746,\n end: 6747,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6747,\n end: 6749,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree_insert\",\n start: 6749,\n end: 6760,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6760,\n end: 6761,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6761,\n end: 6762,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6762,\n end: 6763,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6763,\n end: 6764,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6764,\n end: 6768,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6768,\n end: 6769,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6769,\n end: 6773,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6773,\n end: 6774,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6774,\n end: 6775,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6775,\n end: 6776,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6776,\n end: 6777,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6777,\n end: 6778,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6778,\n end: 6783,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6783,\n end: 6784,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6784,\n end: 6785,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6785,\n end: 6786,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6786,\n end: 6790,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6790,\n end: 6791,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6791,\n end: 6795,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6795,\n end: 6796,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6796,\n end: 6797,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6797,\n end: 6798,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6798,\n end: 6799,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6799,\n end: 6800,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6800,\n end: 6805,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6805,\n end: 6806,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6806,\n end: 6807,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6807,\n end: 6808,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6808,\n end: 6810,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6810,\n end: 6812,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Tree traversal\",\n start: 6812,\n end: 6828,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6828,\n end: 6830,\n },\n TokenData {\n kind: \"Atom\",\n text: \"inorder\",\n start: 6830,\n end: 6837,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6837,\n end: 6838,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 6838,\n end: 6843,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6843,\n end: 6844,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6844,\n end: 6845,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 6845,\n end: 6846,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 6846,\n end: 6847,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6847,\n end: 6848,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 6848,\n end: 6849,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6849,\n end: 6851,\n },\n TokenData {\n kind: \"Atom\",\n text: \"inorder\",\n start: 6851,\n end: 6858,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6858,\n end: 6859,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 6859,\n end: 6863,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6863,\n end: 6864,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6864,\n end: 6868,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6868,\n end: 6869,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6869,\n end: 6870,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 6870,\n end: 6871,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6871,\n end: 6872,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6872,\n end: 6873,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6873,\n end: 6878,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6878,\n end: 6879,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6879,\n end: 6880,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6880,\n end: 6881,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Traversal\",\n start: 6881,\n end: 6890,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6890,\n end: 6891,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6891,\n end: 6892,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 6892,\n end: 6894,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6894,\n end: 6896,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6896,\n end: 6900,\n },\n TokenData {\n kind: \"Atom\",\n text: \"inorder\",\n start: 6900,\n end: 6907,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6907,\n end: 6908,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 6908,\n end: 6912,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6912,\n end: 6913,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6913,\n end: 6914,\n },\n TokenData {\n kind: \"Variable\",\n text: \"LeftTraversal\",\n start: 6914,\n end: 6927,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6927,\n end: 6928,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6928,\n end: 6929,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6929,\n end: 6931,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6931,\n end: 6935,\n },\n TokenData {\n kind: \"Atom\",\n text: \"inorder\",\n start: 6935,\n end: 6942,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6942,\n end: 6943,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 6943,\n end: 6948,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6948,\n end: 6949,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6949,\n end: 6950,\n },\n TokenData {\n kind: \"Variable\",\n text: \"RightTraversal\",\n start: 6950,\n end: 6964,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6964,\n end: 6965,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6965,\n end: 6966,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6966,\n end: 6968,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6968,\n end: 6972,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 6972,\n end: 6983,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6983,\n end: 6984,\n },\n TokenData {\n kind: \"Variable\",\n text: \"LeftTraversal\",\n start: 6984,\n end: 6997,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6997,\n end: 6998,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6998,\n end: 6999,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 6999,\n end: 7000,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7000,\n end: 7001,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7001,\n end: 7002,\n },\n TokenData {\n kind: \"Variable\",\n text: \"RightTraversal\",\n start: 7002,\n end: 7016,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 7016,\n end: 7017,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7017,\n end: 7018,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7018,\n end: 7019,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Traversal\",\n start: 7019,\n end: 7028,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7028,\n end: 7029,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7029,\n end: 7030,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7030,\n end: 7032,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7032,\n end: 7034,\n },\n TokenData {\n kind: \"Atom\",\n text: \"preorder\",\n start: 7034,\n end: 7042,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7042,\n end: 7043,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 7043,\n end: 7048,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7048,\n end: 7049,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7049,\n end: 7050,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 7050,\n end: 7051,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 7051,\n end: 7052,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7052,\n end: 7053,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7053,\n end: 7054,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7054,\n end: 7056,\n },\n TokenData {\n kind: \"Atom\",\n text: \"preorder\",\n start: 7056,\n end: 7064,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7064,\n end: 7065,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 7065,\n end: 7069,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7069,\n end: 7070,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 7070,\n end: 7074,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7074,\n end: 7075,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7075,\n end: 7076,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7076,\n end: 7077,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7077,\n end: 7078,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7078,\n end: 7079,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 7079,\n end: 7084,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7084,\n end: 7085,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7085,\n end: 7086,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7086,\n end: 7087,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 7087,\n end: 7088,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7088,\n end: 7089,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7089,\n end: 7090,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Traversal\",\n start: 7090,\n end: 7099,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 7099,\n end: 7100,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7100,\n end: 7101,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7101,\n end: 7102,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 7102,\n end: 7104,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7104,\n end: 7106,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7106,\n end: 7110,\n },\n TokenData {\n kind: \"Atom\",\n text: \"preorder\",\n start: 7110,\n end: 7118,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7118,\n end: 7119,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 7119,\n end: 7123,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7123,\n end: 7124,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7124,\n end: 7125,\n },\n TokenData {\n kind: \"Variable\",\n text: \"LeftTraversal\",\n start: 7125,\n end: 7138,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7138,\n end: 7139,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7139,\n end: 7140,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7140,\n end: 7142,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7142,\n end: 7146,\n },\n TokenData {\n kind: \"Atom\",\n text: \"preorder\",\n start: 7146,\n end: 7154,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7154,\n end: 7155,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 7155,\n end: 7160,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7160,\n end: 7161,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7161,\n end: 7162,\n },\n TokenData {\n kind: \"Variable\",\n text: \"RightTraversal\",\n start: 7162,\n end: 7176,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7176,\n end: 7177,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7177,\n end: 7178,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7178,\n end: 7180,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7180,\n end: 7184,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 7184,\n end: 7195,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7195,\n end: 7196,\n },\n TokenData {\n kind: \"Variable\",\n text: \"LeftTraversal\",\n start: 7196,\n end: 7209,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7209,\n end: 7210,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7210,\n end: 7211,\n },\n TokenData {\n kind: \"Variable\",\n text: \"RightTraversal\",\n start: 7211,\n end: 7225,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7225,\n end: 7226,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7226,\n end: 7227,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Traversal\",\n start: 7227,\n end: 7236,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7236,\n end: 7237,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7237,\n end: 7238,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7238,\n end: 7240,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7240,\n end: 7242,\n },\n TokenData {\n kind: \"Atom\",\n text: \"postorder\",\n start: 7242,\n end: 7251,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7251,\n end: 7252,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 7252,\n end: 7257,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7257,\n end: 7258,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7258,\n end: 7259,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 7259,\n end: 7260,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 7260,\n end: 7261,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7261,\n end: 7262,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7262,\n end: 7263,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7263,\n end: 7265,\n },\n TokenData {\n kind: \"Atom\",\n text: \"postorder\",\n start: 7265,\n end: 7274,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7274,\n end: 7275,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 7275,\n end: 7279,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7279,\n end: 7280,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 7280,\n end: 7284,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7284,\n end: 7285,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7285,\n end: 7286,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7286,\n end: 7287,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7287,\n end: 7288,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7288,\n end: 7289,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 7289,\n end: 7294,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7294,\n end: 7295,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7295,\n end: 7296,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7296,\n end: 7297,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Traversal\",\n start: 7297,\n end: 7306,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7306,\n end: 7307,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7307,\n end: 7308,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 7308,\n end: 7310,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7310,\n end: 7312,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7312,\n end: 7316,\n },\n TokenData {\n kind: \"Atom\",\n text: \"postorder\",\n start: 7316,\n end: 7325,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7325,\n end: 7326,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Left\",\n start: 7326,\n end: 7330,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7330,\n end: 7331,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7331,\n end: 7332,\n },\n TokenData {\n kind: \"Variable\",\n text: \"LeftTraversal\",\n start: 7332,\n end: 7345,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7345,\n end: 7346,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7346,\n end: 7347,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7347,\n end: 7349,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7349,\n end: 7353,\n },\n TokenData {\n kind: \"Atom\",\n text: \"postorder\",\n start: 7353,\n end: 7362,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7362,\n end: 7363,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Right\",\n start: 7363,\n end: 7368,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7368,\n end: 7369,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7369,\n end: 7370,\n },\n TokenData {\n kind: \"Variable\",\n text: \"RightTraversal\",\n start: 7370,\n end: 7384,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7384,\n end: 7385,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7385,\n end: 7386,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7386,\n end: 7388,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7388,\n end: 7392,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 7392,\n end: 7403,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7403,\n end: 7404,\n },\n TokenData {\n kind: \"Variable\",\n text: \"LeftTraversal\",\n start: 7404,\n end: 7417,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7417,\n end: 7418,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7418,\n end: 7419,\n },\n TokenData {\n kind: \"Variable\",\n text: \"RightTraversal\",\n start: 7419,\n end: 7433,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7433,\n end: 7434,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7434,\n end: 7435,\n },\n TokenData {\n kind: \"Variable\",\n text: \"TempTraversal\",\n start: 7435,\n end: 7448,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7448,\n end: 7449,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7449,\n end: 7450,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7450,\n end: 7452,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7452,\n end: 7456,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 7456,\n end: 7467,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7467,\n end: 7468,\n },\n TokenData {\n kind: \"Variable\",\n text: \"TempTraversal\",\n start: 7468,\n end: 7481,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7481,\n end: 7482,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7482,\n end: 7483,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 7483,\n end: 7484,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7484,\n end: 7485,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 7485,\n end: 7486,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7486,\n end: 7487,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7487,\n end: 7488,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Traversal\",\n start: 7488,\n end: 7497,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7497,\n end: 7498,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7498,\n end: 7499,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7499,\n end: 7501,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7501,\n end: 7503,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Graph operations\",\n start: 7503,\n end: 7521,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7521,\n end: 7523,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7523,\n end: 7525,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Graph edges\",\n start: 7525,\n end: 7538,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7538,\n end: 7540,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7540,\n end: 7550,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7550,\n end: 7551,\n },\n TokenData {\n kind: \"Atom\",\n text: \"a\",\n start: 7551,\n end: 7552,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7552,\n end: 7553,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7553,\n end: 7554,\n },\n TokenData {\n kind: \"Atom\",\n text: \"b\",\n start: 7554,\n end: 7555,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7555,\n end: 7556,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7556,\n end: 7557,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7557,\n end: 7559,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7559,\n end: 7569,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7569,\n end: 7570,\n },\n TokenData {\n kind: \"Atom\",\n text: \"b\",\n start: 7570,\n end: 7571,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7571,\n end: 7572,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7572,\n end: 7573,\n },\n TokenData {\n kind: \"Atom\",\n text: \"c\",\n start: 7573,\n end: 7574,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7574,\n end: 7575,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7575,\n end: 7576,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7576,\n end: 7578,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7578,\n end: 7588,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7588,\n end: 7589,\n },\n TokenData {\n kind: \"Atom\",\n text: \"c\",\n start: 7589,\n end: 7590,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7590,\n end: 7591,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7591,\n end: 7592,\n },\n TokenData {\n kind: \"Atom\",\n text: \"d\",\n start: 7592,\n end: 7593,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7593,\n end: 7594,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7594,\n end: 7595,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7595,\n end: 7597,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7597,\n end: 7607,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7607,\n end: 7608,\n },\n TokenData {\n kind: \"Atom\",\n text: \"a\",\n start: 7608,\n end: 7609,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7609,\n end: 7610,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7610,\n end: 7611,\n },\n TokenData {\n kind: \"Atom\",\n text: \"e\",\n start: 7611,\n end: 7612,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7612,\n end: 7613,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7613,\n end: 7614,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7614,\n end: 7616,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7616,\n end: 7626,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7626,\n end: 7627,\n },\n TokenData {\n kind: \"Atom\",\n text: \"e\",\n start: 7627,\n end: 7628,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7628,\n end: 7629,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7629,\n end: 7630,\n },\n TokenData {\n kind: \"Atom\",\n text: \"f\",\n start: 7630,\n end: 7631,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7631,\n end: 7632,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7632,\n end: 7633,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7633,\n end: 7635,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7635,\n end: 7645,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7645,\n end: 7646,\n },\n TokenData {\n kind: \"Atom\",\n text: \"f\",\n start: 7646,\n end: 7647,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7647,\n end: 7648,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7648,\n end: 7649,\n },\n TokenData {\n kind: \"Atom\",\n text: \"d\",\n start: 7649,\n end: 7650,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7650,\n end: 7651,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7651,\n end: 7652,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7652,\n end: 7654,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7654,\n end: 7664,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7664,\n end: 7665,\n },\n TokenData {\n kind: \"Atom\",\n text: \"b\",\n start: 7665,\n end: 7666,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7666,\n end: 7667,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7667,\n end: 7668,\n },\n TokenData {\n kind: \"Atom\",\n text: \"g\",\n start: 7668,\n end: 7669,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7669,\n end: 7670,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7670,\n end: 7671,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7671,\n end: 7673,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7673,\n end: 7683,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7683,\n end: 7684,\n },\n TokenData {\n kind: \"Atom\",\n text: \"g\",\n start: 7684,\n end: 7685,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7685,\n end: 7686,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7686,\n end: 7687,\n },\n TokenData {\n kind: \"Atom\",\n text: \"h\",\n start: 7687,\n end: 7688,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7688,\n end: 7689,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7689,\n end: 7690,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7690,\n end: 7692,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7692,\n end: 7702,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7702,\n end: 7703,\n },\n TokenData {\n kind: \"Atom\",\n text: \"h\",\n start: 7703,\n end: 7704,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7704,\n end: 7705,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7705,\n end: 7706,\n },\n TokenData {\n kind: \"Atom\",\n text: \"d\",\n start: 7706,\n end: 7707,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7707,\n end: 7708,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7708,\n end: 7709,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7709,\n end: 7711,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7711,\n end: 7713,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Path finding\",\n start: 7713,\n end: 7727,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7727,\n end: 7729,\n },\n TokenData {\n kind: \"Atom\",\n text: \"path\",\n start: 7729,\n end: 7733,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7733,\n end: 7734,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7734,\n end: 7735,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7735,\n end: 7736,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7736,\n end: 7737,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 7737,\n end: 7738,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7738,\n end: 7739,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7739,\n end: 7740,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 7740,\n end: 7741,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7741,\n end: 7742,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7742,\n end: 7743,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7743,\n end: 7744,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 7744,\n end: 7745,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 7745,\n end: 7746,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7746,\n end: 7747,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7747,\n end: 7748,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 7748,\n end: 7750,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7750,\n end: 7752,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7752,\n end: 7756,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7756,\n end: 7766,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7766,\n end: 7767,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7767,\n end: 7768,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7768,\n end: 7769,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7769,\n end: 7770,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 7770,\n end: 7771,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7771,\n end: 7772,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7772,\n end: 7773,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7773,\n end: 7775,\n },\n TokenData {\n kind: \"Atom\",\n text: \"path\",\n start: 7775,\n end: 7779,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7779,\n end: 7780,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7780,\n end: 7781,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7781,\n end: 7782,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7782,\n end: 7783,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 7783,\n end: 7784,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7784,\n end: 7785,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7785,\n end: 7786,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 7786,\n end: 7787,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7787,\n end: 7788,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7788,\n end: 7789,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 7789,\n end: 7793,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 7793,\n end: 7794,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7794,\n end: 7795,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7795,\n end: 7796,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 7796,\n end: 7798,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7798,\n end: 7800,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7800,\n end: 7804,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 7804,\n end: 7814,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7814,\n end: 7815,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7815,\n end: 7816,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7816,\n end: 7817,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7817,\n end: 7818,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 7818,\n end: 7819,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7819,\n end: 7820,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7820,\n end: 7821,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7821,\n end: 7823,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7823,\n end: 7827,\n },\n TokenData {\n kind: \"Atom\",\n text: \"path\",\n start: 7827,\n end: 7831,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7831,\n end: 7832,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 7832,\n end: 7833,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7833,\n end: 7834,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7834,\n end: 7835,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 7835,\n end: 7836,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7836,\n end: 7837,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7837,\n end: 7838,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 7838,\n end: 7842,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7842,\n end: 7843,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7843,\n end: 7844,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7844,\n end: 7846,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7846,\n end: 7848,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Connected components\",\n start: 7848,\n end: 7870,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7870,\n end: 7872,\n },\n TokenData {\n kind: \"Atom\",\n text: \"connected\",\n start: 7872,\n end: 7881,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7881,\n end: 7882,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7882,\n end: 7883,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7883,\n end: 7884,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7884,\n end: 7885,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 7885,\n end: 7886,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7886,\n end: 7887,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7887,\n end: 7888,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 7888,\n end: 7890,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7890,\n end: 7892,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7892,\n end: 7896,\n },\n TokenData {\n kind: \"Atom\",\n text: \"path\",\n start: 7896,\n end: 7900,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7900,\n end: 7901,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7901,\n end: 7902,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7902,\n end: 7903,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7903,\n end: 7904,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 7904,\n end: 7905,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7905,\n end: 7906,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7906,\n end: 7907,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 7907,\n end: 7908,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7908,\n end: 7909,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7909,\n end: 7910,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7910,\n end: 7912,\n },\n TokenData {\n kind: \"Atom\",\n text: \"connected\",\n start: 7912,\n end: 7921,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7921,\n end: 7922,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7922,\n end: 7923,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7923,\n end: 7924,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7924,\n end: 7925,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 7925,\n end: 7926,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7926,\n end: 7927,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7927,\n end: 7928,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 7928,\n end: 7930,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7930,\n end: 7932,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7932,\n end: 7936,\n },\n TokenData {\n kind: \"Atom\",\n text: \"path\",\n start: 7936,\n end: 7940,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7940,\n end: 7941,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 7941,\n end: 7942,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7942,\n end: 7943,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7943,\n end: 7944,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 7944,\n end: 7945,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7945,\n end: 7946,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7946,\n end: 7947,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 7947,\n end: 7948,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7948,\n end: 7949,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 7949,\n end: 7950,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7950,\n end: 7952,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7952,\n end: 7954,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Shortest path (breadth-first search)\",\n start: 7954,\n end: 7992,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7992,\n end: 7994,\n },\n TokenData {\n kind: \"Atom\",\n text: \"shortest_path\",\n start: 7994,\n end: 8007,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8007,\n end: 8008,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Start\",\n start: 8008,\n end: 8013,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8013,\n end: 8014,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8014,\n end: 8015,\n },\n TokenData {\n kind: \"Variable\",\n text: \"End\",\n start: 8015,\n end: 8018,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8018,\n end: 8019,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8019,\n end: 8020,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 8020,\n end: 8024,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8024,\n end: 8025,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8025,\n end: 8026,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 8026,\n end: 8028,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8028,\n end: 8030,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8030,\n end: 8034,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bfs\",\n start: 8034,\n end: 8037,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8037,\n end: 8038,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8038,\n end: 8039,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8039,\n end: 8040,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Start\",\n start: 8040,\n end: 8045,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8045,\n end: 8046,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8046,\n end: 8047,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8047,\n end: 8048,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8048,\n end: 8049,\n },\n TokenData {\n kind: \"Variable\",\n text: \"End\",\n start: 8049,\n end: 8052,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8052,\n end: 8053,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8053,\n end: 8054,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 8054,\n end: 8058,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8058,\n end: 8059,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 8059,\n end: 8060,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8060,\n end: 8062,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8062,\n end: 8064,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bfs\",\n start: 8064,\n end: 8067,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8067,\n end: 8068,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8068,\n end: 8069,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8069,\n end: 8070,\n },\n TokenData {\n kind: \"Variable\",\n text: \"End\",\n start: 8070,\n end: 8073,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8073,\n end: 8074,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 8074,\n end: 8078,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8078,\n end: 8079,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8079,\n end: 8080,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 8080,\n end: 8081,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8081,\n end: 8082,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8082,\n end: 8083,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8083,\n end: 8084,\n },\n TokenData {\n kind: \"Variable\",\n text: \"End\",\n start: 8084,\n end: 8087,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8087,\n end: 8088,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8088,\n end: 8089,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8089,\n end: 8090,\n },\n TokenData {\n kind: \"Variable\",\n text: \"End\",\n start: 8090,\n end: 8093,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8093,\n end: 8094,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 8094,\n end: 8098,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8098,\n end: 8099,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8099,\n end: 8100,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 8100,\n end: 8101,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8101,\n end: 8103,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bfs\",\n start: 8103,\n end: 8106,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8106,\n end: 8107,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8107,\n end: 8108,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 8108,\n end: 8112,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8112,\n end: 8113,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Paths\",\n start: 8113,\n end: 8118,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8118,\n end: 8119,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8119,\n end: 8120,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8120,\n end: 8121,\n },\n TokenData {\n kind: \"Variable\",\n text: \"End\",\n start: 8121,\n end: 8124,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8124,\n end: 8125,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8125,\n end: 8126,\n },\n TokenData {\n kind: \"Variable\",\n text: \"ShortestPath\",\n start: 8126,\n end: 8138,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8138,\n end: 8139,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8139,\n end: 8140,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 8140,\n end: 8142,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8142,\n end: 8144,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8144,\n end: 8148,\n },\n TokenData {\n kind: \"Atom\",\n text: \"extend_path\",\n start: 8148,\n end: 8159,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8159,\n end: 8160,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 8160,\n end: 8164,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8164,\n end: 8165,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8165,\n end: 8166,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewPaths\",\n start: 8166,\n end: 8174,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8174,\n end: 8175,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8175,\n end: 8176,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8176,\n end: 8178,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8178,\n end: 8182,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 8182,\n end: 8193,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8193,\n end: 8194,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Paths\",\n start: 8194,\n end: 8199,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8199,\n end: 8200,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8200,\n end: 8201,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewPaths\",\n start: 8201,\n end: 8209,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8209,\n end: 8210,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8210,\n end: 8211,\n },\n TokenData {\n kind: \"Variable\",\n text: \"AllPaths\",\n start: 8211,\n end: 8219,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8219,\n end: 8220,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8220,\n end: 8221,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8221,\n end: 8223,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8223,\n end: 8227,\n },\n TokenData {\n kind: \"Atom\",\n text: \"bfs\",\n start: 8227,\n end: 8230,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8230,\n end: 8231,\n },\n TokenData {\n kind: \"Variable\",\n text: \"AllPaths\",\n start: 8231,\n end: 8239,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8239,\n end: 8240,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8240,\n end: 8241,\n },\n TokenData {\n kind: \"Variable\",\n text: \"End\",\n start: 8241,\n end: 8244,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8244,\n end: 8245,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8245,\n end: 8246,\n },\n TokenData {\n kind: \"Variable\",\n text: \"ShortestPath\",\n start: 8246,\n end: 8258,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8258,\n end: 8259,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 8259,\n end: 8260,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8260,\n end: 8262,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8262,\n end: 8264,\n },\n TokenData {\n kind: \"Atom\",\n text: \"extend_path\",\n start: 8264,\n end: 8275,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8275,\n end: 8276,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8276,\n end: 8277,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Node\",\n start: 8277,\n end: 8281,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8281,\n end: 8282,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 8282,\n end: 8286,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8286,\n end: 8287,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8287,\n end: 8288,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8288,\n end: 8289,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewPaths\",\n start: 8289,\n end: 8297,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8297,\n end: 8298,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8298,\n end: 8299,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 8299,\n end: 8301,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8301,\n end: 8303,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8303,\n end: 8307,\n },\n TokenData {\n kind: \"Atom\",\n text: \"findall\",\n start: 8307,\n end: 8314,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8314,\n end: 8315,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8315,\n end: 8316,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewNode\",\n start: 8316,\n end: 8323,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8323,\n end: 8324,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8324,\n end: 8325,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Node\",\n start: 8325,\n end: 8329,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8329,\n end: 8330,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 8330,\n end: 8334,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8334,\n end: 8335,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8335,\n end: 8336,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8336,\n end: 8338,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8338,\n end: 8350,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8350,\n end: 8351,\n },\n TokenData {\n kind: \"Atom\",\n text: \"graph_edge\",\n start: 8351,\n end: 8361,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8361,\n end: 8362,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Node\",\n start: 8362,\n end: 8366,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8366,\n end: 8367,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8367,\n end: 8368,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewNode\",\n start: 8368,\n end: 8375,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8375,\n end: 8376,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8376,\n end: 8377,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8377,\n end: 8378,\n },\n TokenData {\n kind: \"BitwiseNot\",\n text: \"\\\\\",\n start: 8378,\n end: 8379,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 8379,\n end: 8380,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8380,\n end: 8381,\n },\n TokenData {\n kind: \"Atom\",\n text: \"member_check\",\n start: 8381,\n end: 8393,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8393,\n end: 8394,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewNode\",\n start: 8394,\n end: 8401,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8401,\n end: 8402,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8402,\n end: 8403,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8403,\n end: 8404,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Node\",\n start: 8404,\n end: 8408,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8408,\n end: 8409,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 8409,\n end: 8413,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8413,\n end: 8414,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8414,\n end: 8415,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8415,\n end: 8416,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8416,\n end: 8417,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8417,\n end: 8419,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8419,\n end: 8431,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewPaths\",\n start: 8431,\n end: 8439,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8439,\n end: 8440,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 8440,\n end: 8441,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8441,\n end: 8443,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8443,\n end: 8445,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Constraint Logic Programming (CLP)\",\n start: 8445,\n end: 8481,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8481,\n end: 8483,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8483,\n end: 8485,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% N-Queens problem\",\n start: 8485,\n end: 8503,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8503,\n end: 8505,\n },\n TokenData {\n kind: \"Atom\",\n text: \"n_queens\",\n start: 8505,\n end: 8513,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8513,\n end: 8514,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 8514,\n end: 8515,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8515,\n end: 8516,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8516,\n end: 8517,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Queens\",\n start: 8517,\n end: 8523,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8523,\n end: 8524,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8524,\n end: 8525,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 8525,\n end: 8527,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8527,\n end: 8529,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8529,\n end: 8533,\n },\n TokenData {\n kind: \"Atom\",\n text: \"length\",\n start: 8533,\n end: 8539,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8539,\n end: 8540,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Queens\",\n start: 8540,\n end: 8546,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8546,\n end: 8547,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8547,\n end: 8548,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 8548,\n end: 8549,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8549,\n end: 8550,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8550,\n end: 8551,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8551,\n end: 8553,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8553,\n end: 8557,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Queens\",\n start: 8557,\n end: 8563,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8563,\n end: 8564,\n },\n TokenData {\n kind: \"Atom\",\n text: \"ins\",\n start: 8564,\n end: 8567,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8567,\n end: 8568,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1.\",\n start: 8568,\n end: 8570,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 8570,\n end: 8571,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 8571,\n end: 8572,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8572,\n end: 8573,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8573,\n end: 8575,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8575,\n end: 8579,\n },\n TokenData {\n kind: \"Atom\",\n text: \"safe_queens\",\n start: 8579,\n end: 8590,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8590,\n end: 8591,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Queens\",\n start: 8591,\n end: 8597,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8597,\n end: 8598,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 8598,\n end: 8599,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8599,\n end: 8601,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8601,\n end: 8603,\n },\n TokenData {\n kind: \"Atom\",\n text: \"safe_queens\",\n start: 8603,\n end: 8614,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8614,\n end: 8615,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8615,\n end: 8616,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8616,\n end: 8617,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8617,\n end: 8618,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 8618,\n end: 8619,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8619,\n end: 8621,\n },\n TokenData {\n kind: \"Atom\",\n text: \"safe_queens\",\n start: 8621,\n end: 8632,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8632,\n end: 8633,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8633,\n end: 8634,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Q\",\n start: 8634,\n end: 8635,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8635,\n end: 8636,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Qs\",\n start: 8636,\n end: 8638,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8638,\n end: 8639,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8639,\n end: 8640,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8640,\n end: 8641,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 8641,\n end: 8643,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8643,\n end: 8645,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8645,\n end: 8649,\n },\n TokenData {\n kind: \"Atom\",\n text: \"safe_queens\",\n start: 8649,\n end: 8660,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8660,\n end: 8661,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Qs\",\n start: 8661,\n end: 8663,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8663,\n end: 8664,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8664,\n end: 8665,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8665,\n end: 8667,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8667,\n end: 8671,\n },\n TokenData {\n kind: \"Atom\",\n text: \"no_attack\",\n start: 8671,\n end: 8680,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8680,\n end: 8681,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Q\",\n start: 8681,\n end: 8682,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8682,\n end: 8683,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8683,\n end: 8684,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Qs\",\n start: 8684,\n end: 8686,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8686,\n end: 8687,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8687,\n end: 8688,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 8688,\n end: 8689,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8689,\n end: 8690,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 8690,\n end: 8691,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8691,\n end: 8693,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8693,\n end: 8695,\n },\n TokenData {\n kind: \"Atom\",\n text: \"no_attack\",\n start: 8695,\n end: 8704,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8704,\n end: 8705,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 8705,\n end: 8706,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8706,\n end: 8707,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8707,\n end: 8708,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8708,\n end: 8709,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8709,\n end: 8710,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8710,\n end: 8711,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8711,\n end: 8712,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 8712,\n end: 8713,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8713,\n end: 8714,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 8714,\n end: 8715,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8715,\n end: 8717,\n },\n TokenData {\n kind: \"Atom\",\n text: \"no_attack\",\n start: 8717,\n end: 8726,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8726,\n end: 8727,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Q\",\n start: 8727,\n end: 8728,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8728,\n end: 8729,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8729,\n end: 8730,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8730,\n end: 8731,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Q1\",\n start: 8731,\n end: 8733,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8733,\n end: 8734,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Qs\",\n start: 8734,\n end: 8736,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 8736,\n end: 8737,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8737,\n end: 8738,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8738,\n end: 8739,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Dist\",\n start: 8739,\n end: 8743,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8743,\n end: 8744,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8744,\n end: 8745,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 8745,\n end: 8747,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8747,\n end: 8749,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8749,\n end: 8753,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Q\",\n start: 8753,\n end: 8754,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8754,\n end: 8755,\n },\n TokenData {\n kind: \"Error\",\n text: \"#\",\n start: 8755,\n end: 8756,\n },\n TokenData {\n kind: \"NotUnify\",\n text: \"\\\\=\",\n start: 8756,\n end: 8758,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8758,\n end: 8759,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Q1\",\n start: 8759,\n end: 8761,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8761,\n end: 8762,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8762,\n end: 8764,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8764,\n end: 8768,\n },\n TokenData {\n kind: \"Atom\",\n text: \"abs\",\n start: 8768,\n end: 8771,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8771,\n end: 8772,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Q\",\n start: 8772,\n end: 8773,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8773,\n end: 8774,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 8774,\n end: 8775,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8775,\n end: 8776,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Q1\",\n start: 8776,\n end: 8778,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8778,\n end: 8779,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8779,\n end: 8780,\n },\n TokenData {\n kind: \"Error\",\n text: \"#\",\n start: 8780,\n end: 8781,\n },\n TokenData {\n kind: \"NotUnify\",\n text: \"\\\\=\",\n start: 8781,\n end: 8783,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8783,\n end: 8784,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Dist\",\n start: 8784,\n end: 8788,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8788,\n end: 8789,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8789,\n end: 8791,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8791,\n end: 8795,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Dist1\",\n start: 8795,\n end: 8800,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8800,\n end: 8801,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 8801,\n end: 8803,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8803,\n end: 8804,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Dist\",\n start: 8804,\n end: 8808,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8808,\n end: 8809,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 8809,\n end: 8810,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8810,\n end: 8811,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 8811,\n end: 8812,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8812,\n end: 8813,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8813,\n end: 8815,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8815,\n end: 8819,\n },\n TokenData {\n kind: \"Atom\",\n text: \"no_attack\",\n start: 8819,\n end: 8828,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8828,\n end: 8829,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Q\",\n start: 8829,\n end: 8830,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8830,\n end: 8831,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8831,\n end: 8832,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Qs\",\n start: 8832,\n end: 8834,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8834,\n end: 8835,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8835,\n end: 8836,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Dist1\",\n start: 8836,\n end: 8841,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8841,\n end: 8842,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 8842,\n end: 8843,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8843,\n end: 8845,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8845,\n end: 8847,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Sudoku solver (simplified 4x4)\",\n start: 8847,\n end: 8879,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8879,\n end: 8881,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sudoku_4x4\",\n start: 8881,\n end: 8891,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8891,\n end: 8892,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Puzzle\",\n start: 8892,\n end: 8898,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8898,\n end: 8899,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8899,\n end: 8900,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 8900,\n end: 8902,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8902,\n end: 8904,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8904,\n end: 8908,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Puzzle\",\n start: 8908,\n end: 8914,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8914,\n end: 8915,\n },\n TokenData {\n kind: \"Unify\",\n text: \"=\",\n start: 8915,\n end: 8916,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8916,\n end: 8917,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 8917,\n end: 8918,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S11\",\n start: 8918,\n end: 8921,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8921,\n end: 8922,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8922,\n end: 8923,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S12\",\n start: 8923,\n end: 8926,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8926,\n end: 8927,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8927,\n end: 8928,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S13\",\n start: 8928,\n end: 8931,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8931,\n end: 8932,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8932,\n end: 8933,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S14\",\n start: 8933,\n end: 8936,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8936,\n end: 8937,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8937,\n end: 8939,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8939,\n end: 8953,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S21\",\n start: 8953,\n end: 8956,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8956,\n end: 8957,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8957,\n end: 8958,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S22\",\n start: 8958,\n end: 8961,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8961,\n end: 8962,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8962,\n end: 8963,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S23\",\n start: 8963,\n end: 8966,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8966,\n end: 8967,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8967,\n end: 8968,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S24\",\n start: 8968,\n end: 8971,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8971,\n end: 8972,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8972,\n end: 8974,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8974,\n end: 8988,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S31\",\n start: 8988,\n end: 8991,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8991,\n end: 8992,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8992,\n end: 8993,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S32\",\n start: 8993,\n end: 8996,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8996,\n end: 8997,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8997,\n end: 8998,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S33\",\n start: 8998,\n end: 9001,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9001,\n end: 9002,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9002,\n end: 9003,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S34\",\n start: 9003,\n end: 9006,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9006,\n end: 9007,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9007,\n end: 9009,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9009,\n end: 9023,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S41\",\n start: 9023,\n end: 9026,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9026,\n end: 9027,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9027,\n end: 9028,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S42\",\n start: 9028,\n end: 9031,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9031,\n end: 9032,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9032,\n end: 9033,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S43\",\n start: 9033,\n end: 9036,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9036,\n end: 9037,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9037,\n end: 9038,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S44\",\n start: 9038,\n end: 9041,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9041,\n end: 9042,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9042,\n end: 9043,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9043,\n end: 9045,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9045,\n end: 9049,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Puzzle\",\n start: 9049,\n end: 9055,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9055,\n end: 9056,\n },\n TokenData {\n kind: \"Atom\",\n text: \"ins\",\n start: 9056,\n end: 9059,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9059,\n end: 9060,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1.\",\n start: 9060,\n end: 9062,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9062,\n end: 9063,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 9063,\n end: 9064,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9064,\n end: 9065,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9065,\n end: 9067,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9067,\n end: 9071,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9071,\n end: 9073,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9073,\n end: 9077,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Row constraints\",\n start: 9077,\n end: 9094,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9094,\n end: 9096,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9096,\n end: 9100,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9100,\n end: 9113,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9113,\n end: 9114,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9114,\n end: 9115,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S11\",\n start: 9115,\n end: 9118,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9118,\n end: 9119,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9119,\n end: 9120,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S12\",\n start: 9120,\n end: 9123,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9123,\n end: 9124,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9124,\n end: 9125,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S13\",\n start: 9125,\n end: 9128,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9128,\n end: 9129,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9129,\n end: 9130,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S14\",\n start: 9130,\n end: 9133,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9133,\n end: 9134,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9134,\n end: 9135,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9135,\n end: 9136,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9136,\n end: 9138,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9138,\n end: 9142,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9142,\n end: 9155,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9155,\n end: 9156,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9156,\n end: 9157,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S21\",\n start: 9157,\n end: 9160,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9160,\n end: 9161,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9161,\n end: 9162,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S22\",\n start: 9162,\n end: 9165,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9165,\n end: 9166,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9166,\n end: 9167,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S23\",\n start: 9167,\n end: 9170,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9170,\n end: 9171,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9171,\n end: 9172,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S24\",\n start: 9172,\n end: 9175,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9175,\n end: 9176,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9176,\n end: 9177,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9177,\n end: 9178,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9178,\n end: 9180,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9180,\n end: 9184,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9184,\n end: 9197,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9197,\n end: 9198,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9198,\n end: 9199,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S31\",\n start: 9199,\n end: 9202,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9202,\n end: 9203,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9203,\n end: 9204,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S32\",\n start: 9204,\n end: 9207,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9207,\n end: 9208,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9208,\n end: 9209,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S33\",\n start: 9209,\n end: 9212,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9212,\n end: 9213,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9213,\n end: 9214,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S34\",\n start: 9214,\n end: 9217,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9217,\n end: 9218,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9218,\n end: 9219,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9219,\n end: 9220,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9220,\n end: 9222,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9222,\n end: 9226,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9226,\n end: 9239,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9239,\n end: 9240,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9240,\n end: 9241,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S41\",\n start: 9241,\n end: 9244,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9244,\n end: 9245,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9245,\n end: 9246,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S42\",\n start: 9246,\n end: 9249,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9249,\n end: 9250,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9250,\n end: 9251,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S43\",\n start: 9251,\n end: 9254,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9254,\n end: 9255,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9255,\n end: 9256,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S44\",\n start: 9256,\n end: 9259,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9259,\n end: 9260,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9260,\n end: 9261,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9261,\n end: 9262,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9262,\n end: 9264,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9264,\n end: 9268,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9268,\n end: 9270,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9270,\n end: 9274,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Column constraints\",\n start: 9274,\n end: 9294,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9294,\n end: 9296,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9296,\n end: 9300,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9300,\n end: 9313,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9313,\n end: 9314,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9314,\n end: 9315,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S11\",\n start: 9315,\n end: 9318,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9318,\n end: 9319,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9319,\n end: 9320,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S21\",\n start: 9320,\n end: 9323,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9323,\n end: 9324,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9324,\n end: 9325,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S31\",\n start: 9325,\n end: 9328,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9328,\n end: 9329,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9329,\n end: 9330,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S41\",\n start: 9330,\n end: 9333,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9333,\n end: 9334,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9334,\n end: 9335,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9335,\n end: 9336,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9336,\n end: 9338,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9338,\n end: 9342,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9342,\n end: 9355,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9355,\n end: 9356,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9356,\n end: 9357,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S12\",\n start: 9357,\n end: 9360,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9360,\n end: 9361,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9361,\n end: 9362,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S22\",\n start: 9362,\n end: 9365,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9365,\n end: 9366,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9366,\n end: 9367,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S32\",\n start: 9367,\n end: 9370,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9370,\n end: 9371,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9371,\n end: 9372,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S42\",\n start: 9372,\n end: 9375,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9375,\n end: 9376,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9376,\n end: 9377,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9377,\n end: 9378,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9378,\n end: 9380,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9380,\n end: 9384,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9384,\n end: 9397,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9397,\n end: 9398,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9398,\n end: 9399,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S13\",\n start: 9399,\n end: 9402,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9402,\n end: 9403,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9403,\n end: 9404,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S23\",\n start: 9404,\n end: 9407,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9407,\n end: 9408,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9408,\n end: 9409,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S33\",\n start: 9409,\n end: 9412,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9412,\n end: 9413,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9413,\n end: 9414,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S43\",\n start: 9414,\n end: 9417,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9417,\n end: 9418,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9418,\n end: 9419,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9419,\n end: 9420,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9420,\n end: 9422,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9422,\n end: 9426,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9426,\n end: 9439,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9439,\n end: 9440,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9440,\n end: 9441,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S14\",\n start: 9441,\n end: 9444,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9444,\n end: 9445,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9445,\n end: 9446,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S24\",\n start: 9446,\n end: 9449,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9449,\n end: 9450,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9450,\n end: 9451,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S34\",\n start: 9451,\n end: 9454,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9454,\n end: 9455,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9455,\n end: 9456,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S44\",\n start: 9456,\n end: 9459,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9459,\n end: 9460,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9460,\n end: 9461,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9461,\n end: 9462,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9462,\n end: 9464,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9464,\n end: 9468,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9468,\n end: 9470,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9470,\n end: 9474,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Box constraints\",\n start: 9474,\n end: 9491,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9491,\n end: 9493,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9493,\n end: 9497,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9497,\n end: 9510,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9510,\n end: 9511,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9511,\n end: 9512,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S11\",\n start: 9512,\n end: 9515,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9515,\n end: 9516,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9516,\n end: 9517,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S12\",\n start: 9517,\n end: 9520,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9520,\n end: 9521,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9521,\n end: 9522,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S21\",\n start: 9522,\n end: 9525,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9525,\n end: 9526,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9526,\n end: 9527,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S22\",\n start: 9527,\n end: 9530,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9530,\n end: 9531,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9531,\n end: 9532,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9532,\n end: 9533,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9533,\n end: 9535,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9535,\n end: 9539,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9539,\n end: 9552,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9552,\n end: 9553,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9553,\n end: 9554,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S13\",\n start: 9554,\n end: 9557,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9557,\n end: 9558,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9558,\n end: 9559,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S14\",\n start: 9559,\n end: 9562,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9562,\n end: 9563,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9563,\n end: 9564,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S23\",\n start: 9564,\n end: 9567,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9567,\n end: 9568,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9568,\n end: 9569,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S24\",\n start: 9569,\n end: 9572,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9572,\n end: 9573,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9573,\n end: 9574,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9574,\n end: 9575,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9575,\n end: 9577,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9577,\n end: 9581,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9581,\n end: 9594,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9594,\n end: 9595,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9595,\n end: 9596,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S31\",\n start: 9596,\n end: 9599,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9599,\n end: 9600,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9600,\n end: 9601,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S32\",\n start: 9601,\n end: 9604,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9604,\n end: 9605,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9605,\n end: 9606,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S41\",\n start: 9606,\n end: 9609,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9609,\n end: 9610,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9610,\n end: 9611,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S42\",\n start: 9611,\n end: 9614,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9614,\n end: 9615,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9615,\n end: 9616,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9616,\n end: 9617,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9617,\n end: 9619,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9619,\n end: 9623,\n },\n TokenData {\n kind: \"Atom\",\n text: \"all_different\",\n start: 9623,\n end: 9636,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9636,\n end: 9637,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9637,\n end: 9638,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S33\",\n start: 9638,\n end: 9641,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9641,\n end: 9642,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9642,\n end: 9643,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S34\",\n start: 9643,\n end: 9646,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9646,\n end: 9647,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9647,\n end: 9648,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S43\",\n start: 9648,\n end: 9651,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9651,\n end: 9652,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9652,\n end: 9653,\n },\n TokenData {\n kind: \"Variable\",\n text: \"S44\",\n start: 9653,\n end: 9656,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9656,\n end: 9657,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9657,\n end: 9658,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9658,\n end: 9659,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9659,\n end: 9661,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9661,\n end: 9665,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9665,\n end: 9667,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9667,\n end: 9671,\n },\n TokenData {\n kind: \"Atom\",\n text: \"label\",\n start: 9671,\n end: 9676,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9676,\n end: 9677,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Puzzle\",\n start: 9677,\n end: 9683,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9683,\n end: 9684,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9684,\n end: 9685,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9685,\n end: 9687,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9687,\n end: 9689,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Definite Clause Grammars (DCG)\",\n start: 9689,\n end: 9721,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9721,\n end: 9723,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9723,\n end: 9725,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Simple sentence parser\",\n start: 9725,\n end: 9749,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9749,\n end: 9751,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sentence\",\n start: 9751,\n end: 9759,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9759,\n end: 9760,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9760,\n end: 9761,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9761,\n end: 9762,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 9762,\n end: 9763,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9763,\n end: 9764,\n },\n TokenData {\n kind: \"Atom\",\n text: \"noun_phrase\",\n start: 9764,\n end: 9775,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9775,\n end: 9776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9776,\n end: 9777,\n },\n TokenData {\n kind: \"Atom\",\n text: \"verb_phrase\",\n start: 9777,\n end: 9788,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9788,\n end: 9789,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9789,\n end: 9791,\n },\n TokenData {\n kind: \"Atom\",\n text: \"noun_phrase\",\n start: 9791,\n end: 9802,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9802,\n end: 9803,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9803,\n end: 9804,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9804,\n end: 9805,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 9805,\n end: 9806,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9806,\n end: 9807,\n },\n TokenData {\n kind: \"Atom\",\n text: \"determiner\",\n start: 9807,\n end: 9817,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9817,\n end: 9818,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9818,\n end: 9819,\n },\n TokenData {\n kind: \"Atom\",\n text: \"noun\",\n start: 9819,\n end: 9823,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9823,\n end: 9824,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9824,\n end: 9826,\n },\n TokenData {\n kind: \"Atom\",\n text: \"noun_phrase\",\n start: 9826,\n end: 9837,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9837,\n end: 9838,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9838,\n end: 9839,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9839,\n end: 9840,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 9840,\n end: 9841,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9841,\n end: 9842,\n },\n TokenData {\n kind: \"Atom\",\n text: \"noun\",\n start: 9842,\n end: 9846,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9846,\n end: 9847,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9847,\n end: 9849,\n },\n TokenData {\n kind: \"Atom\",\n text: \"verb_phrase\",\n start: 9849,\n end: 9860,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9860,\n end: 9861,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9861,\n end: 9862,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9862,\n end: 9863,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 9863,\n end: 9864,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9864,\n end: 9865,\n },\n TokenData {\n kind: \"Atom\",\n text: \"verb\",\n start: 9865,\n end: 9869,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9869,\n end: 9870,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9870,\n end: 9871,\n },\n TokenData {\n kind: \"Atom\",\n text: \"noun_phrase\",\n start: 9871,\n end: 9882,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9882,\n end: 9883,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9883,\n end: 9885,\n },\n TokenData {\n kind: \"Atom\",\n text: \"verb_phrase\",\n start: 9885,\n end: 9896,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9896,\n end: 9897,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9897,\n end: 9898,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9898,\n end: 9899,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 9899,\n end: 9900,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9900,\n end: 9901,\n },\n TokenData {\n kind: \"Atom\",\n text: \"verb\",\n start: 9901,\n end: 9905,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9905,\n end: 9906,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9906,\n end: 9908,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9908,\n end: 9910,\n },\n TokenData {\n kind: \"Atom\",\n text: \"determiner\",\n start: 9910,\n end: 9920,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9920,\n end: 9921,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9921,\n end: 9922,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9922,\n end: 9923,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 9923,\n end: 9924,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9924,\n end: 9925,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9925,\n end: 9926,\n },\n TokenData {\n kind: \"Atom\",\n text: \"the\",\n start: 9926,\n end: 9929,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9929,\n end: 9930,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9930,\n end: 9931,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9931,\n end: 9933,\n },\n TokenData {\n kind: \"Atom\",\n text: \"determiner\",\n start: 9933,\n end: 9943,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9943,\n end: 9944,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9944,\n end: 9945,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9945,\n end: 9946,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 9946,\n end: 9947,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9947,\n end: 9948,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9948,\n end: 9949,\n },\n TokenData {\n kind: \"Atom\",\n text: \"a\",\n start: 9949,\n end: 9950,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9950,\n end: 9951,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9951,\n end: 9952,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9952,\n end: 9954,\n },\n TokenData {\n kind: \"Atom\",\n text: \"determiner\",\n start: 9954,\n end: 9964,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9964,\n end: 9965,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9965,\n end: 9966,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9966,\n end: 9967,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 9967,\n end: 9968,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9968,\n end: 9969,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9969,\n end: 9970,\n },\n TokenData {\n kind: \"Atom\",\n text: \"an\",\n start: 9970,\n end: 9972,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9972,\n end: 9973,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9973,\n end: 9974,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9974,\n end: 9976,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9976,\n end: 9978,\n },\n TokenData {\n kind: \"Atom\",\n text: \"noun\",\n start: 9978,\n end: 9982,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9982,\n end: 9983,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9983,\n end: 9984,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 9984,\n end: 9985,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 9985,\n end: 9986,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9986,\n end: 9987,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9987,\n end: 9988,\n },\n TokenData {\n kind: \"Atom\",\n text: \"cat\",\n start: 9988,\n end: 9991,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9991,\n end: 9992,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 9992,\n end: 9993,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9993,\n end: 9995,\n },\n TokenData {\n kind: \"Atom\",\n text: \"noun\",\n start: 9995,\n end: 9999,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9999,\n end: 10000,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10000,\n end: 10001,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10001,\n end: 10002,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10002,\n end: 10003,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10003,\n end: 10004,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10004,\n end: 10005,\n },\n TokenData {\n kind: \"Atom\",\n text: \"dog\",\n start: 10005,\n end: 10008,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10008,\n end: 10009,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10009,\n end: 10010,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10010,\n end: 10012,\n },\n TokenData {\n kind: \"Atom\",\n text: \"noun\",\n start: 10012,\n end: 10016,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10016,\n end: 10017,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10017,\n end: 10018,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10018,\n end: 10019,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10019,\n end: 10020,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10020,\n end: 10021,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10021,\n end: 10022,\n },\n TokenData {\n kind: \"Atom\",\n text: \"mouse\",\n start: 10022,\n end: 10027,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10027,\n end: 10028,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10028,\n end: 10029,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10029,\n end: 10031,\n },\n TokenData {\n kind: \"Atom\",\n text: \"noun\",\n start: 10031,\n end: 10035,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10035,\n end: 10036,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10036,\n end: 10037,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10037,\n end: 10038,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10038,\n end: 10039,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10039,\n end: 10040,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10040,\n end: 10041,\n },\n TokenData {\n kind: \"Atom\",\n text: \"cheese\",\n start: 10041,\n end: 10047,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10047,\n end: 10048,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10048,\n end: 10049,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10049,\n end: 10051,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10051,\n end: 10053,\n },\n TokenData {\n kind: \"Atom\",\n text: \"verb\",\n start: 10053,\n end: 10057,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10057,\n end: 10058,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10058,\n end: 10059,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10059,\n end: 10060,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10060,\n end: 10061,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10061,\n end: 10062,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10062,\n end: 10063,\n },\n TokenData {\n kind: \"Atom\",\n text: \"chases\",\n start: 10063,\n end: 10069,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10069,\n end: 10070,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10070,\n end: 10071,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10071,\n end: 10073,\n },\n TokenData {\n kind: \"Atom\",\n text: \"verb\",\n start: 10073,\n end: 10077,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10077,\n end: 10078,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10078,\n end: 10079,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10079,\n end: 10080,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10080,\n end: 10081,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10081,\n end: 10082,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10082,\n end: 10083,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sees\",\n start: 10083,\n end: 10087,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10087,\n end: 10088,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10088,\n end: 10089,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10089,\n end: 10091,\n },\n TokenData {\n kind: \"Atom\",\n text: \"verb\",\n start: 10091,\n end: 10095,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10095,\n end: 10096,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10096,\n end: 10097,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10097,\n end: 10098,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10098,\n end: 10099,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10099,\n end: 10100,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10100,\n end: 10101,\n },\n TokenData {\n kind: \"Atom\",\n text: \"eats\",\n start: 10101,\n end: 10105,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10105,\n end: 10106,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10106,\n end: 10107,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10107,\n end: 10109,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10109,\n end: 10111,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Number parser\",\n start: 10111,\n end: 10126,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10126,\n end: 10128,\n },\n TokenData {\n kind: \"Atom\",\n text: \"number\",\n start: 10128,\n end: 10134,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10134,\n end: 10135,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 10135,\n end: 10136,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10136,\n end: 10137,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10137,\n end: 10138,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10138,\n end: 10139,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10139,\n end: 10140,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10140,\n end: 10141,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10141,\n end: 10142,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10142,\n end: 10143,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 10143,\n end: 10144,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10144,\n end: 10145,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10145,\n end: 10146,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10146,\n end: 10147,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 10147,\n end: 10148,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10148,\n end: 10149,\n },\n TokenData {\n kind: \"Atom\",\n text: \"number\",\n start: 10149,\n end: 10155,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10155,\n end: 10156,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 10156,\n end: 10157,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10157,\n end: 10158,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10158,\n end: 10159,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 10159,\n end: 10160,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10160,\n end: 10161,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10161,\n end: 10163,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10163,\n end: 10165,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Expression parser\",\n start: 10165,\n end: 10184,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10184,\n end: 10186,\n },\n TokenData {\n kind: \"Atom\",\n text: \"expr\",\n start: 10186,\n end: 10190,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10190,\n end: 10191,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10191,\n end: 10192,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10192,\n end: 10193,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10193,\n end: 10194,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10194,\n end: 10195,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10195,\n end: 10196,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10196,\n end: 10197,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10197,\n end: 10198,\n },\n TokenData {\n kind: \"Atom\",\n text: \"term\",\n start: 10198,\n end: 10202,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10202,\n end: 10203,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10203,\n end: 10204,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10204,\n end: 10205,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10205,\n end: 10206,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10206,\n end: 10208,\n },\n TokenData {\n kind: \"Atom\",\n text: \"expr\",\n start: 10208,\n end: 10212,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10212,\n end: 10213,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10213,\n end: 10214,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10214,\n end: 10215,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10215,\n end: 10216,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10216,\n end: 10217,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10217,\n end: 10218,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10218,\n end: 10219,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10219,\n end: 10220,\n },\n TokenData {\n kind: \"Atom\",\n text: \"term\",\n start: 10220,\n end: 10224,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10224,\n end: 10225,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 10225,\n end: 10226,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10226,\n end: 10227,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10227,\n end: 10228,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10228,\n end: 10229,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10229,\n end: 10230,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10230,\n end: 10231,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10231,\n end: 10232,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10232,\n end: 10233,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10233,\n end: 10234,\n },\n TokenData {\n kind: \"Atom\",\n text: \"expr\",\n start: 10234,\n end: 10238,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10238,\n end: 10239,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 10239,\n end: 10240,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10240,\n end: 10241,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10241,\n end: 10242,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10242,\n end: 10243,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 10243,\n end: 10244,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10244,\n end: 10245,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10245,\n end: 10246,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10246,\n end: 10247,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 10247,\n end: 10249,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10249,\n end: 10250,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 10250,\n end: 10251,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10251,\n end: 10252,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10252,\n end: 10253,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10253,\n end: 10254,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 10254,\n end: 10255,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10255,\n end: 10256,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 10256,\n end: 10257,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10257,\n end: 10258,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10258,\n end: 10260,\n },\n TokenData {\n kind: \"Atom\",\n text: \"expr\",\n start: 10260,\n end: 10264,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10264,\n end: 10265,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10265,\n end: 10266,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10266,\n end: 10267,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10267,\n end: 10268,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10268,\n end: 10269,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10269,\n end: 10270,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10270,\n end: 10271,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10271,\n end: 10272,\n },\n TokenData {\n kind: \"Atom\",\n text: \"term\",\n start: 10272,\n end: 10276,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10276,\n end: 10277,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 10277,\n end: 10278,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10278,\n end: 10279,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10279,\n end: 10280,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10280,\n end: 10281,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10281,\n end: 10282,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10282,\n end: 10283,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10283,\n end: 10284,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10284,\n end: 10285,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10285,\n end: 10286,\n },\n TokenData {\n kind: \"Atom\",\n text: \"expr\",\n start: 10286,\n end: 10290,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10290,\n end: 10291,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 10291,\n end: 10292,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10292,\n end: 10293,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10293,\n end: 10294,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10294,\n end: 10295,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 10295,\n end: 10296,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10296,\n end: 10297,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10297,\n end: 10298,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10298,\n end: 10299,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 10299,\n end: 10301,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10301,\n end: 10302,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 10302,\n end: 10303,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10303,\n end: 10304,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10304,\n end: 10305,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10305,\n end: 10306,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 10306,\n end: 10307,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10307,\n end: 10308,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 10308,\n end: 10309,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10309,\n end: 10310,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10310,\n end: 10312,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10312,\n end: 10314,\n },\n TokenData {\n kind: \"Atom\",\n text: \"term\",\n start: 10314,\n end: 10318,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10318,\n end: 10319,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10319,\n end: 10320,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10320,\n end: 10321,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10321,\n end: 10322,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10322,\n end: 10323,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10323,\n end: 10324,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10324,\n end: 10325,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10325,\n end: 10326,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factor\",\n start: 10326,\n end: 10332,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10332,\n end: 10333,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10333,\n end: 10334,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10334,\n end: 10335,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10335,\n end: 10336,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10336,\n end: 10338,\n },\n TokenData {\n kind: \"Atom\",\n text: \"term\",\n start: 10338,\n end: 10342,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10342,\n end: 10343,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10343,\n end: 10344,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10344,\n end: 10345,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10345,\n end: 10346,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10346,\n end: 10347,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10347,\n end: 10348,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10348,\n end: 10349,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10349,\n end: 10350,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factor\",\n start: 10350,\n end: 10356,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10356,\n end: 10357,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 10357,\n end: 10358,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10358,\n end: 10359,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10359,\n end: 10360,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10360,\n end: 10361,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10361,\n end: 10362,\n },\n TokenData {\n kind: \"Multiply\",\n text: \"*\",\n start: 10362,\n end: 10363,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10363,\n end: 10364,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10364,\n end: 10365,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10365,\n end: 10366,\n },\n TokenData {\n kind: \"Atom\",\n text: \"term\",\n start: 10366,\n end: 10370,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10370,\n end: 10371,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 10371,\n end: 10372,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10372,\n end: 10373,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10373,\n end: 10374,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10374,\n end: 10375,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 10375,\n end: 10376,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10376,\n end: 10377,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10377,\n end: 10378,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10378,\n end: 10379,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 10379,\n end: 10381,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10381,\n end: 10382,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 10382,\n end: 10383,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10383,\n end: 10384,\n },\n TokenData {\n kind: \"Multiply\",\n text: \"*\",\n start: 10384,\n end: 10385,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10385,\n end: 10386,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 10386,\n end: 10387,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10387,\n end: 10388,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 10388,\n end: 10389,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10389,\n end: 10390,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10390,\n end: 10392,\n },\n TokenData {\n kind: \"Atom\",\n text: \"term\",\n start: 10392,\n end: 10396,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10396,\n end: 10397,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10397,\n end: 10398,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10398,\n end: 10399,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10399,\n end: 10400,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10400,\n end: 10401,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10401,\n end: 10402,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10402,\n end: 10403,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10403,\n end: 10404,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factor\",\n start: 10404,\n end: 10410,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10410,\n end: 10411,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 10411,\n end: 10412,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10412,\n end: 10413,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10413,\n end: 10414,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10414,\n end: 10415,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10415,\n end: 10416,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 10416,\n end: 10417,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10417,\n end: 10418,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10418,\n end: 10419,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10419,\n end: 10420,\n },\n TokenData {\n kind: \"Atom\",\n text: \"term\",\n start: 10420,\n end: 10424,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10424,\n end: 10425,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 10425,\n end: 10426,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10426,\n end: 10427,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10427,\n end: 10428,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10428,\n end: 10429,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 10429,\n end: 10430,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10430,\n end: 10431,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10431,\n end: 10432,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10432,\n end: 10433,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 10433,\n end: 10435,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10435,\n end: 10436,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 10436,\n end: 10437,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10437,\n end: 10438,\n },\n TokenData {\n kind: \"Divide\",\n text: \"/\",\n start: 10438,\n end: 10439,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10439,\n end: 10440,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 10440,\n end: 10441,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10441,\n end: 10442,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 10442,\n end: 10443,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10443,\n end: 10444,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10444,\n end: 10446,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10446,\n end: 10448,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factor\",\n start: 10448,\n end: 10454,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10454,\n end: 10455,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10455,\n end: 10456,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10456,\n end: 10457,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10457,\n end: 10458,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10458,\n end: 10459,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10459,\n end: 10460,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10460,\n end: 10461,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10461,\n end: 10462,\n },\n TokenData {\n kind: \"Atom\",\n text: \"number\",\n start: 10462,\n end: 10468,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10468,\n end: 10469,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10469,\n end: 10470,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10470,\n end: 10471,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10471,\n end: 10472,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10472,\n end: 10474,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factor\",\n start: 10474,\n end: 10480,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10480,\n end: 10481,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10481,\n end: 10482,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10482,\n end: 10483,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10483,\n end: 10484,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10484,\n end: 10485,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 10485,\n end: 10486,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 10486,\n end: 10487,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10487,\n end: 10488,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10488,\n end: 10489,\n },\n TokenData {\n kind: \"String\",\n text: \"'('\",\n start: 10489,\n end: 10492,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10492,\n end: 10493,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10493,\n end: 10494,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10494,\n end: 10495,\n },\n TokenData {\n kind: \"Atom\",\n text: \"expr\",\n start: 10495,\n end: 10499,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10499,\n end: 10500,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 10500,\n end: 10501,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10501,\n end: 10502,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10502,\n end: 10503,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10503,\n end: 10504,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10504,\n end: 10505,\n },\n TokenData {\n kind: \"String\",\n text: \"')'\",\n start: 10505,\n end: 10508,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10508,\n end: 10509,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10509,\n end: 10510,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10510,\n end: 10512,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10512,\n end: 10514,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Meta-predicates and higher-order programming\",\n start: 10514,\n end: 10560,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10560,\n end: 10562,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10562,\n end: 10564,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Map predicate over list\",\n start: 10564,\n end: 10589,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10589,\n end: 10591,\n },\n TokenData {\n kind: \"Atom\",\n text: \"map_list\",\n start: 10591,\n end: 10599,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10599,\n end: 10600,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 10600,\n end: 10601,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10601,\n end: 10602,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10602,\n end: 10603,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10603,\n end: 10604,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10604,\n end: 10605,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10605,\n end: 10606,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10606,\n end: 10607,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10607,\n end: 10608,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10608,\n end: 10609,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10609,\n end: 10610,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10610,\n end: 10611,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10611,\n end: 10613,\n },\n TokenData {\n kind: \"Atom\",\n text: \"map_list\",\n start: 10613,\n end: 10621,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10621,\n end: 10622,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 10622,\n end: 10626,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10626,\n end: 10627,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10627,\n end: 10628,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10628,\n end: 10629,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 10629,\n end: 10630,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 10630,\n end: 10631,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 10631,\n end: 10632,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10632,\n end: 10633,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10633,\n end: 10634,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10634,\n end: 10635,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10635,\n end: 10636,\n },\n TokenData {\n kind: \"Variable\",\n text: \"MH\",\n start: 10636,\n end: 10638,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 10638,\n end: 10639,\n },\n TokenData {\n kind: \"Variable\",\n text: \"MT\",\n start: 10639,\n end: 10641,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10641,\n end: 10642,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10642,\n end: 10643,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10643,\n end: 10644,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 10644,\n end: 10646,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10646,\n end: 10648,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10648,\n end: 10652,\n },\n TokenData {\n kind: \"Atom\",\n text: \"call\",\n start: 10652,\n end: 10656,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10656,\n end: 10657,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 10657,\n end: 10661,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10661,\n end: 10662,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10662,\n end: 10663,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 10663,\n end: 10664,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10664,\n end: 10665,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10665,\n end: 10666,\n },\n TokenData {\n kind: \"Variable\",\n text: \"MH\",\n start: 10666,\n end: 10668,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10668,\n end: 10669,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10669,\n end: 10670,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10670,\n end: 10672,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10672,\n end: 10676,\n },\n TokenData {\n kind: \"Atom\",\n text: \"map_list\",\n start: 10676,\n end: 10684,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10684,\n end: 10685,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 10685,\n end: 10689,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10689,\n end: 10690,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10690,\n end: 10691,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 10691,\n end: 10692,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10692,\n end: 10693,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10693,\n end: 10694,\n },\n TokenData {\n kind: \"Variable\",\n text: \"MT\",\n start: 10694,\n end: 10696,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10696,\n end: 10697,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10697,\n end: 10698,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10698,\n end: 10700,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10700,\n end: 10702,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Filter list elements\",\n start: 10702,\n end: 10724,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10724,\n end: 10726,\n },\n TokenData {\n kind: \"Atom\",\n text: \"filter_list\",\n start: 10726,\n end: 10737,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10737,\n end: 10738,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 10738,\n end: 10739,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10739,\n end: 10740,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10740,\n end: 10741,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10741,\n end: 10742,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10742,\n end: 10743,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10743,\n end: 10744,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10744,\n end: 10745,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10745,\n end: 10746,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10746,\n end: 10747,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10747,\n end: 10748,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10748,\n end: 10749,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10749,\n end: 10751,\n },\n TokenData {\n kind: \"Atom\",\n text: \"filter_list\",\n start: 10751,\n end: 10762,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10762,\n end: 10763,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 10763,\n end: 10767,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10767,\n end: 10768,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10768,\n end: 10769,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10769,\n end: 10770,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 10770,\n end: 10771,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 10771,\n end: 10772,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 10772,\n end: 10773,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10773,\n end: 10774,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10774,\n end: 10775,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10775,\n end: 10776,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10776,\n end: 10777,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 10777,\n end: 10778,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 10778,\n end: 10779,\n },\n TokenData {\n kind: \"Variable\",\n text: \"FT\",\n start: 10779,\n end: 10781,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10781,\n end: 10782,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10782,\n end: 10783,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10783,\n end: 10784,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 10784,\n end: 10786,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10786,\n end: 10788,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10788,\n end: 10792,\n },\n TokenData {\n kind: \"Atom\",\n text: \"call\",\n start: 10792,\n end: 10796,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10796,\n end: 10797,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 10797,\n end: 10801,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10801,\n end: 10802,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10802,\n end: 10803,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 10803,\n end: 10804,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10804,\n end: 10805,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10805,\n end: 10806,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10806,\n end: 10807,\n },\n TokenData {\n kind: \"Cut\",\n text: \"!\",\n start: 10807,\n end: 10808,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10808,\n end: 10809,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10809,\n end: 10811,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10811,\n end: 10815,\n },\n TokenData {\n kind: \"Atom\",\n text: \"filter_list\",\n start: 10815,\n end: 10826,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10826,\n end: 10827,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 10827,\n end: 10831,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10831,\n end: 10832,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10832,\n end: 10833,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 10833,\n end: 10834,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10834,\n end: 10835,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10835,\n end: 10836,\n },\n TokenData {\n kind: \"Variable\",\n text: \"FT\",\n start: 10836,\n end: 10838,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10838,\n end: 10839,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10839,\n end: 10840,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10840,\n end: 10842,\n },\n TokenData {\n kind: \"Atom\",\n text: \"filter_list\",\n start: 10842,\n end: 10853,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10853,\n end: 10854,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 10854,\n end: 10858,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10858,\n end: 10859,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10859,\n end: 10860,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10860,\n end: 10861,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 10861,\n end: 10862,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 10862,\n end: 10863,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 10863,\n end: 10864,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10864,\n end: 10865,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10865,\n end: 10866,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10866,\n end: 10867,\n },\n TokenData {\n kind: \"Variable\",\n text: \"FT\",\n start: 10867,\n end: 10869,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10869,\n end: 10870,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10870,\n end: 10871,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 10871,\n end: 10873,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10873,\n end: 10875,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10875,\n end: 10879,\n },\n TokenData {\n kind: \"Atom\",\n text: \"filter_list\",\n start: 10879,\n end: 10890,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10890,\n end: 10891,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 10891,\n end: 10895,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10895,\n end: 10896,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10896,\n end: 10897,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 10897,\n end: 10898,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10898,\n end: 10899,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10899,\n end: 10900,\n },\n TokenData {\n kind: \"Variable\",\n text: \"FT\",\n start: 10900,\n end: 10902,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10902,\n end: 10903,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10903,\n end: 10904,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10904,\n end: 10906,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10906,\n end: 10908,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Fold (reduce) list\",\n start: 10908,\n end: 10928,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10928,\n end: 10930,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fold_left\",\n start: 10930,\n end: 10939,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10939,\n end: 10940,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 10940,\n end: 10941,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10941,\n end: 10942,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10942,\n end: 10943,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Acc\",\n start: 10943,\n end: 10946,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10946,\n end: 10947,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10947,\n end: 10948,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10948,\n end: 10949,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10949,\n end: 10950,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10950,\n end: 10951,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10951,\n end: 10952,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Acc\",\n start: 10952,\n end: 10955,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10955,\n end: 10956,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 10956,\n end: 10957,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10957,\n end: 10959,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fold_left\",\n start: 10959,\n end: 10968,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10968,\n end: 10969,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 10969,\n end: 10973,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10973,\n end: 10974,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10974,\n end: 10975,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Acc\",\n start: 10975,\n end: 10978,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10978,\n end: 10979,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10979,\n end: 10980,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10980,\n end: 10981,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 10981,\n end: 10982,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 10982,\n end: 10983,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 10983,\n end: 10984,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10984,\n end: 10985,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 10985,\n end: 10986,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10986,\n end: 10987,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Result\",\n start: 10987,\n end: 10993,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10993,\n end: 10994,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10994,\n end: 10995,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 10995,\n end: 10997,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10997,\n end: 10999,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10999,\n end: 11003,\n },\n TokenData {\n kind: \"Atom\",\n text: \"call\",\n start: 11003,\n end: 11007,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11007,\n end: 11008,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 11008,\n end: 11012,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11012,\n end: 11013,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11013,\n end: 11014,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Acc\",\n start: 11014,\n end: 11017,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11017,\n end: 11018,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11018,\n end: 11019,\n },\n TokenData {\n kind: \"Variable\",\n text: \"H\",\n start: 11019,\n end: 11020,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11020,\n end: 11021,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11021,\n end: 11022,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewAcc\",\n start: 11022,\n end: 11028,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11028,\n end: 11029,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11029,\n end: 11030,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11030,\n end: 11032,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11032,\n end: 11036,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fold_left\",\n start: 11036,\n end: 11045,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11045,\n end: 11046,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Pred\",\n start: 11046,\n end: 11050,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11050,\n end: 11051,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11051,\n end: 11052,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NewAcc\",\n start: 11052,\n end: 11058,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11058,\n end: 11059,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11059,\n end: 11060,\n },\n TokenData {\n kind: \"Variable\",\n text: \"T\",\n start: 11060,\n end: 11061,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11061,\n end: 11062,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11062,\n end: 11063,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Result\",\n start: 11063,\n end: 11069,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11069,\n end: 11070,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 11070,\n end: 11071,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11071,\n end: 11073,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11073,\n end: 11075,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Utility predicates for higher-order operations\",\n start: 11075,\n end: 11123,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11123,\n end: 11125,\n },\n TokenData {\n kind: \"Atom\",\n text: \"double\",\n start: 11125,\n end: 11131,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11131,\n end: 11132,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 11132,\n end: 11133,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11133,\n end: 11134,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11134,\n end: 11135,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 11135,\n end: 11136,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11136,\n end: 11137,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11137,\n end: 11138,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11138,\n end: 11140,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11140,\n end: 11141,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 11141,\n end: 11142,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11142,\n end: 11143,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 11143,\n end: 11145,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11145,\n end: 11146,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 11146,\n end: 11147,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11147,\n end: 11148,\n },\n TokenData {\n kind: \"Multiply\",\n text: \"*\",\n start: 11148,\n end: 11149,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11149,\n end: 11150,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2.\",\n start: 11150,\n end: 11152,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11152,\n end: 11154,\n },\n TokenData {\n kind: \"Atom\",\n text: \"square\",\n start: 11154,\n end: 11160,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11160,\n end: 11161,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 11161,\n end: 11162,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11162,\n end: 11163,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11163,\n end: 11164,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 11164,\n end: 11165,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11165,\n end: 11166,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11166,\n end: 11167,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11167,\n end: 11169,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11169,\n end: 11170,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 11170,\n end: 11171,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11171,\n end: 11172,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 11172,\n end: 11174,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11174,\n end: 11175,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 11175,\n end: 11176,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11176,\n end: 11177,\n },\n TokenData {\n kind: \"Multiply\",\n text: \"*\",\n start: 11177,\n end: 11178,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11178,\n end: 11179,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 11179,\n end: 11180,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 11180,\n end: 11181,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11181,\n end: 11183,\n },\n TokenData {\n kind: \"Atom\",\n text: \"is_even\",\n start: 11183,\n end: 11190,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11190,\n end: 11191,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 11191,\n end: 11192,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11192,\n end: 11193,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11193,\n end: 11194,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11194,\n end: 11196,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11196,\n end: 11197,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 11197,\n end: 11198,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11198,\n end: 11199,\n },\n TokenData {\n kind: \"Modulo\",\n text: \"mod\",\n start: 11199,\n end: 11202,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11202,\n end: 11203,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 11203,\n end: 11204,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11204,\n end: 11205,\n },\n TokenData {\n kind: \"ArithEqual\",\n text: \"=:=\",\n start: 11205,\n end: 11208,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11208,\n end: 11209,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0.\",\n start: 11209,\n end: 11211,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11211,\n end: 11213,\n },\n TokenData {\n kind: \"Atom\",\n text: \"add\",\n start: 11213,\n end: 11216,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11216,\n end: 11217,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 11217,\n end: 11218,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11218,\n end: 11219,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11219,\n end: 11220,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 11220,\n end: 11221,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11221,\n end: 11222,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11222,\n end: 11223,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 11223,\n end: 11224,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11224,\n end: 11225,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11225,\n end: 11226,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11226,\n end: 11228,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11228,\n end: 11229,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Z\",\n start: 11229,\n end: 11230,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11230,\n end: 11231,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 11231,\n end: 11233,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11233,\n end: 11234,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 11234,\n end: 11235,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11235,\n end: 11236,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 11236,\n end: 11237,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11237,\n end: 11238,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 11238,\n end: 11239,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 11239,\n end: 11240,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11240,\n end: 11242,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11242,\n end: 11244,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Database manipulation\",\n start: 11244,\n end: 11267,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11267,\n end: 11269,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11269,\n end: 11271,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Assert and retract facts dynamically\",\n start: 11271,\n end: 11309,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11309,\n end: 11311,\n },\n TokenData {\n kind: \"Atom\",\n text: \"add_fact\",\n start: 11311,\n end: 11319,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11319,\n end: 11320,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Fact\",\n start: 11320,\n end: 11324,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11324,\n end: 11325,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11325,\n end: 11326,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11326,\n end: 11328,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11328,\n end: 11330,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11330,\n end: 11334,\n },\n TokenData {\n kind: \"Atom\",\n text: \"assertz\",\n start: 11334,\n end: 11341,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11341,\n end: 11342,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fact\",\n start: 11342,\n end: 11346,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11346,\n end: 11347,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Fact\",\n start: 11347,\n end: 11351,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11351,\n end: 11352,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11352,\n end: 11353,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 11353,\n end: 11354,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11354,\n end: 11356,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11356,\n end: 11358,\n },\n TokenData {\n kind: \"Atom\",\n text: \"remove_fact\",\n start: 11358,\n end: 11369,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11369,\n end: 11370,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Fact\",\n start: 11370,\n end: 11374,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11374,\n end: 11375,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11375,\n end: 11376,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11376,\n end: 11378,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11378,\n end: 11380,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11380,\n end: 11384,\n },\n TokenData {\n kind: \"Atom\",\n text: \"retract\",\n start: 11384,\n end: 11391,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11391,\n end: 11392,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fact\",\n start: 11392,\n end: 11396,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11396,\n end: 11397,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Fact\",\n start: 11397,\n end: 11401,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11401,\n end: 11402,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11402,\n end: 11403,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 11403,\n end: 11404,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11404,\n end: 11406,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11406,\n end: 11408,\n },\n TokenData {\n kind: \"Atom\",\n text: \"list_facts\",\n start: 11408,\n end: 11418,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11418,\n end: 11419,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Facts\",\n start: 11419,\n end: 11424,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11424,\n end: 11425,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11425,\n end: 11426,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11426,\n end: 11428,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11428,\n end: 11430,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11430,\n end: 11434,\n },\n TokenData {\n kind: \"Atom\",\n text: \"findall\",\n start: 11434,\n end: 11441,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11441,\n end: 11442,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 11442,\n end: 11443,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11443,\n end: 11444,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11444,\n end: 11445,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fact\",\n start: 11445,\n end: 11449,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11449,\n end: 11450,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F\",\n start: 11450,\n end: 11451,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11451,\n end: 11452,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11452,\n end: 11453,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11453,\n end: 11454,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Facts\",\n start: 11454,\n end: 11459,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11459,\n end: 11460,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 11460,\n end: 11461,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11461,\n end: 11463,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11463,\n end: 11465,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Puzzle solving\",\n start: 11465,\n end: 11481,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11481,\n end: 11483,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11483,\n end: 11485,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Tower of Hanoi\",\n start: 11485,\n end: 11501,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11501,\n end: 11503,\n },\n TokenData {\n kind: \"Atom\",\n text: \"hanoi\",\n start: 11503,\n end: 11508,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11508,\n end: 11509,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 11509,\n end: 11510,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11510,\n end: 11511,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11511,\n end: 11512,\n },\n TokenData {\n kind: \"Variable\",\n text: \"A\",\n start: 11512,\n end: 11513,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11513,\n end: 11514,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11514,\n end: 11515,\n },\n TokenData {\n kind: \"Variable\",\n text: \"B\",\n start: 11515,\n end: 11516,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11516,\n end: 11517,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11517,\n end: 11518,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 11518,\n end: 11519,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11519,\n end: 11520,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11520,\n end: 11521,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11521,\n end: 11523,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11523,\n end: 11525,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11525,\n end: 11529,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 11529,\n end: 11535,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11535,\n end: 11536,\n },\n TokenData {\n kind: \"String\",\n text: \"'Move disk from ~w to ~w~n'\",\n start: 11536,\n end: 11563,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11563,\n end: 11564,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11564,\n end: 11565,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 11565,\n end: 11566,\n },\n TokenData {\n kind: \"Variable\",\n text: \"A\",\n start: 11566,\n end: 11567,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11567,\n end: 11568,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11568,\n end: 11569,\n },\n TokenData {\n kind: \"Variable\",\n text: \"B\",\n start: 11569,\n end: 11570,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 11570,\n end: 11571,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11571,\n end: 11572,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 11572,\n end: 11573,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11573,\n end: 11575,\n },\n TokenData {\n kind: \"Atom\",\n text: \"hanoi\",\n start: 11575,\n end: 11580,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11580,\n end: 11581,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 11581,\n end: 11582,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11582,\n end: 11583,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11583,\n end: 11584,\n },\n TokenData {\n kind: \"Variable\",\n text: \"A\",\n start: 11584,\n end: 11585,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11585,\n end: 11586,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11586,\n end: 11587,\n },\n TokenData {\n kind: \"Variable\",\n text: \"B\",\n start: 11587,\n end: 11588,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11588,\n end: 11589,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11589,\n end: 11590,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C\",\n start: 11590,\n end: 11591,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11591,\n end: 11592,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11592,\n end: 11593,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11593,\n end: 11595,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11595,\n end: 11597,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11597,\n end: 11601,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 11601,\n end: 11602,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11602,\n end: 11603,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 11603,\n end: 11604,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11604,\n end: 11605,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 11605,\n end: 11606,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11606,\n end: 11607,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11607,\n end: 11609,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11609,\n end: 11613,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N1\",\n start: 11613,\n end: 11615,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11615,\n end: 11616,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 11616,\n end: 11618,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11618,\n end: 11619,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N\",\n start: 11619,\n end: 11620,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11620,\n end: 11621,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 11621,\n end: 11622,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11622,\n end: 11623,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 11623,\n end: 11624,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11624,\n end: 11625,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11625,\n end: 11627,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11627,\n end: 11631,\n },\n TokenData {\n kind: \"Atom\",\n text: \"hanoi\",\n start: 11631,\n end: 11636,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11636,\n end: 11637,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N1\",\n start: 11637,\n end: 11639,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11639,\n end: 11640,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11640,\n end: 11641,\n },\n TokenData {\n kind: \"Variable\",\n text: \"A\",\n start: 11641,\n end: 11642,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11642,\n end: 11643,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11643,\n end: 11644,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C\",\n start: 11644,\n end: 11645,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11645,\n end: 11646,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11646,\n end: 11647,\n },\n TokenData {\n kind: \"Variable\",\n text: \"B\",\n start: 11647,\n end: 11648,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11648,\n end: 11649,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11649,\n end: 11650,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11650,\n end: 11652,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11652,\n end: 11656,\n },\n TokenData {\n kind: \"Atom\",\n text: \"hanoi\",\n start: 11656,\n end: 11661,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11661,\n end: 11662,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 11662,\n end: 11663,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11663,\n end: 11664,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11664,\n end: 11665,\n },\n TokenData {\n kind: \"Variable\",\n text: \"A\",\n start: 11665,\n end: 11666,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11666,\n end: 11667,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11667,\n end: 11668,\n },\n TokenData {\n kind: \"Variable\",\n text: \"B\",\n start: 11668,\n end: 11669,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11669,\n end: 11670,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11670,\n end: 11671,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 11671,\n end: 11672,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11672,\n end: 11673,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11673,\n end: 11674,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11674,\n end: 11676,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11676,\n end: 11680,\n },\n TokenData {\n kind: \"Atom\",\n text: \"hanoi\",\n start: 11680,\n end: 11685,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11685,\n end: 11686,\n },\n TokenData {\n kind: \"Variable\",\n text: \"N1\",\n start: 11686,\n end: 11688,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11688,\n end: 11689,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11689,\n end: 11690,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C\",\n start: 11690,\n end: 11691,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11691,\n end: 11692,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11692,\n end: 11693,\n },\n TokenData {\n kind: \"Variable\",\n text: \"B\",\n start: 11693,\n end: 11694,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11694,\n end: 11695,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11695,\n end: 11696,\n },\n TokenData {\n kind: \"Variable\",\n text: \"A\",\n start: 11696,\n end: 11697,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11697,\n end: 11698,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 11698,\n end: 11699,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11699,\n end: 11701,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11701,\n end: 11703,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Missionaries and Cannibals problem\",\n start: 11703,\n end: 11739,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11739,\n end: 11741,\n },\n TokenData {\n kind: \"Atom\",\n text: \"solve_missionaries_cannibals\",\n start: 11741,\n end: 11769,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11769,\n end: 11770,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Solution\",\n start: 11770,\n end: 11778,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11778,\n end: 11779,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11779,\n end: 11780,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11780,\n end: 11782,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11782,\n end: 11784,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11784,\n end: 11788,\n },\n TokenData {\n kind: \"Atom\",\n text: \"solve_mc\",\n start: 11788,\n end: 11796,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11796,\n end: 11797,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 11797,\n end: 11802,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11802,\n end: 11803,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 11803,\n end: 11804,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11804,\n end: 11805,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 11805,\n end: 11806,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11806,\n end: 11807,\n },\n TokenData {\n kind: \"Atom\",\n text: \"left\",\n start: 11807,\n end: 11811,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11811,\n end: 11812,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11812,\n end: 11813,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11813,\n end: 11814,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 11814,\n end: 11819,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11819,\n end: 11820,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 11820,\n end: 11821,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11821,\n end: 11822,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 11822,\n end: 11823,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11823,\n end: 11824,\n },\n TokenData {\n kind: \"Atom\",\n text: \"right\",\n start: 11824,\n end: 11829,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11829,\n end: 11830,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11830,\n end: 11831,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11831,\n end: 11832,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 11832,\n end: 11833,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 11833,\n end: 11838,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11838,\n end: 11839,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 11839,\n end: 11840,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11840,\n end: 11841,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 11841,\n end: 11842,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11842,\n end: 11843,\n },\n TokenData {\n kind: \"Atom\",\n text: \"left\",\n start: 11843,\n end: 11847,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11847,\n end: 11848,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 11848,\n end: 11849,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11849,\n end: 11850,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11850,\n end: 11851,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Solution\",\n start: 11851,\n end: 11859,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11859,\n end: 11860,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 11860,\n end: 11861,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11861,\n end: 11863,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11863,\n end: 11865,\n },\n TokenData {\n kind: \"Atom\",\n text: \"solve_mc\",\n start: 11865,\n end: 11873,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11873,\n end: 11874,\n },\n TokenData {\n kind: \"Variable\",\n text: \"State\",\n start: 11874,\n end: 11879,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11879,\n end: 11880,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11880,\n end: 11881,\n },\n TokenData {\n kind: \"Variable\",\n text: \"State\",\n start: 11881,\n end: 11886,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11886,\n end: 11887,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11887,\n end: 11888,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 11888,\n end: 11892,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11892,\n end: 11893,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11893,\n end: 11894,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 11894,\n end: 11898,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11898,\n end: 11899,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 11899,\n end: 11900,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11900,\n end: 11902,\n },\n TokenData {\n kind: \"Atom\",\n text: \"solve_mc\",\n start: 11902,\n end: 11910,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11910,\n end: 11911,\n },\n TokenData {\n kind: \"Variable\",\n text: \"State\",\n start: 11911,\n end: 11916,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11916,\n end: 11917,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11917,\n end: 11918,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Goal\",\n start: 11918,\n end: 11922,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11922,\n end: 11923,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11923,\n end: 11924,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Visited\",\n start: 11924,\n end: 11931,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11931,\n end: 11932,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11932,\n end: 11933,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Solution\",\n start: 11933,\n end: 11941,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11941,\n end: 11942,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11942,\n end: 11943,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 11943,\n end: 11945,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11945,\n end: 11947,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11947,\n end: 11951,\n },\n TokenData {\n kind: \"Atom\",\n text: \"move_mc\",\n start: 11951,\n end: 11958,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11958,\n end: 11959,\n },\n TokenData {\n kind: \"Variable\",\n text: \"State\",\n start: 11959,\n end: 11964,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11964,\n end: 11965,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11965,\n end: 11966,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NextState\",\n start: 11966,\n end: 11975,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11975,\n end: 11976,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11976,\n end: 11977,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11977,\n end: 11979,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11979,\n end: 11983,\n },\n TokenData {\n kind: \"BitwiseNot\",\n text: \"\\\\\",\n start: 11983,\n end: 11984,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 11984,\n end: 11985,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11985,\n end: 11986,\n },\n TokenData {\n kind: \"Atom\",\n text: \"member_check\",\n start: 11986,\n end: 11998,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11998,\n end: 11999,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NextState\",\n start: 11999,\n end: 12008,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12008,\n end: 12009,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12009,\n end: 12010,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Visited\",\n start: 12010,\n end: 12017,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12017,\n end: 12018,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12018,\n end: 12019,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12019,\n end: 12021,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12021,\n end: 12025,\n },\n TokenData {\n kind: \"Atom\",\n text: \"solve_mc\",\n start: 12025,\n end: 12033,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12033,\n end: 12034,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NextState\",\n start: 12034,\n end: 12043,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12043,\n end: 12044,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12044,\n end: 12045,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Goal\",\n start: 12045,\n end: 12049,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12049,\n end: 12050,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12050,\n end: 12051,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 12051,\n end: 12052,\n },\n TokenData {\n kind: \"Variable\",\n text: \"NextState\",\n start: 12052,\n end: 12061,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 12061,\n end: 12062,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Visited\",\n start: 12062,\n end: 12069,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 12069,\n end: 12070,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12070,\n end: 12071,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12071,\n end: 12072,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Solution\",\n start: 12072,\n end: 12080,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12080,\n end: 12081,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12081,\n end: 12082,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12082,\n end: 12084,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12084,\n end: 12086,\n },\n TokenData {\n kind: \"Atom\",\n text: \"move_mc\",\n start: 12086,\n end: 12093,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12093,\n end: 12094,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 12094,\n end: 12099,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12099,\n end: 12100,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M1\",\n start: 12100,\n end: 12102,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12102,\n end: 12103,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C1\",\n start: 12103,\n end: 12105,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12105,\n end: 12106,\n },\n TokenData {\n kind: \"Atom\",\n text: \"left\",\n start: 12106,\n end: 12110,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12110,\n end: 12111,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12111,\n end: 12112,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12112,\n end: 12113,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 12113,\n end: 12118,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12118,\n end: 12119,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M2\",\n start: 12119,\n end: 12121,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12121,\n end: 12122,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C2\",\n start: 12122,\n end: 12124,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12124,\n end: 12125,\n },\n TokenData {\n kind: \"Atom\",\n text: \"right\",\n start: 12125,\n end: 12130,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12130,\n end: 12131,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12131,\n end: 12132,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12132,\n end: 12133,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 12133,\n end: 12135,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12135,\n end: 12137,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12137,\n end: 12141,\n },\n TokenData {\n kind: \"Atom\",\n text: \"move_people\",\n start: 12141,\n end: 12152,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12152,\n end: 12153,\n },\n TokenData {\n kind: \"Variable\",\n text: \"DM\",\n start: 12153,\n end: 12155,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12155,\n end: 12156,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12156,\n end: 12157,\n },\n TokenData {\n kind: \"Variable\",\n text: \"DC\",\n start: 12157,\n end: 12159,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12159,\n end: 12160,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12160,\n end: 12161,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12161,\n end: 12163,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12163,\n end: 12167,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M2\",\n start: 12167,\n end: 12169,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12169,\n end: 12170,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 12170,\n end: 12172,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12172,\n end: 12173,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M1\",\n start: 12173,\n end: 12175,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12175,\n end: 12176,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 12176,\n end: 12177,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12177,\n end: 12178,\n },\n TokenData {\n kind: \"Variable\",\n text: \"DM\",\n start: 12178,\n end: 12180,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12180,\n end: 12181,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12181,\n end: 12183,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12183,\n end: 12187,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C2\",\n start: 12187,\n end: 12189,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12189,\n end: 12190,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 12190,\n end: 12192,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12192,\n end: 12193,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C1\",\n start: 12193,\n end: 12195,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12195,\n end: 12196,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 12196,\n end: 12197,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12197,\n end: 12198,\n },\n TokenData {\n kind: \"Variable\",\n text: \"DC\",\n start: 12198,\n end: 12200,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12200,\n end: 12201,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12201,\n end: 12203,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12203,\n end: 12207,\n },\n TokenData {\n kind: \"Atom\",\n text: \"valid_state\",\n start: 12207,\n end: 12218,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12218,\n end: 12219,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 12219,\n end: 12224,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12224,\n end: 12225,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M2\",\n start: 12225,\n end: 12227,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12227,\n end: 12228,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C2\",\n start: 12228,\n end: 12230,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12230,\n end: 12231,\n },\n TokenData {\n kind: \"Atom\",\n text: \"right\",\n start: 12231,\n end: 12236,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12236,\n end: 12237,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12237,\n end: 12238,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12238,\n end: 12239,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12239,\n end: 12241,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12241,\n end: 12245,\n },\n TokenData {\n kind: \"Atom\",\n text: \"valid_state\",\n start: 12245,\n end: 12256,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12256,\n end: 12257,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 12257,\n end: 12262,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12262,\n end: 12263,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M1\",\n start: 12263,\n end: 12265,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12265,\n end: 12266,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C1\",\n start: 12266,\n end: 12268,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12268,\n end: 12269,\n },\n TokenData {\n kind: \"Atom\",\n text: \"left\",\n start: 12269,\n end: 12273,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12273,\n end: 12274,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12274,\n end: 12275,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12275,\n end: 12276,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12276,\n end: 12278,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12278,\n end: 12280,\n },\n TokenData {\n kind: \"Atom\",\n text: \"move_mc\",\n start: 12280,\n end: 12287,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12287,\n end: 12288,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 12288,\n end: 12293,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12293,\n end: 12294,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M1\",\n start: 12294,\n end: 12296,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12296,\n end: 12297,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C1\",\n start: 12297,\n end: 12299,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12299,\n end: 12300,\n },\n TokenData {\n kind: \"Atom\",\n text: \"right\",\n start: 12300,\n end: 12305,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12305,\n end: 12306,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12306,\n end: 12307,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12307,\n end: 12308,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 12308,\n end: 12313,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12313,\n end: 12314,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M2\",\n start: 12314,\n end: 12316,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12316,\n end: 12317,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C2\",\n start: 12317,\n end: 12319,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12319,\n end: 12320,\n },\n TokenData {\n kind: \"Atom\",\n text: \"left\",\n start: 12320,\n end: 12324,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12324,\n end: 12325,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12325,\n end: 12326,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12326,\n end: 12327,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 12327,\n end: 12329,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12329,\n end: 12331,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12331,\n end: 12335,\n },\n TokenData {\n kind: \"Atom\",\n text: \"move_people\",\n start: 12335,\n end: 12346,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12346,\n end: 12347,\n },\n TokenData {\n kind: \"Variable\",\n text: \"DM\",\n start: 12347,\n end: 12349,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12349,\n end: 12350,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12350,\n end: 12351,\n },\n TokenData {\n kind: \"Variable\",\n text: \"DC\",\n start: 12351,\n end: 12353,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12353,\n end: 12354,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12354,\n end: 12355,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12355,\n end: 12357,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12357,\n end: 12361,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M2\",\n start: 12361,\n end: 12363,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12363,\n end: 12364,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 12364,\n end: 12366,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12366,\n end: 12367,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M1\",\n start: 12367,\n end: 12369,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12369,\n end: 12370,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 12370,\n end: 12371,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12371,\n end: 12372,\n },\n TokenData {\n kind: \"Variable\",\n text: \"DM\",\n start: 12372,\n end: 12374,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12374,\n end: 12375,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12375,\n end: 12377,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12377,\n end: 12381,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C2\",\n start: 12381,\n end: 12383,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12383,\n end: 12384,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 12384,\n end: 12386,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12386,\n end: 12387,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C1\",\n start: 12387,\n end: 12389,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12389,\n end: 12390,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 12390,\n end: 12391,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12391,\n end: 12392,\n },\n TokenData {\n kind: \"Variable\",\n text: \"DC\",\n start: 12392,\n end: 12394,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12394,\n end: 12395,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12395,\n end: 12397,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12397,\n end: 12401,\n },\n TokenData {\n kind: \"Atom\",\n text: \"valid_state\",\n start: 12401,\n end: 12412,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12412,\n end: 12413,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 12413,\n end: 12418,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12418,\n end: 12419,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M2\",\n start: 12419,\n end: 12421,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12421,\n end: 12422,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C2\",\n start: 12422,\n end: 12424,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12424,\n end: 12425,\n },\n TokenData {\n kind: \"Atom\",\n text: \"left\",\n start: 12425,\n end: 12429,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12429,\n end: 12430,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12430,\n end: 12431,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12431,\n end: 12432,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12432,\n end: 12434,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12434,\n end: 12438,\n },\n TokenData {\n kind: \"Atom\",\n text: \"valid_state\",\n start: 12438,\n end: 12449,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12449,\n end: 12450,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 12450,\n end: 12455,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12455,\n end: 12456,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M1\",\n start: 12456,\n end: 12458,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12458,\n end: 12459,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C1\",\n start: 12459,\n end: 12461,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12461,\n end: 12462,\n },\n TokenData {\n kind: \"Atom\",\n text: \"right\",\n start: 12462,\n end: 12467,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12467,\n end: 12468,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12468,\n end: 12469,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12469,\n end: 12470,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12470,\n end: 12472,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12472,\n end: 12474,\n },\n TokenData {\n kind: \"Atom\",\n text: \"move_people\",\n start: 12474,\n end: 12485,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12485,\n end: 12486,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 12486,\n end: 12487,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12487,\n end: 12488,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12488,\n end: 12489,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12489,\n end: 12490,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12490,\n end: 12491,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12491,\n end: 12492,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12492,\n end: 12494,\n },\n TokenData {\n kind: \"Atom\",\n text: \"move_people\",\n start: 12494,\n end: 12505,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12505,\n end: 12506,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 12506,\n end: 12507,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12507,\n end: 12508,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12508,\n end: 12509,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12509,\n end: 12510,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12510,\n end: 12511,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12511,\n end: 12512,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12512,\n end: 12514,\n },\n TokenData {\n kind: \"Atom\",\n text: \"move_people\",\n start: 12514,\n end: 12525,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12525,\n end: 12526,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 12526,\n end: 12527,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12527,\n end: 12528,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12528,\n end: 12529,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 12529,\n end: 12530,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12530,\n end: 12531,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12531,\n end: 12532,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12532,\n end: 12534,\n },\n TokenData {\n kind: \"Atom\",\n text: \"move_people\",\n start: 12534,\n end: 12545,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12545,\n end: 12546,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12546,\n end: 12547,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12547,\n end: 12548,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12548,\n end: 12549,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 12549,\n end: 12550,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12550,\n end: 12551,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12551,\n end: 12552,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12552,\n end: 12554,\n },\n TokenData {\n kind: \"Atom\",\n text: \"move_people\",\n start: 12554,\n end: 12565,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12565,\n end: 12566,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12566,\n end: 12567,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12567,\n end: 12568,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12568,\n end: 12569,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 12569,\n end: 12570,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12570,\n end: 12571,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12571,\n end: 12572,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12572,\n end: 12574,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12574,\n end: 12576,\n },\n TokenData {\n kind: \"Atom\",\n text: \"valid_state\",\n start: 12576,\n end: 12587,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12587,\n end: 12588,\n },\n TokenData {\n kind: \"Atom\",\n text: \"state\",\n start: 12588,\n end: 12593,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12593,\n end: 12594,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M\",\n start: 12594,\n end: 12595,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12595,\n end: 12596,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12596,\n end: 12597,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C\",\n start: 12597,\n end: 12598,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12598,\n end: 12599,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12599,\n end: 12600,\n },\n TokenData {\n kind: \"Atom\",\n text: \"_\",\n start: 12600,\n end: 12601,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12601,\n end: 12602,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12602,\n end: 12603,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12603,\n end: 12604,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 12604,\n end: 12606,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12606,\n end: 12608,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12608,\n end: 12612,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M\",\n start: 12612,\n end: 12613,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12613,\n end: 12614,\n },\n TokenData {\n kind: \"GreaterEqual\",\n text: \">=\",\n start: 12614,\n end: 12616,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12616,\n end: 12617,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12617,\n end: 12618,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12618,\n end: 12619,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12619,\n end: 12620,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C\",\n start: 12620,\n end: 12621,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12621,\n end: 12622,\n },\n TokenData {\n kind: \"GreaterEqual\",\n text: \">=\",\n start: 12622,\n end: 12624,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12624,\n end: 12625,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12625,\n end: 12626,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12626,\n end: 12627,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12627,\n end: 12628,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M\",\n start: 12628,\n end: 12629,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12629,\n end: 12630,\n },\n TokenData {\n kind: \"ArithNotEqual\",\n text: \"=<\",\n start: 12630,\n end: 12632,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12632,\n end: 12633,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 12633,\n end: 12634,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12634,\n end: 12635,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12635,\n end: 12636,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C\",\n start: 12636,\n end: 12637,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12637,\n end: 12638,\n },\n TokenData {\n kind: \"ArithNotEqual\",\n text: \"=<\",\n start: 12638,\n end: 12640,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12640,\n end: 12641,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 12641,\n end: 12642,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12642,\n end: 12643,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12643,\n end: 12645,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12645,\n end: 12649,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12649,\n end: 12650,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M\",\n start: 12650,\n end: 12651,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12651,\n end: 12652,\n },\n TokenData {\n kind: \"GreaterEqual\",\n text: \">=\",\n start: 12652,\n end: 12654,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12654,\n end: 12655,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C\",\n start: 12655,\n end: 12656,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12656,\n end: 12657,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12657,\n end: 12658,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12658,\n end: 12659,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M\",\n start: 12659,\n end: 12660,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12660,\n end: 12661,\n },\n TokenData {\n kind: \"Unify\",\n text: \"=\",\n start: 12661,\n end: 12662,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12662,\n end: 12663,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12663,\n end: 12664,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12664,\n end: 12665,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12665,\n end: 12666,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12666,\n end: 12668,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12668,\n end: 12672,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M2\",\n start: 12672,\n end: 12674,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12674,\n end: 12675,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 12675,\n end: 12677,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12677,\n end: 12678,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 12678,\n end: 12679,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12679,\n end: 12680,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 12680,\n end: 12681,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12681,\n end: 12682,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M\",\n start: 12682,\n end: 12683,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12683,\n end: 12684,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12684,\n end: 12685,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C2\",\n start: 12685,\n end: 12687,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12687,\n end: 12688,\n },\n TokenData {\n kind: \"Is\",\n text: \"is\",\n start: 12688,\n end: 12690,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12690,\n end: 12691,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 12691,\n end: 12692,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12692,\n end: 12693,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 12693,\n end: 12694,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12694,\n end: 12695,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C\",\n start: 12695,\n end: 12696,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12696,\n end: 12697,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12697,\n end: 12699,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12699,\n end: 12703,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12703,\n end: 12704,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M2\",\n start: 12704,\n end: 12706,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12706,\n end: 12707,\n },\n TokenData {\n kind: \"GreaterEqual\",\n text: \">=\",\n start: 12707,\n end: 12709,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12709,\n end: 12710,\n },\n TokenData {\n kind: \"Variable\",\n text: \"C2\",\n start: 12710,\n end: 12712,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12712,\n end: 12713,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 12713,\n end: 12714,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12714,\n end: 12715,\n },\n TokenData {\n kind: \"Variable\",\n text: \"M2\",\n start: 12715,\n end: 12717,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12717,\n end: 12718,\n },\n TokenData {\n kind: \"Unify\",\n text: \"=\",\n start: 12718,\n end: 12719,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12719,\n end: 12720,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12720,\n end: 12721,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12721,\n end: 12722,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12722,\n end: 12723,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12723,\n end: 12725,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12725,\n end: 12727,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Test cases and examples\",\n start: 12727,\n end: 12752,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12752,\n end: 12754,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12754,\n end: 12756,\n },\n TokenData {\n kind: \"Atom\",\n text: \"test_case\",\n start: 12756,\n end: 12765,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12765,\n end: 12766,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factorial\",\n start: 12766,\n end: 12775,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12775,\n end: 12776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12776,\n end: 12777,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 12777,\n end: 12778,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12778,\n end: 12780,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12780,\n end: 12784,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factorial\",\n start: 12784,\n end: 12793,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12793,\n end: 12794,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12794,\n end: 12795,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12795,\n end: 12796,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12796,\n end: 12797,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 12797,\n end: 12798,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12798,\n end: 12799,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12799,\n end: 12800,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12800,\n end: 12802,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12802,\n end: 12806,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factorial\",\n start: 12806,\n end: 12815,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12815,\n end: 12816,\n },\n TokenData {\n kind: \"Integer\",\n text: \"5\",\n start: 12816,\n end: 12817,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12817,\n end: 12818,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12818,\n end: 12819,\n },\n TokenData {\n kind: \"Integer\",\n text: \"120\",\n start: 12819,\n end: 12822,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12822,\n end: 12823,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12823,\n end: 12824,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12824,\n end: 12826,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12826,\n end: 12830,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factorial\",\n start: 12830,\n end: 12839,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12839,\n end: 12840,\n },\n TokenData {\n kind: \"Integer\",\n text: \"10\",\n start: 12840,\n end: 12842,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12842,\n end: 12843,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12843,\n end: 12844,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3628800\",\n start: 12844,\n end: 12851,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12851,\n end: 12852,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12852,\n end: 12854,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 12854,\n end: 12855,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12855,\n end: 12856,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12856,\n end: 12857,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12857,\n end: 12859,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12859,\n end: 12861,\n },\n TokenData {\n kind: \"Atom\",\n text: \"test_case\",\n start: 12861,\n end: 12870,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12870,\n end: 12871,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 12871,\n end: 12880,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12880,\n end: 12881,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12881,\n end: 12882,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 12882,\n end: 12883,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12883,\n end: 12885,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12885,\n end: 12889,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 12889,\n end: 12898,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12898,\n end: 12899,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12899,\n end: 12900,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12900,\n end: 12901,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12901,\n end: 12902,\n },\n TokenData {\n kind: \"Integer\",\n text: \"0\",\n start: 12902,\n end: 12903,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12903,\n end: 12904,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12904,\n end: 12905,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12905,\n end: 12907,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12907,\n end: 12911,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 12911,\n end: 12920,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12920,\n end: 12921,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 12921,\n end: 12922,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12922,\n end: 12923,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12923,\n end: 12924,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 12924,\n end: 12925,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12925,\n end: 12926,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12926,\n end: 12927,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12927,\n end: 12929,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12929,\n end: 12933,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 12933,\n end: 12942,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12942,\n end: 12943,\n },\n TokenData {\n kind: \"Integer\",\n text: \"10\",\n start: 12943,\n end: 12945,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12945,\n end: 12946,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12946,\n end: 12947,\n },\n TokenData {\n kind: \"Integer\",\n text: \"55\",\n start: 12947,\n end: 12949,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12949,\n end: 12950,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12950,\n end: 12952,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 12952,\n end: 12953,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12953,\n end: 12954,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 12954,\n end: 12955,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12955,\n end: 12957,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12957,\n end: 12959,\n },\n TokenData {\n kind: \"Atom\",\n text: \"test_case\",\n start: 12959,\n end: 12968,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12968,\n end: 12969,\n },\n TokenData {\n kind: \"Atom\",\n text: \"list_operations\",\n start: 12969,\n end: 12984,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12984,\n end: 12985,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12985,\n end: 12986,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 12986,\n end: 12987,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12987,\n end: 12989,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12989,\n end: 12993,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 12993,\n end: 13004,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13004,\n end: 13005,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13005,\n end: 13006,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 13006,\n end: 13007,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13007,\n end: 13008,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 13008,\n end: 13009,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13009,\n end: 13010,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13010,\n end: 13011,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13011,\n end: 13012,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13012,\n end: 13013,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 13013,\n end: 13014,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13014,\n end: 13015,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 13015,\n end: 13016,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13016,\n end: 13017,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13017,\n end: 13018,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13018,\n end: 13019,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13019,\n end: 13020,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 13020,\n end: 13021,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13021,\n end: 13022,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 13022,\n end: 13023,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13023,\n end: 13024,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 13024,\n end: 13025,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13025,\n end: 13026,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 13026,\n end: 13027,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13027,\n end: 13028,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13028,\n end: 13029,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13029,\n end: 13030,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13030,\n end: 13032,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13032,\n end: 13036,\n },\n TokenData {\n kind: \"Atom\",\n text: \"reverse_list\",\n start: 13036,\n end: 13048,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13048,\n end: 13049,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13049,\n end: 13050,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 13050,\n end: 13051,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13051,\n end: 13052,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 13052,\n end: 13053,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13053,\n end: 13054,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 13054,\n end: 13055,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13055,\n end: 13056,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 13056,\n end: 13057,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13057,\n end: 13058,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13058,\n end: 13059,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13059,\n end: 13060,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13060,\n end: 13061,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 13061,\n end: 13062,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13062,\n end: 13063,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 13063,\n end: 13064,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13064,\n end: 13065,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 13065,\n end: 13066,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13066,\n end: 13067,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 13067,\n end: 13068,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13068,\n end: 13069,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13069,\n end: 13070,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13070,\n end: 13071,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13071,\n end: 13073,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13073,\n end: 13077,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sum_list\",\n start: 13077,\n end: 13085,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13085,\n end: 13086,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13086,\n end: 13087,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 13087,\n end: 13088,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13088,\n end: 13089,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 13089,\n end: 13090,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13090,\n end: 13091,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 13091,\n end: 13092,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13092,\n end: 13093,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 13093,\n end: 13094,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13094,\n end: 13095,\n },\n TokenData {\n kind: \"Integer\",\n text: \"5\",\n start: 13095,\n end: 13096,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13096,\n end: 13097,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13097,\n end: 13098,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13098,\n end: 13099,\n },\n TokenData {\n kind: \"Integer\",\n text: \"15\",\n start: 13099,\n end: 13101,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13101,\n end: 13102,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13102,\n end: 13104,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13104,\n end: 13105,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13105,\n end: 13106,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 13106,\n end: 13107,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13107,\n end: 13109,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13109,\n end: 13111,\n },\n TokenData {\n kind: \"Atom\",\n text: \"test_case\",\n start: 13111,\n end: 13120,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13120,\n end: 13121,\n },\n TokenData {\n kind: \"Atom\",\n text: \"family_relations\",\n start: 13121,\n end: 13137,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13137,\n end: 13138,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13138,\n end: 13139,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13139,\n end: 13140,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13140,\n end: 13142,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13142,\n end: 13146,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 13146,\n end: 13152,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13152,\n end: 13153,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 13153,\n end: 13157,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13157,\n end: 13158,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13158,\n end: 13159,\n },\n TokenData {\n kind: \"Atom\",\n text: \"alice\",\n start: 13159,\n end: 13164,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13164,\n end: 13165,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13165,\n end: 13166,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13166,\n end: 13168,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13168,\n end: 13172,\n },\n TokenData {\n kind: \"Atom\",\n text: \"grandparent\",\n start: 13172,\n end: 13183,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13183,\n end: 13184,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 13184,\n end: 13188,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13188,\n end: 13189,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13189,\n end: 13190,\n },\n TokenData {\n kind: \"Atom\",\n text: \"diana\",\n start: 13190,\n end: 13195,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13195,\n end: 13196,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13196,\n end: 13197,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13197,\n end: 13199,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13199,\n end: 13203,\n },\n TokenData {\n kind: \"Atom\",\n text: \"ancestor\",\n start: 13203,\n end: 13211,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13211,\n end: 13212,\n },\n TokenData {\n kind: \"Atom\",\n text: \"john\",\n start: 13212,\n end: 13216,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13216,\n end: 13217,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13217,\n end: 13218,\n },\n TokenData {\n kind: \"Atom\",\n text: \"frank\",\n start: 13218,\n end: 13223,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13223,\n end: 13224,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13224,\n end: 13226,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13226,\n end: 13227,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13227,\n end: 13228,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 13228,\n end: 13229,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13229,\n end: 13231,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13231,\n end: 13233,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Run all tests\",\n start: 13233,\n end: 13248,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13248,\n end: 13250,\n },\n TokenData {\n kind: \"Atom\",\n text: \"run_tests\",\n start: 13250,\n end: 13259,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13259,\n end: 13260,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 13260,\n end: 13262,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13262,\n end: 13264,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13264,\n end: 13268,\n },\n TokenData {\n kind: \"Atom\",\n text: \"test_case\",\n start: 13268,\n end: 13277,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13277,\n end: 13278,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Category\",\n start: 13278,\n end: 13286,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13286,\n end: 13287,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13287,\n end: 13288,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Tests\",\n start: 13288,\n end: 13293,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13293,\n end: 13294,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13294,\n end: 13295,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13295,\n end: 13297,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13297,\n end: 13301,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 13301,\n end: 13307,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13307,\n end: 13308,\n },\n TokenData {\n kind: \"String\",\n text: \"'Testing ~w:~n'\",\n start: 13308,\n end: 13323,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13323,\n end: 13324,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13324,\n end: 13325,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13325,\n end: 13326,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Category\",\n start: 13326,\n end: 13334,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13334,\n end: 13335,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13335,\n end: 13336,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13336,\n end: 13337,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13337,\n end: 13339,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13339,\n end: 13343,\n },\n TokenData {\n kind: \"Atom\",\n text: \"run_test_list\",\n start: 13343,\n end: 13356,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13356,\n end: 13357,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Tests\",\n start: 13357,\n end: 13362,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13362,\n end: 13363,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13363,\n end: 13364,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13364,\n end: 13366,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13366,\n end: 13370,\n },\n TokenData {\n kind: \"Atom\",\n text: \"nl\",\n start: 13370,\n end: 13372,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13372,\n end: 13373,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13373,\n end: 13375,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13375,\n end: 13379,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fail\",\n start: 13379,\n end: 13383,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 13383,\n end: 13384,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13384,\n end: 13386,\n },\n TokenData {\n kind: \"Atom\",\n text: \"run_tests\",\n start: 13386,\n end: 13395,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 13395,\n end: 13396,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13396,\n end: 13398,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13398,\n end: 13400,\n },\n TokenData {\n kind: \"Atom\",\n text: \"run_test_list\",\n start: 13400,\n end: 13413,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13413,\n end: 13414,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13414,\n end: 13415,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13415,\n end: 13416,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13416,\n end: 13417,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 13417,\n end: 13418,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13418,\n end: 13420,\n },\n TokenData {\n kind: \"Atom\",\n text: \"run_test_list\",\n start: 13420,\n end: 13433,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13433,\n end: 13434,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13434,\n end: 13435,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Test\",\n start: 13435,\n end: 13439,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 13439,\n end: 13440,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Tests\",\n start: 13440,\n end: 13445,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13445,\n end: 13446,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13446,\n end: 13447,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13447,\n end: 13448,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 13448,\n end: 13450,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13450,\n end: 13452,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13452,\n end: 13456,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13456,\n end: 13457,\n },\n TokenData {\n kind: \"Atom\",\n text: \"call\",\n start: 13457,\n end: 13461,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13461,\n end: 13462,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Test\",\n start: 13462,\n end: 13466,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13466,\n end: 13467,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13467,\n end: 13468,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 13468,\n end: 13469,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 13469,\n end: 13470,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13470,\n end: 13472,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13472,\n end: 13480,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 13480,\n end: 13486,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13486,\n end: 13487,\n },\n TokenData {\n kind: \"String\",\n text: \"' PASS: ~w~n'\",\n start: 13487,\n end: 13501,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13501,\n end: 13502,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13502,\n end: 13503,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13503,\n end: 13504,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Test\",\n start: 13504,\n end: 13508,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13508,\n end: 13509,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13509,\n end: 13510,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13510,\n end: 13512,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13512,\n end: 13516,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 13516,\n end: 13517,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13517,\n end: 13520,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 13520,\n end: 13526,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13526,\n end: 13527,\n },\n TokenData {\n kind: \"String\",\n text: \"' FAIL: ~w~n'\",\n start: 13527,\n end: 13541,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13541,\n end: 13542,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13542,\n end: 13543,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13543,\n end: 13544,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Test\",\n start: 13544,\n end: 13548,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13548,\n end: 13549,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13549,\n end: 13550,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13550,\n end: 13552,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13552,\n end: 13556,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13556,\n end: 13557,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13557,\n end: 13558,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13558,\n end: 13560,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13560,\n end: 13564,\n },\n TokenData {\n kind: \"Atom\",\n text: \"run_test_list\",\n start: 13564,\n end: 13577,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13577,\n end: 13578,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Tests\",\n start: 13578,\n end: 13583,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13583,\n end: 13584,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 13584,\n end: 13585,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13585,\n end: 13587,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13587,\n end: 13589,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Main demonstration predicate\",\n start: 13589,\n end: 13619,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13619,\n end: 13621,\n },\n TokenData {\n kind: \"Atom\",\n text: \"demonstrate_prolog\",\n start: 13621,\n end: 13639,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13639,\n end: 13640,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 13640,\n end: 13642,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13642,\n end: 13644,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13644,\n end: 13648,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 13648,\n end: 13654,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13654,\n end: 13655,\n },\n TokenData {\n kind: \"String\",\n text: \"'=== Prolog Comprehensive Test ===~n'\",\n start: 13655,\n end: 13692,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13692,\n end: 13693,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13693,\n end: 13694,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13694,\n end: 13696,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13696,\n end: 13700,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13700,\n end: 13702,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13702,\n end: 13706,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Test basic facts and rules\",\n start: 13706,\n end: 13734,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13734,\n end: 13736,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13736,\n end: 13740,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 13740,\n end: 13746,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13746,\n end: 13747,\n },\n TokenData {\n kind: \"String\",\n text: \"'Family relationships:~n'\",\n start: 13747,\n end: 13772,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13772,\n end: 13773,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13773,\n end: 13774,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13774,\n end: 13776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13776,\n end: 13780,\n },\n TokenData {\n kind: \"Atom\",\n text: \"forall\",\n start: 13780,\n end: 13786,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13786,\n end: 13787,\n },\n TokenData {\n kind: \"Atom\",\n text: \"parent\",\n start: 13787,\n end: 13793,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13793,\n end: 13794,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 13794,\n end: 13795,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13795,\n end: 13796,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13796,\n end: 13797,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 13797,\n end: 13798,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13798,\n end: 13799,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13799,\n end: 13800,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13800,\n end: 13801,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 13801,\n end: 13807,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13807,\n end: 13808,\n },\n TokenData {\n kind: \"String\",\n text: \"' ~w is parent of ~w~n'\",\n start: 13808,\n end: 13832,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13832,\n end: 13833,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13833,\n end: 13834,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13834,\n end: 13835,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 13835,\n end: 13836,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13836,\n end: 13837,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13837,\n end: 13838,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 13838,\n end: 13839,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13839,\n end: 13840,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13840,\n end: 13841,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13841,\n end: 13842,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13842,\n end: 13843,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13843,\n end: 13845,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13845,\n end: 13849,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13849,\n end: 13851,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13851,\n end: 13855,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 13855,\n end: 13861,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13861,\n end: 13862,\n },\n TokenData {\n kind: \"String\",\n text: \"'~nGrandparents:~n'\",\n start: 13862,\n end: 13881,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13881,\n end: 13882,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13882,\n end: 13883,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13883,\n end: 13885,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13885,\n end: 13889,\n },\n TokenData {\n kind: \"Atom\",\n text: \"forall\",\n start: 13889,\n end: 13895,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13895,\n end: 13896,\n },\n TokenData {\n kind: \"Atom\",\n text: \"grandparent\",\n start: 13896,\n end: 13907,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13907,\n end: 13908,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 13908,\n end: 13909,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13909,\n end: 13910,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13910,\n end: 13911,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 13911,\n end: 13912,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13912,\n end: 13913,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13913,\n end: 13914,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13914,\n end: 13915,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 13915,\n end: 13921,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 13921,\n end: 13922,\n },\n TokenData {\n kind: \"String\",\n text: \"' ~w is grandparent of ~w~n'\",\n start: 13922,\n end: 13951,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13951,\n end: 13952,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13952,\n end: 13953,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13953,\n end: 13954,\n },\n TokenData {\n kind: \"Variable\",\n text: \"X\",\n start: 13954,\n end: 13955,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13955,\n end: 13956,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13956,\n end: 13957,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Y\",\n start: 13957,\n end: 13958,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13958,\n end: 13959,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13959,\n end: 13960,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 13960,\n end: 13961,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13961,\n end: 13962,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13962,\n end: 13964,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13964,\n end: 13968,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13968,\n end: 13970,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13970,\n end: 13974,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Test mathematical predicates\",\n start: 13974,\n end: 14004,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14004,\n end: 14006,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14006,\n end: 14010,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14010,\n end: 14016,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14016,\n end: 14017,\n },\n TokenData {\n kind: \"String\",\n text: \"'~nMathematical operations:~n'\",\n start: 14017,\n end: 14047,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14047,\n end: 14048,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14048,\n end: 14049,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14049,\n end: 14051,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14051,\n end: 14055,\n },\n TokenData {\n kind: \"Atom\",\n text: \"factorial\",\n start: 14055,\n end: 14064,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14064,\n end: 14065,\n },\n TokenData {\n kind: \"Integer\",\n text: \"5\",\n start: 14065,\n end: 14066,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14066,\n end: 14067,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14067,\n end: 14068,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F5\",\n start: 14068,\n end: 14070,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14070,\n end: 14071,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14071,\n end: 14072,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14072,\n end: 14074,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14074,\n end: 14078,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14078,\n end: 14084,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14084,\n end: 14085,\n },\n TokenData {\n kind: \"String\",\n text: \"' 5! = ~w~n'\",\n start: 14085,\n end: 14098,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14098,\n end: 14099,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14099,\n end: 14100,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14100,\n end: 14101,\n },\n TokenData {\n kind: \"Variable\",\n text: \"F5\",\n start: 14101,\n end: 14103,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14103,\n end: 14104,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14104,\n end: 14105,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14105,\n end: 14106,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14106,\n end: 14108,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14108,\n end: 14112,\n },\n TokenData {\n kind: \"Atom\",\n text: \"fibonacci\",\n start: 14112,\n end: 14121,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14121,\n end: 14122,\n },\n TokenData {\n kind: \"Integer\",\n text: \"10\",\n start: 14122,\n end: 14124,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14124,\n end: 14125,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14125,\n end: 14126,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Fib10\",\n start: 14126,\n end: 14131,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14131,\n end: 14132,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14132,\n end: 14133,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14133,\n end: 14135,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14135,\n end: 14139,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14139,\n end: 14145,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14145,\n end: 14146,\n },\n TokenData {\n kind: \"String\",\n text: \"' fibonacci(10) = ~w~n'\",\n start: 14146,\n end: 14170,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14170,\n end: 14171,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14171,\n end: 14172,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14172,\n end: 14173,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Fib10\",\n start: 14173,\n end: 14178,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14178,\n end: 14179,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14179,\n end: 14180,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14180,\n end: 14181,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14181,\n end: 14183,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14183,\n end: 14187,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14187,\n end: 14189,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14189,\n end: 14193,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Test list operations\",\n start: 14193,\n end: 14215,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14215,\n end: 14217,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14217,\n end: 14221,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14221,\n end: 14227,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14227,\n end: 14228,\n },\n TokenData {\n kind: \"String\",\n text: \"'~nList operations:~n'\",\n start: 14228,\n end: 14250,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14250,\n end: 14251,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14251,\n end: 14252,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14252,\n end: 14254,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14254,\n end: 14258,\n },\n TokenData {\n kind: \"Atom\",\n text: \"append_list\",\n start: 14258,\n end: 14269,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14269,\n end: 14270,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14270,\n end: 14271,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 14271,\n end: 14272,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14272,\n end: 14273,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 14273,\n end: 14274,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14274,\n end: 14275,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 14275,\n end: 14276,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14276,\n end: 14277,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14277,\n end: 14278,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14278,\n end: 14279,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14279,\n end: 14280,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 14280,\n end: 14281,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14281,\n end: 14282,\n },\n TokenData {\n kind: \"Integer\",\n text: \"5\",\n start: 14282,\n end: 14283,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14283,\n end: 14284,\n },\n TokenData {\n kind: \"Integer\",\n text: \"6\",\n start: 14284,\n end: 14285,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14285,\n end: 14286,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14286,\n end: 14287,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14287,\n end: 14288,\n },\n TokenData {\n kind: \"Variable\",\n text: \"AppendResult\",\n start: 14288,\n end: 14300,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14300,\n end: 14301,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14301,\n end: 14302,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14302,\n end: 14304,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14304,\n end: 14308,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14308,\n end: 14314,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14314,\n end: 14315,\n },\n TokenData {\n kind: \"String\",\n text: \"' append([1,2,3], [4,5,6]) = ~w~n'\",\n start: 14315,\n end: 14350,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14350,\n end: 14351,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14351,\n end: 14352,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14352,\n end: 14353,\n },\n TokenData {\n kind: \"Variable\",\n text: \"AppendResult\",\n start: 14353,\n end: 14365,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14365,\n end: 14366,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14366,\n end: 14367,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14367,\n end: 14368,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14368,\n end: 14370,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14370,\n end: 14374,\n },\n TokenData {\n kind: \"Atom\",\n text: \"reverse_list\",\n start: 14374,\n end: 14386,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14386,\n end: 14387,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14387,\n end: 14388,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 14388,\n end: 14389,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14389,\n end: 14390,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 14390,\n end: 14391,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14391,\n end: 14392,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 14392,\n end: 14393,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14393,\n end: 14394,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 14394,\n end: 14395,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14395,\n end: 14396,\n },\n TokenData {\n kind: \"Integer\",\n text: \"5\",\n start: 14396,\n end: 14397,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14397,\n end: 14398,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14398,\n end: 14399,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14399,\n end: 14400,\n },\n TokenData {\n kind: \"Variable\",\n text: \"ReverseResult\",\n start: 14400,\n end: 14413,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14413,\n end: 14414,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14414,\n end: 14415,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14415,\n end: 14417,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14417,\n end: 14421,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14421,\n end: 14427,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14427,\n end: 14428,\n },\n TokenData {\n kind: \"String\",\n text: \"' reverse([1,2,3,4,5]) = ~w~n'\",\n start: 14428,\n end: 14459,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14459,\n end: 14460,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14460,\n end: 14461,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14461,\n end: 14462,\n },\n TokenData {\n kind: \"Variable\",\n text: \"ReverseResult\",\n start: 14462,\n end: 14475,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14475,\n end: 14476,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14476,\n end: 14477,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14477,\n end: 14478,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14478,\n end: 14480,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14480,\n end: 14484,\n },\n TokenData {\n kind: \"Atom\",\n text: \"quicksort\",\n start: 14484,\n end: 14493,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14493,\n end: 14494,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14494,\n end: 14495,\n },\n TokenData {\n kind: \"Integer\",\n text: \"5\",\n start: 14495,\n end: 14496,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14496,\n end: 14497,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 14497,\n end: 14498,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14498,\n end: 14499,\n },\n TokenData {\n kind: \"Integer\",\n text: \"8\",\n start: 14499,\n end: 14500,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14500,\n end: 14501,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 14501,\n end: 14502,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14502,\n end: 14503,\n },\n TokenData {\n kind: \"Integer\",\n text: \"9\",\n start: 14503,\n end: 14504,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14504,\n end: 14505,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 14505,\n end: 14506,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14506,\n end: 14507,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14507,\n end: 14508,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14508,\n end: 14509,\n },\n TokenData {\n kind: \"Variable\",\n text: \"SortResult\",\n start: 14509,\n end: 14519,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14519,\n end: 14520,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14520,\n end: 14521,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14521,\n end: 14523,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14523,\n end: 14527,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14527,\n end: 14533,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14533,\n end: 14534,\n },\n TokenData {\n kind: \"String\",\n text: \"' quicksort([5,2,8,1,9,3]) = ~w~n'\",\n start: 14534,\n end: 14569,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14569,\n end: 14570,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14570,\n end: 14571,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14571,\n end: 14572,\n },\n TokenData {\n kind: \"Variable\",\n text: \"SortResult\",\n start: 14572,\n end: 14582,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14582,\n end: 14583,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14583,\n end: 14584,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14584,\n end: 14585,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14585,\n end: 14587,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14587,\n end: 14591,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14591,\n end: 14593,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14593,\n end: 14597,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Test tree operations\",\n start: 14597,\n end: 14619,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14619,\n end: 14621,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14621,\n end: 14625,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14625,\n end: 14631,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14631,\n end: 14632,\n },\n TokenData {\n kind: \"String\",\n text: \"'~nBinary tree operations:~n'\",\n start: 14632,\n end: 14661,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14661,\n end: 14662,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14662,\n end: 14663,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14663,\n end: 14665,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14665,\n end: 14669,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Tree\",\n start: 14669,\n end: 14673,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14673,\n end: 14674,\n },\n TokenData {\n kind: \"Unify\",\n text: \"=\",\n start: 14674,\n end: 14675,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14675,\n end: 14676,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 14676,\n end: 14680,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14680,\n end: 14681,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 14681,\n end: 14685,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14685,\n end: 14686,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 14686,\n end: 14691,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14691,\n end: 14692,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14692,\n end: 14693,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 14693,\n end: 14694,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14694,\n end: 14695,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14695,\n end: 14696,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 14696,\n end: 14701,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14701,\n end: 14702,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14702,\n end: 14703,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14703,\n end: 14704,\n },\n TokenData {\n kind: \"Integer\",\n text: \"5\",\n start: 14704,\n end: 14705,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14705,\n end: 14706,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14706,\n end: 14707,\n },\n TokenData {\n kind: \"Atom\",\n text: \"tree\",\n start: 14707,\n end: 14711,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14711,\n end: 14712,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 14712,\n end: 14717,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14717,\n end: 14718,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14718,\n end: 14719,\n },\n TokenData {\n kind: \"Integer\",\n text: \"8\",\n start: 14719,\n end: 14720,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14720,\n end: 14721,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14721,\n end: 14722,\n },\n TokenData {\n kind: \"Atom\",\n text: \"empty\",\n start: 14722,\n end: 14727,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14727,\n end: 14728,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14728,\n end: 14729,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14729,\n end: 14730,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14730,\n end: 14732,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14732,\n end: 14736,\n },\n TokenData {\n kind: \"Atom\",\n text: \"inorder\",\n start: 14736,\n end: 14743,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14743,\n end: 14744,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Tree\",\n start: 14744,\n end: 14748,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14748,\n end: 14749,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14749,\n end: 14750,\n },\n TokenData {\n kind: \"Variable\",\n text: \"InorderResult\",\n start: 14750,\n end: 14763,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14763,\n end: 14764,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14764,\n end: 14765,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14765,\n end: 14767,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14767,\n end: 14771,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14771,\n end: 14777,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14777,\n end: 14778,\n },\n TokenData {\n kind: \"String\",\n text: \"' inorder traversal = ~w~n'\",\n start: 14778,\n end: 14806,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14806,\n end: 14807,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14807,\n end: 14808,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14808,\n end: 14809,\n },\n TokenData {\n kind: \"Variable\",\n text: \"InorderResult\",\n start: 14809,\n end: 14822,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14822,\n end: 14823,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14823,\n end: 14824,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14824,\n end: 14825,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14825,\n end: 14827,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14827,\n end: 14831,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14831,\n end: 14833,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14833,\n end: 14837,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Test graph operations\",\n start: 14837,\n end: 14860,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14860,\n end: 14862,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14862,\n end: 14866,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14866,\n end: 14872,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14872,\n end: 14873,\n },\n TokenData {\n kind: \"String\",\n text: \"'~nGraph operations:~n'\",\n start: 14873,\n end: 14896,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14896,\n end: 14897,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14897,\n end: 14898,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14898,\n end: 14900,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14900,\n end: 14904,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14904,\n end: 14905,\n },\n TokenData {\n kind: \"Atom\",\n text: \"path\",\n start: 14905,\n end: 14909,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14909,\n end: 14910,\n },\n TokenData {\n kind: \"Atom\",\n text: \"a\",\n start: 14910,\n end: 14911,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14911,\n end: 14912,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14912,\n end: 14913,\n },\n TokenData {\n kind: \"Atom\",\n text: \"d\",\n start: 14913,\n end: 14914,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14914,\n end: 14915,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14915,\n end: 14916,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 14916,\n end: 14920,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14920,\n end: 14921,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14921,\n end: 14922,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 14922,\n end: 14923,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 14923,\n end: 14924,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14924,\n end: 14926,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14926,\n end: 14934,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14934,\n end: 14940,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14940,\n end: 14941,\n },\n TokenData {\n kind: \"String\",\n text: \"' path from a to d: ~w~n'\",\n start: 14941,\n end: 14967,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 14967,\n end: 14968,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14968,\n end: 14969,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 14969,\n end: 14970,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Path\",\n start: 14970,\n end: 14974,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 14974,\n end: 14975,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 14975,\n end: 14976,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 14976,\n end: 14978,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14978,\n end: 14982,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 14982,\n end: 14983,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 14983,\n end: 14986,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 14986,\n end: 14992,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 14992,\n end: 14993,\n },\n TokenData {\n kind: \"String\",\n text: \"' no path from a to d~n'\",\n start: 14993,\n end: 15018,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15018,\n end: 15019,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15019,\n end: 15021,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15021,\n end: 15025,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15025,\n end: 15026,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15026,\n end: 15027,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15027,\n end: 15029,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15029,\n end: 15033,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15033,\n end: 15035,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15035,\n end: 15039,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Test constraint solving\",\n start: 15039,\n end: 15064,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15064,\n end: 15066,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15066,\n end: 15070,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 15070,\n end: 15076,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15076,\n end: 15077,\n },\n TokenData {\n kind: \"String\",\n text: \"'~nConstraint solving:~n'\",\n start: 15077,\n end: 15102,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15102,\n end: 15103,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15103,\n end: 15104,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15104,\n end: 15106,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15106,\n end: 15110,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15110,\n end: 15111,\n },\n TokenData {\n kind: \"Atom\",\n text: \"n_queens\",\n start: 15111,\n end: 15119,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15119,\n end: 15120,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 15120,\n end: 15121,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15121,\n end: 15122,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15122,\n end: 15123,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Queens\",\n start: 15123,\n end: 15129,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15129,\n end: 15130,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15130,\n end: 15131,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 15131,\n end: 15132,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 15132,\n end: 15133,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15133,\n end: 15135,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15135,\n end: 15143,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 15143,\n end: 15149,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15149,\n end: 15150,\n },\n TokenData {\n kind: \"String\",\n text: \"' 4-queens solution: ~w~n'\",\n start: 15150,\n end: 15177,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15177,\n end: 15178,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15178,\n end: 15179,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 15179,\n end: 15180,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Queens\",\n start: 15180,\n end: 15186,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 15186,\n end: 15187,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15187,\n end: 15188,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15188,\n end: 15190,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15190,\n end: 15194,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15194,\n end: 15195,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15195,\n end: 15198,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 15198,\n end: 15204,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15204,\n end: 15205,\n },\n TokenData {\n kind: \"String\",\n text: \"' no 4-queens solution found~n'\",\n start: 15205,\n end: 15237,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15237,\n end: 15238,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15238,\n end: 15240,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15240,\n end: 15244,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15244,\n end: 15245,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15245,\n end: 15246,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15246,\n end: 15248,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15248,\n end: 15252,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15252,\n end: 15254,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15254,\n end: 15258,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Test DCG parsing\",\n start: 15258,\n end: 15276,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15276,\n end: 15278,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15278,\n end: 15282,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 15282,\n end: 15288,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15288,\n end: 15289,\n },\n TokenData {\n kind: \"String\",\n text: \"'~nNatural language parsing:~n'\",\n start: 15289,\n end: 15320,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15320,\n end: 15321,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15321,\n end: 15322,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15322,\n end: 15324,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15324,\n end: 15328,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Sentence\",\n start: 15328,\n end: 15336,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15336,\n end: 15337,\n },\n TokenData {\n kind: \"Unify\",\n text: \"=\",\n start: 15337,\n end: 15338,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15338,\n end: 15339,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 15339,\n end: 15340,\n },\n TokenData {\n kind: \"Atom\",\n text: \"the\",\n start: 15340,\n end: 15343,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15343,\n end: 15344,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15344,\n end: 15345,\n },\n TokenData {\n kind: \"Atom\",\n text: \"cat\",\n start: 15345,\n end: 15348,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15348,\n end: 15349,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15349,\n end: 15350,\n },\n TokenData {\n kind: \"Atom\",\n text: \"chases\",\n start: 15350,\n end: 15356,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15356,\n end: 15357,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15357,\n end: 15358,\n },\n TokenData {\n kind: \"Atom\",\n text: \"a\",\n start: 15358,\n end: 15359,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15359,\n end: 15360,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15360,\n end: 15361,\n },\n TokenData {\n kind: \"Atom\",\n text: \"mouse\",\n start: 15361,\n end: 15366,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 15366,\n end: 15367,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15367,\n end: 15368,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15368,\n end: 15370,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15370,\n end: 15374,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15374,\n end: 15375,\n },\n TokenData {\n kind: \"Atom\",\n text: \"phrase\",\n start: 15375,\n end: 15381,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15381,\n end: 15382,\n },\n TokenData {\n kind: \"Atom\",\n text: \"sentence\",\n start: 15382,\n end: 15390,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15390,\n end: 15391,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15391,\n end: 15392,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Sentence\",\n start: 15392,\n end: 15400,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15400,\n end: 15401,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15401,\n end: 15402,\n },\n TokenData {\n kind: \"Minus\",\n text: \"-\",\n start: 15402,\n end: 15403,\n },\n TokenData {\n kind: \"Greater\",\n text: \">\",\n start: 15403,\n end: 15404,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15404,\n end: 15406,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15406,\n end: 15414,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 15414,\n end: 15420,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15420,\n end: 15421,\n },\n TokenData {\n kind: \"String\",\n text: \"' \\\"~w\\\" is a valid sentence~n'\",\n start: 15421,\n end: 15451,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15451,\n end: 15452,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15452,\n end: 15453,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 15453,\n end: 15454,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Sentence\",\n start: 15454,\n end: 15462,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 15462,\n end: 15463,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15463,\n end: 15464,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15464,\n end: 15466,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15466,\n end: 15470,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 15470,\n end: 15471,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15471,\n end: 15474,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 15474,\n end: 15480,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15480,\n end: 15481,\n },\n TokenData {\n kind: \"String\",\n text: \"' \\\"~w\\\" is not a valid sentence~n'\",\n start: 15481,\n end: 15515,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15515,\n end: 15516,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15516,\n end: 15517,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 15517,\n end: 15518,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Sentence\",\n start: 15518,\n end: 15526,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 15526,\n end: 15527,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15527,\n end: 15528,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15528,\n end: 15530,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15530,\n end: 15534,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15534,\n end: 15535,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15535,\n end: 15536,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15536,\n end: 15538,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15538,\n end: 15542,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15542,\n end: 15544,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15544,\n end: 15548,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Test higher-order predicates\",\n start: 15548,\n end: 15578,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15578,\n end: 15580,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15580,\n end: 15584,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 15584,\n end: 15590,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15590,\n end: 15591,\n },\n TokenData {\n kind: \"String\",\n text: \"'~nHigher-order operations:~n'\",\n start: 15591,\n end: 15621,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15621,\n end: 15622,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15622,\n end: 15623,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15623,\n end: 15625,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15625,\n end: 15629,\n },\n TokenData {\n kind: \"Atom\",\n text: \"map_list\",\n start: 15629,\n end: 15637,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15637,\n end: 15638,\n },\n TokenData {\n kind: \"Atom\",\n text: \"double\",\n start: 15638,\n end: 15644,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15644,\n end: 15645,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15645,\n end: 15646,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 15646,\n end: 15647,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 15647,\n end: 15648,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15648,\n end: 15649,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 15649,\n end: 15650,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15650,\n end: 15651,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 15651,\n end: 15652,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15652,\n end: 15653,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 15653,\n end: 15654,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15654,\n end: 15655,\n },\n TokenData {\n kind: \"Integer\",\n text: \"5\",\n start: 15655,\n end: 15656,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 15656,\n end: 15657,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15657,\n end: 15658,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15658,\n end: 15659,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Doubled\",\n start: 15659,\n end: 15666,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15666,\n end: 15667,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15667,\n end: 15668,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15668,\n end: 15670,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15670,\n end: 15674,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 15674,\n end: 15680,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15680,\n end: 15681,\n },\n TokenData {\n kind: \"String\",\n text: \"' double([1,2,3,4,5]) = ~w~n'\",\n start: 15681,\n end: 15711,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15711,\n end: 15712,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15712,\n end: 15713,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 15713,\n end: 15714,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Doubled\",\n start: 15714,\n end: 15721,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 15721,\n end: 15722,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15722,\n end: 15723,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15723,\n end: 15724,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15724,\n end: 15726,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15726,\n end: 15730,\n },\n TokenData {\n kind: \"Atom\",\n text: \"filter_list\",\n start: 15730,\n end: 15741,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15741,\n end: 15742,\n },\n TokenData {\n kind: \"Atom\",\n text: \"is_even\",\n start: 15742,\n end: 15749,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15749,\n end: 15750,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15750,\n end: 15751,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 15751,\n end: 15752,\n },\n TokenData {\n kind: \"Integer\",\n text: \"1\",\n start: 15752,\n end: 15753,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15753,\n end: 15754,\n },\n TokenData {\n kind: \"Integer\",\n text: \"2\",\n start: 15754,\n end: 15755,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15755,\n end: 15756,\n },\n TokenData {\n kind: \"Integer\",\n text: \"3\",\n start: 15756,\n end: 15757,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15757,\n end: 15758,\n },\n TokenData {\n kind: \"Integer\",\n text: \"4\",\n start: 15758,\n end: 15759,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15759,\n end: 15760,\n },\n TokenData {\n kind: \"Integer\",\n text: \"5\",\n start: 15760,\n end: 15761,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15761,\n end: 15762,\n },\n TokenData {\n kind: \"Integer\",\n text: \"6\",\n start: 15762,\n end: 15763,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 15763,\n end: 15764,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15764,\n end: 15765,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15765,\n end: 15766,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Evens\",\n start: 15766,\n end: 15771,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15771,\n end: 15772,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15772,\n end: 15773,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15773,\n end: 15775,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15775,\n end: 15779,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 15779,\n end: 15785,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15785,\n end: 15786,\n },\n TokenData {\n kind: \"String\",\n text: \"' filter_even([1,2,3,4,5,6]) = ~w~n'\",\n start: 15786,\n end: 15823,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15823,\n end: 15824,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15824,\n end: 15825,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 15825,\n end: 15826,\n },\n TokenData {\n kind: \"Variable\",\n text: \"Evens\",\n start: 15826,\n end: 15831,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 15831,\n end: 15832,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15832,\n end: 15833,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 15833,\n end: 15834,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15834,\n end: 15836,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15836,\n end: 15840,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15840,\n end: 15842,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15842,\n end: 15846,\n },\n TokenData {\n kind: \"Atom\",\n text: \"format\",\n start: 15846,\n end: 15852,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15852,\n end: 15853,\n },\n TokenData {\n kind: \"String\",\n text: \"'~n=== Test completed ===~n'\",\n start: 15853,\n end: 15881,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15881,\n end: 15882,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 15882,\n end: 15883,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15883,\n end: 15885,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15885,\n end: 15887,\n },\n TokenData {\n kind: \"Comment\",\n text: \"% Entry point for testing\",\n start: 15887,\n end: 15912,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 15912,\n end: 15914,\n },\n TokenData {\n kind: \"ColonMinus\",\n text: \":-\",\n start: 15914,\n end: 15916,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 15916,\n end: 15917,\n },\n TokenData {\n kind: \"Atom\",\n text: \"initialization\",\n start: 15917,\n end: 15931,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 15931,\n end: 15932,\n },\n TokenData {\n kind: \"Atom\",\n text: \"demonstrate_prolog\",\n start: 15932,\n end: 15950,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 15950,\n end: 15951,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 15951,\n end: 15952,\n },\n TokenData {\n kind: \"Error\",\n text: \"\",\n start: 15952,\n end: 15952,\n },\n ],\n errors: [],\n}" } [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] lexer::test_prolog_lexer [INFO] [stdout] parser::test_prolog_parser [INFO] [stdout] [INFO] [stdout] test result: FAILED. 1 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "372cdfa0c0402c83e44e7867c946dc6a86240d8f1ab25b2fde1ba532167a11e7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "372cdfa0c0402c83e44e7867c946dc6a86240d8f1ab25b2fde1ba532167a11e7", kill_on_drop: false }` [INFO] [stdout] 372cdfa0c0402c83e44e7867c946dc6a86240d8f1ab25b2fde1ba532167a11e7