[INFO] fetching crate oak-lean 0.0.11... [INFO] testing oak-lean-0.0.11 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate oak-lean 0.0.11 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate oak-lean 0.0.11 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate oak-lean 0.0.11 [INFO] tweaked toml for crates.io crate oak-lean 0.0.11 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oak-lean 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-lean 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] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 4c2e27ead8bf76af3c6fbec8fe141c61be2c5778dbbb4e4e326b1bcbc904278c [INFO] running `Command { std: "docker" "start" "-a" "4c2e27ead8bf76af3c6fbec8fe141c61be2c5778dbbb4e4e326b1bcbc904278c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4c2e27ead8bf76af3c6fbec8fe141c61be2c5778dbbb4e4e326b1bcbc904278c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4c2e27ead8bf76af3c6fbec8fe141c61be2c5778dbbb4e4e326b1bcbc904278c", kill_on_drop: false }` [INFO] [stdout] 4c2e27ead8bf76af3c6fbec8fe141c61be2c5778dbbb4e4e326b1bcbc904278c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 0e2783ad29c009a8263f76dec1e09b200ebdc73371cb713b888a989e920a78f3 [INFO] running `Command { std: "docker" "start" "-a" "0e2783ad29c009a8263f76dec1e09b200ebdc73371cb713b888a989e920a78f3", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling zerocopy v0.8.40 [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 syn v2.0.117 [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-lean v0.0.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Source` and `UniversalElementRole` [INFO] [stdout] --> src/lexer/token_type.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use oak_core::{Source, Token, TokenType, UniversalElementRole, UniversalTokenRole}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Parser` [INFO] [stdout] --> src/parser/element_type.rs:1:29 [INFO] [stdout] | [INFO] [stdout] 1 | use oak_core::{ElementType, Parser, UniversalElementRole}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct LeanLexer<'config> { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 16 | config: &'config LeanLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LeanLexer` has derived impls for the traits `Clone` and `Debug`, 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: type alias `State` is never used [INFO] [stdout] --> src/parser/mod.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) type State<'a, S> = ParserState<'a, LeanLanguage, S>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.67s [INFO] running `Command { std: "docker" "inspect" "0e2783ad29c009a8263f76dec1e09b200ebdc73371cb713b888a989e920a78f3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0e2783ad29c009a8263f76dec1e09b200ebdc73371cb713b888a989e920a78f3", kill_on_drop: false }` [INFO] [stdout] 0e2783ad29c009a8263f76dec1e09b200ebdc73371cb713b888a989e920a78f3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 9e16f42033a30abae4b66292feb87bdde07cfb66e38f38b8815f2187ec419bc1 [INFO] running `Command { std: "docker" "start" "-a" "9e16f42033a30abae4b66292feb87bdde07cfb66e38f38b8815f2187ec419bc1", kill_on_drop: false }` [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stdout] warning: unused imports: `Source` and `UniversalElementRole` [INFO] [stdout] --> src/lexer/token_type.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use oak_core::{Source, Token, TokenType, UniversalElementRole, UniversalTokenRole}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Parser` [INFO] [stdout] --> src/parser/element_type.rs:1:29 [INFO] [stdout] | [INFO] [stdout] 1 | use oak_core::{ElementType, Parser, UniversalElementRole}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct LeanLexer<'config> { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 16 | config: &'config LeanLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LeanLexer` has derived impls for the traits `Clone` and `Debug`, 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: type alias `State` is never used [INFO] [stdout] --> src/parser/mod.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) type State<'a, S> = ParserState<'a, LeanLanguage, S>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling oak-testing v0.0.11 [INFO] [stderr] Compiling oak-lean v0.0.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Source` and `UniversalElementRole` [INFO] [stdout] --> src/lexer/token_type.rs:1:16 [INFO] [stdout] | [INFO] [stdout] 1 | use oak_core::{Source, Token, TokenType, UniversalElementRole, UniversalTokenRole}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Parser` [INFO] [stdout] --> src/parser/element_type.rs:1:29 [INFO] [stdout] | [INFO] [stdout] 1 | use oak_core::{ElementType, Parser, UniversalElementRole}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/lexer/mod.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct LeanLexer<'config> { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 16 | config: &'config LeanLanguage, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LeanLexer` has derived impls for the traits `Clone` and `Debug`, 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: type alias `State` is never used [INFO] [stdout] --> src/parser/mod.rs:10:17 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) type State<'a, S> = ParserState<'a, LeanLanguage, S>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.36s [INFO] running `Command { std: "docker" "inspect" "9e16f42033a30abae4b66292feb87bdde07cfb66e38f38b8815f2187ec419bc1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9e16f42033a30abae4b66292feb87bdde07cfb66e38f38b8815f2187ec419bc1", kill_on_drop: false }` [INFO] [stdout] 9e16f42033a30abae4b66292feb87bdde07cfb66e38f38b8815f2187ec419bc1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 0dd1469819615a91dc7621af53bb1ecc79725848484ad32fdd37a14d5b6698d5 [INFO] running `Command { std: "docker" "start" "-a" "0dd1469819615a91dc7621af53bb1ecc79725848484ad32fdd37a14d5b6698d5", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `Source` and `UniversalElementRole` [INFO] [stderr] --> src/lexer/token_type.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use oak_core::{Source, Token, TokenType, UniversalElementRole, UniversalTokenRole}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Parser` [INFO] [stderr] --> src/parser/element_type.rs:1:29 [INFO] [stderr] | [INFO] [stderr] 1 | use oak_core::{ElementType, Parser, UniversalElementRole}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `config` is never read [INFO] [stderr] --> src/lexer/mod.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 15 | pub struct LeanLexer<'config> { [INFO] [stderr] | --------- field in this struct [INFO] [stderr] 16 | config: &'config LeanLanguage, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `LeanLexer` has derived impls for the traits `Clone` and `Debug`, 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: type alias `State` is never used [INFO] [stderr] --> src/parser/mod.rs:10:17 [INFO] [stderr] | [INFO] [stderr] 10 | pub(crate) type State<'a, S> = ParserState<'a, LeanLanguage, S>; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `oak-lean` (lib) generated 4 warnings (run `cargo fix --lib -p oak-lean` to apply 2 suggestions) [INFO] [stderr] warning: `oak-lean` (lib test) generated 4 warnings (4 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oak_lean-ce819df8c00addbf) [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-8c5481be3837c630) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test ready ... ok [INFO] [stdout] test lexer::test_lean_lexer ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- lexer::test_lean_lexer stdout ---- [INFO] [stdout] Testing file: /opt/rustwide/workdir/tests/lexer/basic.lean [INFO] [stdout] Error: TestFailure { path: "/opt/rustwide/workdir/tests/lexer/basic.lean", expected: "LexerTestExpected {\n success: true,\n count: 100,\n tokens: [\n TokenData {\n kind: \"Universe\",\n text: \"universe\",\n start: 150,\n end: 158,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"u\",\n start: 159,\n end: 160,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"v\",\n start: 161,\n end: 162,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"w\",\n start: 163,\n end: 164,\n },\n TokenData {\n kind: \"Namespace\",\n text: \"namespace\",\n start: 195,\n end: 204,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"BasicTypes\",\n start: 205,\n end: 215,\n },\n TokenData {\n kind: \"Inductive\",\n text: \"inductive\",\n start: 246,\n end: 255,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 256,\n end: 260,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 261,\n end: 262,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 263,\n end: 267,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 268,\n end: 273,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 277,\n end: 278,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"true\",\n start: 279,\n end: 283,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 284,\n end: 285,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 286,\n end: 290,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 294,\n end: 295,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"false\",\n start: 296,\n end: 301,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 302,\n end: 303,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 304,\n end: 308,\n },\n TokenData {\n kind: \"Inductive\",\n text: \"inductive\",\n start: 312,\n end: 321,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 322,\n end: 325,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 326,\n end: 327,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 328,\n end: 332,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 333,\n end: 338,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 342,\n end: 343,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 344,\n end: 348,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 349,\n end: 350,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 351,\n end: 354,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 358,\n end: 359,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 360,\n end: 364,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 365,\n end: 366,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 367,\n end: 370,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 371,\n end: 374,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 375,\n end: 378,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 417,\n end: 420,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"not\",\n start: 421,\n end: 424,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 425,\n end: 426,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 427,\n end: 431,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 432,\n end: 435,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 436,\n end: 440,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 444,\n end: 445,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 446,\n end: 450,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 450,\n end: 451,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"true\",\n start: 451,\n end: 455,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 456,\n end: 457,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 457,\n end: 458,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 459,\n end: 463,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 463,\n end: 464,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"false\",\n start: 464,\n end: 469,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 473,\n end: 474,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 475,\n end: 479,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 479,\n end: 480,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"false\",\n start: 480,\n end: 485,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 486,\n end: 487,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 487,\n end: 488,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 489,\n end: 493,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 493,\n end: 494,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"true\",\n start: 494,\n end: 498,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 502,\n end: 505,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add\",\n start: 506,\n end: 509,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 510,\n end: 511,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 512,\n end: 515,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 516,\n end: 519,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 520,\n end: 523,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 524,\n end: 527,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 528,\n end: 531,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 535,\n end: 536,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 537,\n end: 540,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 540,\n end: 541,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 541,\n end: 545,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 545,\n end: 546,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 547,\n end: 548,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 549,\n end: 550,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 550,\n end: 551,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 552,\n end: 553,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 557,\n end: 558,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 559,\n end: 562,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 562,\n end: 563,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 563,\n end: 567,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 568,\n end: 569,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 569,\n end: 570,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 571,\n end: 572,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 573,\n end: 574,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 574,\n end: 575,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 576,\n end: 579,\n },\n TokenData {\n kind: \"Dot\",\n text: \".\",\n start: 579,\n end: 580,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 580,\n end: 584,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 585,\n end: 586,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add\",\n start: 586,\n end: 589,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 590,\n end: 591,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 592,\n end: 593,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 593,\n end: 594,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 598,\n end: 601,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 602,\n end: 605,\n },\n TokenData {\n kind: \"Colon\",\n text: \":\",\n start: 606,\n end: 607,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 608,\n end: 611,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 612,\n end: 615,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 616,\n end: 619,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 620,\n end: 623,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 624,\n end: 627,\n },\n ],\n errors: [],\n}", actual: "LexerTestExpected {\n success: true,\n count: 5898,\n tokens: [\n TokenData {\n kind: \"Comment\",\n text: \"-- Lean 4 Test File - Comprehensive Syntax Coverage\",\n start: 0,\n end: 51,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 51,\n end: 53,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- This file tests various Lean 4 syntax elements for lexer testing\",\n start: 53,\n end: 120,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 120,\n end: 122,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 122,\n end: 124,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Universe declarations\",\n start: 124,\n end: 148,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 148,\n end: 150,\n },\n TokenData {\n kind: \"Universe\",\n text: \"universe\",\n start: 150,\n end: 158,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 158,\n end: 159,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"u\",\n start: 159,\n end: 160,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 160,\n end: 161,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"v\",\n start: 161,\n end: 162,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 162,\n end: 163,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"w\",\n start: 163,\n end: 164,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 164,\n end: 166,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 166,\n end: 168,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Namespace declarations\",\n start: 168,\n end: 193,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 193,\n end: 195,\n },\n TokenData {\n kind: \"Namespace\",\n text: \"namespace\",\n start: 195,\n end: 204,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 204,\n end: 205,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"BasicTypes\",\n start: 205,\n end: 215,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 215,\n end: 217,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 217,\n end: 219,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Basic type definitions\",\n start: 219,\n end: 244,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 244,\n end: 246,\n },\n TokenData {\n kind: \"Inductive\",\n text: \"inductive\",\n start: 246,\n end: 255,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 255,\n end: 256,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 256,\n end: 260,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 260,\n end: 261,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 261,\n end: 262,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 262,\n end: 263,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 263,\n end: 267,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 267,\n end: 268,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 268,\n end: 273,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 273,\n end: 275,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 275,\n end: 279,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 279,\n end: 280,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 280,\n end: 281,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"true\",\n start: 281,\n end: 285,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 285,\n end: 286,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 286,\n end: 287,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 287,\n end: 288,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 288,\n end: 292,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 292,\n end: 294,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 294,\n end: 298,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 298,\n end: 299,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 299,\n end: 300,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"false\",\n start: 300,\n end: 305,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 305,\n end: 306,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 306,\n end: 307,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 307,\n end: 308,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 308,\n end: 312,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 312,\n end: 314,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 314,\n end: 316,\n },\n TokenData {\n kind: \"Inductive\",\n text: \"inductive\",\n start: 316,\n end: 325,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 325,\n end: 326,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 326,\n end: 329,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 329,\n end: 330,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 330,\n end: 331,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 331,\n end: 332,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 332,\n end: 336,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 336,\n end: 337,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 337,\n end: 342,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 342,\n end: 344,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 344,\n end: 348,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 348,\n end: 349,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 349,\n end: 350,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 350,\n end: 354,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 354,\n end: 355,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 355,\n end: 356,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 356,\n end: 357,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 357,\n end: 360,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 360,\n end: 362,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 362,\n end: 366,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 366,\n end: 367,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 367,\n end: 368,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 368,\n end: 372,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 372,\n end: 373,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 373,\n end: 374,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 374,\n end: 375,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 375,\n end: 378,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 378,\n end: 379,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 379,\n end: 382,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 382,\n end: 383,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 383,\n end: 386,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 386,\n end: 388,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 388,\n end: 390,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Pattern matching and recursion\",\n start: 390,\n end: 423,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 423,\n end: 425,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 425,\n end: 428,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 428,\n end: 429,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"not\",\n start: 429,\n end: 432,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 432,\n end: 433,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 433,\n end: 434,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 434,\n end: 435,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 435,\n end: 439,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 439,\n end: 440,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 440,\n end: 443,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 443,\n end: 444,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 444,\n end: 448,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 448,\n end: 450,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 450,\n end: 454,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 454,\n end: 455,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 455,\n end: 456,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 456,\n end: 460,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 460,\n end: 461,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"true\",\n start: 461,\n end: 465,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 465,\n end: 466,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 466,\n end: 467,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 467,\n end: 468,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 468,\n end: 469,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 469,\n end: 473,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 473,\n end: 474,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"false\",\n start: 474,\n end: 479,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 479,\n end: 481,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 481,\n end: 485,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 485,\n end: 486,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 486,\n end: 487,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 487,\n end: 491,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 491,\n end: 492,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"false\",\n start: 492,\n end: 497,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 497,\n end: 498,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 498,\n end: 499,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 499,\n end: 500,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 500,\n end: 501,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 501,\n end: 505,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 505,\n end: 506,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"true\",\n start: 506,\n end: 510,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 510,\n end: 512,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 512,\n end: 514,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 514,\n end: 517,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 517,\n end: 518,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add\",\n start: 518,\n end: 521,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 521,\n end: 522,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 522,\n end: 523,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 523,\n end: 524,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 524,\n end: 527,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 527,\n end: 528,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 528,\n end: 531,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 531,\n end: 532,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 532,\n end: 535,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 535,\n end: 536,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 536,\n end: 539,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 539,\n end: 540,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 540,\n end: 543,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 543,\n end: 545,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 545,\n end: 549,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 549,\n end: 550,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 550,\n end: 551,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 551,\n end: 554,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 554,\n end: 555,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 555,\n end: 559,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 559,\n end: 560,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 560,\n end: 561,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 561,\n end: 562,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 562,\n end: 563,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 563,\n end: 564,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 564,\n end: 565,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 565,\n end: 566,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 566,\n end: 567,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 567,\n end: 569,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 569,\n end: 573,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 573,\n end: 574,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 574,\n end: 575,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 575,\n end: 578,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 578,\n end: 579,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 579,\n end: 583,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 583,\n end: 584,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 584,\n end: 585,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 585,\n end: 586,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 586,\n end: 587,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 587,\n end: 588,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 588,\n end: 589,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 589,\n end: 590,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 590,\n end: 591,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 591,\n end: 592,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 592,\n end: 595,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 595,\n end: 596,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 596,\n end: 600,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 600,\n end: 601,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 601,\n end: 602,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add\",\n start: 602,\n end: 605,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 605,\n end: 606,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 606,\n end: 607,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 607,\n end: 608,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 608,\n end: 609,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 609,\n end: 610,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 610,\n end: 612,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 612,\n end: 614,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 614,\n end: 617,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 617,\n end: 618,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 618,\n end: 621,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 621,\n end: 622,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 622,\n end: 623,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 623,\n end: 624,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 624,\n end: 627,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 627,\n end: 628,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 628,\n end: 631,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 631,\n end: 632,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 632,\n end: 635,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 635,\n end: 636,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 636,\n end: 639,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 639,\n end: 640,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 640,\n end: 643,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 643,\n end: 645,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 645,\n end: 649,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 649,\n end: 650,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 650,\n end: 651,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 651,\n end: 654,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 654,\n end: 655,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 655,\n end: 659,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 659,\n end: 660,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 660,\n end: 661,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 661,\n end: 662,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 662,\n end: 663,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 663,\n end: 664,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 664,\n end: 665,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 665,\n end: 666,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 666,\n end: 669,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 669,\n end: 670,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 670,\n end: 674,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 674,\n end: 676,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 676,\n end: 680,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 680,\n end: 681,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 681,\n end: 682,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 682,\n end: 685,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 685,\n end: 686,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 686,\n end: 690,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 690,\n end: 691,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 691,\n end: 692,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 692,\n end: 693,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 693,\n end: 694,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 694,\n end: 695,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 695,\n end: 696,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 696,\n end: 697,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 697,\n end: 698,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 698,\n end: 699,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add\",\n start: 699,\n end: 702,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 702,\n end: 703,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 703,\n end: 704,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 704,\n end: 705,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 705,\n end: 706,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 706,\n end: 709,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 709,\n end: 710,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 710,\n end: 711,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 711,\n end: 712,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 712,\n end: 713,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 713,\n end: 714,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 714,\n end: 716,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 716,\n end: 718,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Function definitions with where clause\",\n start: 718,\n end: 759,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 759,\n end: 761,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 761,\n end: 764,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 764,\n end: 765,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"factorial\",\n start: 765,\n end: 774,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 774,\n end: 775,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 775,\n end: 776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 776,\n end: 777,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 777,\n end: 780,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 780,\n end: 781,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 781,\n end: 784,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 784,\n end: 785,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 785,\n end: 788,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 788,\n end: 789,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 789,\n end: 790,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 790,\n end: 791,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 791,\n end: 792,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 792,\n end: 795,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 795,\n end: 796,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 796,\n end: 797,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 797,\n end: 798,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 798,\n end: 799,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 799,\n end: 800,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 800,\n end: 802,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 802,\n end: 806,\n },\n TokenData {\n kind: \"Match\",\n text: \"match\",\n start: 806,\n end: 811,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 811,\n end: 812,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 812,\n end: 813,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 813,\n end: 814,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 814,\n end: 818,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 818,\n end: 820,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 820,\n end: 824,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 824,\n end: 825,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 825,\n end: 826,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 826,\n end: 829,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 829,\n end: 830,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 830,\n end: 834,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 834,\n end: 835,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 835,\n end: 836,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 836,\n end: 837,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 837,\n end: 838,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 838,\n end: 841,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 841,\n end: 842,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 842,\n end: 846,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 846,\n end: 847,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 847,\n end: 850,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 850,\n end: 851,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 851,\n end: 855,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 855,\n end: 857,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 857,\n end: 861,\n },\n TokenData {\n kind: \"Pipe\",\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: \"Identifier\",\n text: \"Nat\",\n start: 863,\n end: 866,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 866,\n end: 867,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 867,\n end: 871,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 871,\n end: 872,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"k\",\n start: 872,\n end: 873,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 873,\n end: 874,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 874,\n end: 875,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 875,\n end: 876,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 876,\n end: 877,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 877,\n end: 880,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 880,\n end: 881,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 881,\n end: 882,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 882,\n end: 885,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 885,\n end: 886,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 886,\n end: 890,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 890,\n end: 891,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"k\",\n start: 891,\n end: 892,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 892,\n end: 893,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 893,\n end: 894,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 894,\n end: 895,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"factorial\",\n start: 895,\n end: 904,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 904,\n end: 905,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"k\",\n start: 905,\n end: 906,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 906,\n end: 907,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 907,\n end: 909,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 909,\n end: 913,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 913,\n end: 918,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 918,\n end: 920,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 920,\n end: 928,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"helper\",\n start: 928,\n end: 934,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 934,\n end: 935,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 935,\n end: 936,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 936,\n end: 937,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 937,\n end: 940,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 940,\n end: 941,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 941,\n end: 944,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 944,\n end: 945,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 945,\n end: 948,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 948,\n end: 949,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 949,\n end: 952,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 952,\n end: 953,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 953,\n end: 956,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 956,\n end: 958,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 958,\n end: 970,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 970,\n end: 971,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 971,\n end: 972,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 972,\n end: 975,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 975,\n end: 976,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 976,\n end: 980,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 980,\n end: 981,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 981,\n end: 982,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"acc\",\n start: 982,\n end: 985,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 985,\n end: 986,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 986,\n end: 987,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 987,\n end: 988,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 988,\n end: 989,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"acc\",\n start: 989,\n end: 992,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 992,\n end: 994,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 994,\n end: 1006,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 1006,\n end: 1007,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1007,\n end: 1008,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 1008,\n end: 1011,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1011,\n end: 1012,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 1012,\n end: 1016,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1016,\n end: 1017,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 1017,\n end: 1018,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1018,\n end: 1019,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1019,\n end: 1020,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"acc\",\n start: 1020,\n end: 1023,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1023,\n end: 1024,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 1024,\n end: 1025,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 1025,\n end: 1026,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1026,\n end: 1027,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"helper\",\n start: 1027,\n end: 1033,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1033,\n end: 1034,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 1034,\n end: 1035,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1035,\n end: 1036,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1036,\n end: 1037,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 1037,\n end: 1040,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1040,\n end: 1041,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1041,\n end: 1042,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 1042,\n end: 1045,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1045,\n end: 1046,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 1046,\n end: 1050,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1050,\n end: 1051,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 1051,\n end: 1052,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1052,\n end: 1053,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1053,\n end: 1054,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"acc\",\n start: 1054,\n end: 1057,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1057,\n end: 1058,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1058,\n end: 1060,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1060,\n end: 1062,\n },\n TokenData {\n kind: \"End\",\n text: \"end\",\n start: 1062,\n end: 1065,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1065,\n end: 1066,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"BasicTypes\",\n start: 1066,\n end: 1076,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1076,\n end: 1078,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1078,\n end: 1080,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Import statements\",\n start: 1080,\n end: 1100,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1100,\n end: 1102,\n },\n TokenData {\n kind: \"Import\",\n text: \"import\",\n start: 1102,\n end: 1108,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1108,\n end: 1109,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Std\",\n start: 1109,\n end: 1112,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1112,\n end: 1113,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Data\",\n start: 1113,\n end: 1117,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1117,\n end: 1118,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 1118,\n end: 1122,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1122,\n end: 1123,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Basic\",\n start: 1123,\n end: 1128,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1128,\n end: 1130,\n },\n TokenData {\n kind: \"Import\",\n text: \"import\",\n start: 1130,\n end: 1136,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1136,\n end: 1137,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Std\",\n start: 1137,\n end: 1140,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1140,\n end: 1141,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Data\",\n start: 1141,\n end: 1145,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1145,\n end: 1146,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 1146,\n end: 1149,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1149,\n end: 1150,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Basic\",\n start: 1150,\n end: 1155,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1155,\n end: 1157,\n },\n TokenData {\n kind: \"Import\",\n text: \"import\",\n start: 1157,\n end: 1163,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1163,\n end: 1164,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Mathlib\",\n start: 1164,\n end: 1171,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1171,\n end: 1172,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Data\",\n start: 1172,\n end: 1176,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1176,\n end: 1177,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Real\",\n start: 1177,\n end: 1181,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 1181,\n end: 1182,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Basic\",\n start: 1182,\n end: 1187,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1187,\n end: 1189,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1189,\n end: 1191,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Open namespaces\",\n start: 1191,\n end: 1209,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1209,\n end: 1211,\n },\n TokenData {\n kind: \"Open\",\n text: \"open\",\n start: 1211,\n end: 1215,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1215,\n end: 1216,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 1216,\n end: 1220,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1220,\n end: 1221,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 1221,\n end: 1224,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1224,\n end: 1226,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1226,\n end: 1228,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Variable declarations\",\n start: 1228,\n end: 1252,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1252,\n end: 1254,\n },\n TokenData {\n kind: \"Variable\",\n text: \"variable\",\n start: 1254,\n end: 1262,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1262,\n end: 1263,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1263,\n end: 1264,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1264,\n end: 1266,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1266,\n end: 1267,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 1267,\n end: 1269,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1269,\n end: 1270,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 1270,\n end: 1272,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1272,\n end: 1273,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1273,\n end: 1274,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1274,\n end: 1275,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 1275,\n end: 1279,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 1279,\n end: 1280,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1280,\n end: 1281,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1281,\n end: 1282,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 1282,\n end: 1283,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Inhabited\",\n start: 1283,\n end: 1292,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1292,\n end: 1293,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1293,\n end: 1295,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 1295,\n end: 1296,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1296,\n end: 1298,\n },\n TokenData {\n kind: \"Variable\",\n text: \"variable\",\n start: 1298,\n end: 1306,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1306,\n end: 1307,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1307,\n end: 1308,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 1308,\n end: 1309,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1309,\n end: 1310,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"q\",\n start: 1310,\n end: 1311,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1311,\n end: 1312,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 1312,\n end: 1313,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1313,\n end: 1314,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1314,\n end: 1315,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1315,\n end: 1316,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Prop\",\n start: 1316,\n end: 1320,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1320,\n end: 1321,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1321,\n end: 1323,\n },\n TokenData {\n kind: \"Variable\",\n text: \"variable\",\n start: 1323,\n end: 1331,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1331,\n end: 1332,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1332,\n end: 1333,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 1333,\n end: 1334,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1334,\n end: 1335,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"y\",\n start: 1335,\n end: 1336,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1336,\n end: 1337,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"z\",\n start: 1337,\n end: 1338,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1338,\n end: 1339,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1339,\n end: 1340,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1340,\n end: 1341,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 1341,\n end: 1344,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1344,\n end: 1345,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1345,\n end: 1347,\n },\n TokenData {\n kind: \"Variable\",\n text: \"variable\",\n start: 1347,\n end: 1355,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1355,\n end: 1356,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1356,\n end: 1357,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 1357,\n end: 1358,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1358,\n end: 1359,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"g\",\n start: 1359,\n end: 1360,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1360,\n end: 1361,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1361,\n end: 1362,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1362,\n end: 1363,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1363,\n end: 1365,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1365,\n end: 1366,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 1366,\n end: 1369,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1369,\n end: 1370,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 1370,\n end: 1372,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1372,\n end: 1373,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1373,\n end: 1375,\n },\n TokenData {\n kind: \"Variable\",\n text: \"variable\",\n start: 1375,\n end: 1383,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1383,\n end: 1384,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1384,\n end: 1385,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 1385,\n end: 1386,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1386,\n end: 1387,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1387,\n end: 1388,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1388,\n end: 1389,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 1389,\n end: 1391,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1391,\n end: 1392,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 1392,\n end: 1395,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1395,\n end: 1396,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 1396,\n end: 1398,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1398,\n end: 1399,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1399,\n end: 1401,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1401,\n end: 1403,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Axiom declarations\",\n start: 1403,\n end: 1424,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1424,\n end: 1426,\n },\n TokenData {\n kind: \"Axiom\",\n text: \"axiom\",\n start: 1426,\n end: 1431,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1431,\n end: 1432,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"choice\",\n start: 1432,\n end: 1438,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1438,\n end: 1439,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1439,\n end: 1440,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1440,\n end: 1441,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 1441,\n end: 1444,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1444,\n end: 1445,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 1445,\n end: 1446,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1446,\n end: 1448,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1448,\n end: 1449,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1449,\n end: 1450,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1450,\n end: 1451,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 1451,\n end: 1455,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 1455,\n end: 1456,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 1456,\n end: 1457,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1457,\n end: 1458,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1458,\n end: 1459,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 1459,\n end: 1460,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1460,\n end: 1461,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1461,\n end: 1462,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1462,\n end: 1463,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1463,\n end: 1465,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1465,\n end: 1466,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 1466,\n end: 1469,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1469,\n end: 1470,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Prop\",\n start: 1470,\n end: 1474,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1474,\n end: 1475,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1475,\n end: 1476,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1476,\n end: 1477,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1477,\n end: 1478,\n },\n TokenData {\n kind: \"Error\",\n text: \"∃\",\n start: 1478,\n end: 1481,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1481,\n end: 1482,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 1482,\n end: 1483,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1483,\n end: 1484,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1484,\n end: 1485,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 1485,\n end: 1486,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1486,\n end: 1487,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 1487,\n end: 1488,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1488,\n end: 1489,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1489,\n end: 1490,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 1490,\n end: 1493,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1493,\n end: 1494,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1494,\n end: 1496,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1496,\n end: 1498,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1498,\n end: 1500,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Constant declarations\",\n start: 1500,\n end: 1524,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1524,\n end: 1526,\n },\n TokenData {\n kind: \"Constant\",\n text: \"constant\",\n start: 1526,\n end: 1534,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1534,\n end: 1535,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"π\",\n start: 1535,\n end: 1537,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1537,\n end: 1538,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1538,\n end: 1539,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1539,\n end: 1540,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℝ\",\n start: 1540,\n end: 1543,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1543,\n end: 1545,\n },\n TokenData {\n kind: \"Constant\",\n text: \"constant\",\n start: 1545,\n end: 1553,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1553,\n end: 1554,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"e\",\n start: 1554,\n end: 1555,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1555,\n end: 1556,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1556,\n end: 1557,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1557,\n end: 1558,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℝ\",\n start: 1558,\n end: 1561,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1561,\n end: 1563,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1563,\n end: 1565,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Structure definitions\",\n start: 1565,\n end: 1589,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1589,\n end: 1591,\n },\n TokenData {\n kind: \"Structure\",\n text: \"structure\",\n start: 1591,\n end: 1600,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1600,\n end: 1601,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Point\",\n start: 1601,\n end: 1606,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1606,\n end: 1607,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1607,\n end: 1608,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1608,\n end: 1610,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1610,\n end: 1611,\n },\n TokenData {\n kind: \"Error\",\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: \"Identifier\",\n text: \"Type\",\n start: 1613,\n end: 1617,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 1617,\n end: 1618,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1618,\n end: 1619,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1619,\n end: 1620,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 1620,\n end: 1625,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1625,\n end: 1627,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1627,\n end: 1631,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 1631,\n end: 1632,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1632,\n end: 1633,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1633,\n end: 1634,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1634,\n end: 1635,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1635,\n end: 1637,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1637,\n end: 1639,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1639,\n end: 1643,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"y\",\n start: 1643,\n end: 1644,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1644,\n end: 1645,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1645,\n end: 1646,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1646,\n end: 1647,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1647,\n end: 1649,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1649,\n end: 1651,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1651,\n end: 1653,\n },\n TokenData {\n kind: \"Structure\",\n text: \"structure\",\n start: 1653,\n end: 1662,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1662,\n end: 1663,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Vector\",\n start: 1663,\n end: 1669,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1669,\n end: 1670,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1670,\n end: 1671,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1671,\n end: 1673,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1673,\n end: 1674,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1674,\n end: 1675,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1675,\n end: 1676,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 1676,\n end: 1680,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 1680,\n end: 1681,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1681,\n end: 1682,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1682,\n end: 1683,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 1683,\n end: 1684,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Add\",\n start: 1684,\n end: 1687,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1687,\n end: 1688,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1688,\n end: 1690,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 1690,\n end: 1691,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1691,\n end: 1692,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 1692,\n end: 1697,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1697,\n end: 1699,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1699,\n end: 1703,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"components\",\n start: 1703,\n end: 1713,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1713,\n end: 1714,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1714,\n end: 1715,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1715,\n end: 1716,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 1716,\n end: 1720,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1720,\n end: 1721,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1721,\n end: 1723,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1723,\n end: 1725,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1725,\n end: 1727,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1727,\n end: 1729,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Class definitions\",\n start: 1729,\n end: 1749,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1749,\n end: 1751,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"class\",\n start: 1751,\n end: 1756,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1756,\n end: 1757,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Monoid\",\n start: 1757,\n end: 1763,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1763,\n end: 1764,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1764,\n end: 1765,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1765,\n end: 1767,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1767,\n end: 1768,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1768,\n end: 1769,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1769,\n end: 1770,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 1770,\n end: 1774,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 1774,\n end: 1775,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1775,\n end: 1776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1776,\n end: 1777,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 1777,\n end: 1782,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1782,\n end: 1784,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1784,\n end: 1788,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"one\",\n start: 1788,\n end: 1791,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1791,\n end: 1792,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1792,\n end: 1793,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1793,\n end: 1794,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1794,\n end: 1796,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1796,\n end: 1798,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1798,\n end: 1802,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\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: \"Error\",\n text: \":\",\n start: 1806,\n end: 1807,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1807,\n end: 1808,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1808,\n end: 1810,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1810,\n end: 1811,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 1811,\n end: 1814,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1814,\n end: 1815,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1815,\n end: 1817,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1817,\n end: 1818,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 1818,\n end: 1821,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1821,\n end: 1822,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1822,\n end: 1824,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1824,\n end: 1826,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1826,\n end: 1830,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"left_one\",\n start: 1830,\n end: 1838,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1838,\n end: 1839,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1839,\n end: 1840,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1840,\n end: 1841,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 1841,\n end: 1844,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1844,\n end: 1845,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 1845,\n end: 1846,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1846,\n end: 1847,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1847,\n end: 1848,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1848,\n end: 1849,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1849,\n end: 1851,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1851,\n end: 1852,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1852,\n end: 1853,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 1853,\n end: 1856,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1856,\n end: 1857,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"one\",\n start: 1857,\n end: 1860,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1860,\n end: 1861,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 1861,\n end: 1862,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1862,\n end: 1863,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 1863,\n end: 1864,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1864,\n end: 1865,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 1865,\n end: 1866,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1866,\n end: 1868,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1868,\n end: 1872,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"right_one\",\n start: 1872,\n end: 1881,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1881,\n end: 1882,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1882,\n end: 1883,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1883,\n end: 1884,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 1884,\n end: 1887,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1887,\n end: 1888,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 1888,\n end: 1889,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1889,\n end: 1890,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1890,\n end: 1891,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1891,\n end: 1892,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1892,\n end: 1894,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1894,\n end: 1895,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1895,\n end: 1896,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 1896,\n end: 1899,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1899,\n end: 1900,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 1900,\n end: 1901,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1901,\n end: 1902,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"one\",\n start: 1902,\n end: 1905,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1905,\n end: 1906,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 1906,\n end: 1907,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1907,\n end: 1908,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 1908,\n end: 1909,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1909,\n end: 1911,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1911,\n end: 1915,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"assoc\",\n start: 1915,\n end: 1920,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1920,\n end: 1921,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1921,\n end: 1922,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1922,\n end: 1923,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 1923,\n end: 1926,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1926,\n end: 1927,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 1927,\n end: 1928,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1928,\n end: 1929,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 1929,\n end: 1930,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1930,\n end: 1931,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 1931,\n end: 1932,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1932,\n end: 1933,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1933,\n end: 1934,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1934,\n end: 1935,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1935,\n end: 1937,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 1937,\n end: 1938,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1938,\n end: 1939,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 1939,\n end: 1942,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1942,\n end: 1943,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1943,\n end: 1944,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 1944,\n end: 1947,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1947,\n end: 1948,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 1948,\n end: 1949,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1949,\n end: 1950,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 1950,\n end: 1951,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1951,\n end: 1952,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1952,\n end: 1953,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 1953,\n end: 1954,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1954,\n end: 1955,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 1955,\n end: 1956,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1956,\n end: 1957,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 1957,\n end: 1960,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1960,\n end: 1961,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 1961,\n end: 1962,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1962,\n end: 1963,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1963,\n end: 1964,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 1964,\n end: 1967,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1967,\n end: 1968,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 1968,\n end: 1969,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1969,\n end: 1970,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 1970,\n end: 1971,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1971,\n end: 1972,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1972,\n end: 1974,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 1974,\n end: 1976,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"class\",\n start: 1976,\n end: 1981,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1981,\n end: 1982,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Group\",\n start: 1982,\n end: 1987,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1987,\n end: 1988,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 1988,\n end: 1989,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 1989,\n end: 1991,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1991,\n end: 1992,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 1992,\n end: 1993,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 1993,\n end: 1994,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 1994,\n end: 1998,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 1998,\n end: 1999,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 1999,\n end: 2000,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2000,\n end: 2001,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"extends\",\n start: 2001,\n end: 2008,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2008,\n end: 2009,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Monoid\",\n start: 2009,\n end: 2015,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2015,\n end: 2016,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2016,\n end: 2018,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2018,\n end: 2019,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 2019,\n end: 2024,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2024,\n end: 2026,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2026,\n end: 2030,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"inv\",\n start: 2030,\n end: 2033,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2033,\n end: 2034,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2034,\n end: 2035,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2035,\n end: 2036,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2036,\n end: 2038,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2038,\n end: 2039,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2039,\n end: 2042,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2042,\n end: 2043,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2043,\n end: 2045,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2045,\n end: 2047,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2047,\n end: 2051,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"left_inv\",\n start: 2051,\n end: 2059,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2059,\n end: 2060,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2060,\n end: 2061,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2061,\n end: 2062,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 2062,\n end: 2065,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2065,\n end: 2066,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 2066,\n end: 2067,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2067,\n end: 2068,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2068,\n end: 2069,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2069,\n end: 2070,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2070,\n end: 2072,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2072,\n end: 2073,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2073,\n end: 2074,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 2074,\n end: 2077,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2077,\n end: 2078,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2078,\n end: 2079,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"inv\",\n start: 2079,\n end: 2082,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2082,\n end: 2083,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 2083,\n end: 2084,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2084,\n end: 2085,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2085,\n end: 2086,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 2086,\n end: 2087,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2087,\n end: 2088,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 2088,\n end: 2089,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2089,\n end: 2090,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"one\",\n start: 2090,\n end: 2093,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2093,\n end: 2095,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2095,\n end: 2097,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Instance definitions\",\n start: 2097,\n end: 2120,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2120,\n end: 2122,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"instance\",\n start: 2122,\n end: 2130,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2130,\n end: 2131,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2131,\n end: 2132,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2132,\n end: 2133,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Monoid\",\n start: 2133,\n end: 2139,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2139,\n end: 2140,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 2140,\n end: 2143,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2143,\n end: 2144,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 2144,\n end: 2149,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2149,\n end: 2151,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2151,\n end: 2155,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"one\",\n start: 2155,\n end: 2158,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2158,\n end: 2159,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2159,\n end: 2160,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 2160,\n end: 2161,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2161,\n end: 2162,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 2162,\n end: 2163,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2163,\n end: 2165,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2165,\n end: 2169,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mul\",\n start: 2169,\n end: 2172,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2172,\n end: 2173,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2173,\n end: 2174,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 2174,\n end: 2175,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2175,\n end: 2176,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2176,\n end: 2177,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 2177,\n end: 2179,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2179,\n end: 2180,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 2180,\n end: 2181,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2181,\n end: 2182,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 2182,\n end: 2184,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2184,\n end: 2185,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2185,\n end: 2187,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2187,\n end: 2191,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"left_one\",\n start: 2191,\n end: 2199,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2199,\n end: 2200,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2200,\n end: 2201,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 2201,\n end: 2202,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2202,\n end: 2203,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 2203,\n end: 2206,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 2206,\n end: 2207,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero_add\",\n start: 2207,\n end: 2215,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2215,\n end: 2217,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2217,\n end: 2221,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"right_one\",\n start: 2221,\n end: 2230,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2230,\n end: 2231,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2231,\n end: 2232,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 2232,\n end: 2233,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2233,\n end: 2234,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 2234,\n end: 2237,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 2237,\n end: 2238,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_zero\",\n start: 2238,\n end: 2246,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2246,\n end: 2248,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2248,\n end: 2252,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"assoc\",\n start: 2252,\n end: 2257,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2257,\n end: 2258,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2258,\n end: 2259,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 2259,\n end: 2260,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2260,\n end: 2261,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 2261,\n end: 2264,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 2264,\n end: 2265,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_assoc\",\n start: 2265,\n end: 2274,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2274,\n end: 2276,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2276,\n end: 2278,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Inductive types with parameters\",\n start: 2278,\n end: 2312,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2312,\n end: 2314,\n },\n TokenData {\n kind: \"Inductive\",\n text: \"inductive\",\n start: 2314,\n end: 2323,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2323,\n end: 2324,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 2324,\n end: 2328,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2328,\n end: 2329,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2329,\n end: 2330,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2330,\n end: 2332,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2332,\n end: 2333,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2333,\n end: 2334,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2334,\n end: 2335,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 2335,\n end: 2339,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 2339,\n end: 2340,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2340,\n end: 2341,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2341,\n end: 2342,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2342,\n end: 2343,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2343,\n end: 2344,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 2344,\n end: 2348,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 2348,\n end: 2349,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2349,\n end: 2350,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 2350,\n end: 2355,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2355,\n end: 2357,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2357,\n end: 2361,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 2361,\n end: 2362,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2362,\n end: 2363,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nil\",\n start: 2363,\n end: 2366,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2366,\n end: 2367,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2367,\n end: 2368,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2368,\n end: 2369,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 2369,\n end: 2373,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2373,\n end: 2374,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2374,\n end: 2376,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2376,\n end: 2378,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2378,\n end: 2382,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 2382,\n end: 2383,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2383,\n end: 2384,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cons\",\n start: 2384,\n end: 2388,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2388,\n end: 2389,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2389,\n end: 2390,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2390,\n end: 2391,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2391,\n end: 2393,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2393,\n end: 2394,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2394,\n end: 2397,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2397,\n end: 2398,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 2398,\n end: 2402,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2402,\n end: 2403,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2403,\n end: 2405,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2405,\n end: 2406,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2406,\n end: 2409,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2409,\n end: 2410,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 2410,\n end: 2414,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2414,\n end: 2415,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2415,\n end: 2417,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2417,\n end: 2419,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2419,\n end: 2421,\n },\n TokenData {\n kind: \"Inductive\",\n text: \"inductive\",\n start: 2421,\n end: 2430,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2430,\n end: 2431,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Tree\",\n start: 2431,\n end: 2435,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2435,\n end: 2436,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2436,\n end: 2437,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2437,\n end: 2439,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2439,\n end: 2440,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2440,\n end: 2441,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2441,\n end: 2442,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 2442,\n end: 2446,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 2446,\n end: 2447,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2447,\n end: 2448,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2448,\n end: 2449,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2449,\n end: 2450,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2450,\n end: 2451,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 2451,\n end: 2455,\n },\n TokenData {\n kind: \"Star\",\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: \"Where\",\n text: \"where\",\n start: 2457,\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: \"Pipe\",\n text: \"|\",\n start: 2468,\n end: 2469,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2469,\n end: 2470,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"leaf\",\n start: 2470,\n end: 2474,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2474,\n end: 2475,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2475,\n end: 2476,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2476,\n end: 2477,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2477,\n end: 2479,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2479,\n end: 2480,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2480,\n end: 2483,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2483,\n end: 2484,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Tree\",\n start: 2484,\n end: 2488,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2488,\n end: 2489,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2489,\n end: 2491,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2491,\n end: 2493,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2493,\n end: 2497,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 2497,\n end: 2498,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2498,\n end: 2499,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"node\",\n start: 2499,\n end: 2503,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2503,\n end: 2504,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2504,\n end: 2505,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2505,\n end: 2506,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Tree\",\n start: 2506,\n end: 2510,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2510,\n end: 2511,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2511,\n end: 2513,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2513,\n end: 2514,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2514,\n end: 2517,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2517,\n end: 2518,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Tree\",\n start: 2518,\n end: 2522,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2522,\n end: 2523,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2523,\n end: 2525,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2525,\n end: 2526,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2526,\n end: 2529,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2529,\n end: 2530,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Tree\",\n start: 2530,\n end: 2534,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2534,\n end: 2535,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2535,\n end: 2537,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2537,\n end: 2539,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2539,\n end: 2541,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Mutual inductive types\",\n start: 2541,\n end: 2566,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2566,\n end: 2568,\n },\n TokenData {\n kind: \"Mutual\",\n text: \"mutual\",\n start: 2568,\n end: 2574,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2574,\n end: 2576,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2576,\n end: 2580,\n },\n TokenData {\n kind: \"Inductive\",\n text: \"inductive\",\n start: 2580,\n end: 2589,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2589,\n end: 2590,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Even\",\n start: 2590,\n end: 2594,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2594,\n end: 2595,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2595,\n end: 2596,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2596,\n end: 2597,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 2597,\n end: 2600,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2600,\n end: 2601,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2601,\n end: 2604,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2604,\n end: 2605,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Prop\",\n start: 2605,\n end: 2609,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2609,\n end: 2610,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 2610,\n end: 2615,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2615,\n end: 2617,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2617,\n end: 2625,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 2625,\n end: 2626,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2626,\n end: 2627,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 2627,\n end: 2631,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2631,\n end: 2632,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2632,\n end: 2633,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2633,\n end: 2634,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Even\",\n start: 2634,\n end: 2638,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2638,\n end: 2639,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 2639,\n end: 2640,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2640,\n end: 2642,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2642,\n end: 2650,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 2650,\n end: 2651,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2651,\n end: 2652,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 2652,\n end: 2656,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2656,\n end: 2657,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2657,\n end: 2658,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2658,\n end: 2659,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 2659,\n end: 2662,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2662,\n end: 2663,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 2663,\n end: 2664,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2664,\n end: 2665,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2665,\n end: 2666,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Odd\",\n start: 2666,\n end: 2669,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2669,\n end: 2670,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 2670,\n end: 2671,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2671,\n end: 2672,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2672,\n end: 2675,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2675,\n end: 2676,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Even\",\n start: 2676,\n end: 2680,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2680,\n end: 2681,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2681,\n end: 2682,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 2682,\n end: 2683,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2683,\n end: 2684,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 2684,\n end: 2685,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2685,\n end: 2686,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 2686,\n end: 2687,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2687,\n end: 2688,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2688,\n end: 2690,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2690,\n end: 2692,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2692,\n end: 2694,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2694,\n end: 2698,\n },\n TokenData {\n kind: \"Inductive\",\n text: \"inductive\",\n start: 2698,\n end: 2707,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2707,\n end: 2708,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Odd\",\n start: 2708,\n end: 2711,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2711,\n end: 2712,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2712,\n end: 2713,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2713,\n end: 2714,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 2714,\n end: 2717,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2717,\n end: 2718,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2718,\n end: 2721,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2721,\n end: 2722,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Prop\",\n start: 2722,\n end: 2726,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2726,\n end: 2727,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 2727,\n end: 2732,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2732,\n end: 2734,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2734,\n end: 2742,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 2742,\n end: 2743,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2743,\n end: 2744,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"one\",\n start: 2744,\n end: 2747,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2747,\n end: 2748,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2748,\n end: 2749,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2749,\n end: 2750,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Odd\",\n start: 2750,\n end: 2753,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2753,\n end: 2754,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 2754,\n end: 2755,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2755,\n end: 2757,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2757,\n end: 2765,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 2765,\n end: 2766,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2766,\n end: 2767,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 2767,\n end: 2771,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2771,\n end: 2772,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2772,\n end: 2773,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2773,\n end: 2774,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 2774,\n end: 2777,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2777,\n end: 2778,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 2778,\n end: 2779,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 2779,\n end: 2780,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2780,\n end: 2781,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Even\",\n start: 2781,\n end: 2785,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2785,\n end: 2786,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 2786,\n end: 2787,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2787,\n end: 2788,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2788,\n end: 2791,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2791,\n end: 2792,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Odd\",\n start: 2792,\n end: 2795,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2795,\n end: 2796,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2796,\n end: 2797,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 2797,\n end: 2798,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2798,\n end: 2799,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 2799,\n end: 2800,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2800,\n end: 2801,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 2801,\n end: 2802,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2802,\n end: 2803,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2803,\n end: 2805,\n },\n TokenData {\n kind: \"End\",\n text: \"end\",\n start: 2805,\n end: 2808,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2808,\n end: 2810,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2810,\n end: 2812,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Dependent types\",\n start: 2812,\n end: 2830,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2830,\n end: 2832,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 2832,\n end: 2835,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2835,\n end: 2836,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Vector'\",\n start: 2836,\n end: 2843,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2843,\n end: 2844,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2844,\n end: 2845,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2845,\n end: 2847,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2847,\n end: 2848,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2848,\n end: 2849,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2849,\n end: 2850,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 2850,\n end: 2854,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 2854,\n end: 2855,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2855,\n end: 2856,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2856,\n end: 2857,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2857,\n end: 2858,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 2858,\n end: 2859,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2859,\n end: 2860,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2860,\n end: 2861,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2861,\n end: 2862,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 2862,\n end: 2865,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2865,\n end: 2866,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2866,\n end: 2867,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2867,\n end: 2868,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2868,\n end: 2869,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 2869,\n end: 2873,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 2873,\n end: 2874,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2874,\n end: 2875,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2875,\n end: 2876,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 2876,\n end: 2877,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2877,\n end: 2878,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 2878,\n end: 2879,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2879,\n end: 2880,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l\",\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: \"Error\",\n text: \":\",\n start: 2882,\n end: 2883,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2883,\n end: 2884,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 2884,\n end: 2888,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2888,\n end: 2889,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2889,\n end: 2891,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2891,\n end: 2892,\n },\n TokenData {\n kind: \"Slash\",\n text: \"/\",\n start: 2892,\n end: 2893,\n },\n TokenData {\n kind: \"Slash\",\n text: \"/\",\n start: 2893,\n end: 2894,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2894,\n end: 2895,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l\",\n start: 2895,\n end: 2896,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 2896,\n end: 2897,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length\",\n start: 2897,\n end: 2903,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2903,\n end: 2904,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 2904,\n end: 2905,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2905,\n end: 2906,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 2906,\n end: 2907,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2907,\n end: 2908,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 2908,\n end: 2909,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2909,\n end: 2911,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2911,\n end: 2913,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Function types and lambda expressions\",\n start: 2913,\n end: 2953,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 2953,\n end: 2955,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 2955,\n end: 2958,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2958,\n end: 2959,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"compose\",\n start: 2959,\n end: 2966,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2966,\n end: 2967,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 2967,\n end: 2968,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2968,\n end: 2969,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2969,\n end: 2970,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 2970,\n end: 2972,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2972,\n end: 2973,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2973,\n end: 2976,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2976,\n end: 2977,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 2977,\n end: 2979,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2979,\n end: 2980,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2980,\n end: 2981,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2981,\n end: 2984,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2984,\n end: 2985,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 2985,\n end: 2986,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 2986,\n end: 2988,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2988,\n end: 2989,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2989,\n end: 2992,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2992,\n end: 2993,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 2993,\n end: 2995,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 2995,\n end: 2996,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 2996,\n end: 2997,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 2997,\n end: 3000,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3000,\n end: 3001,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3001,\n end: 3002,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 3002,\n end: 3004,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3004,\n end: 3005,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3005,\n end: 3008,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3008,\n end: 3009,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 3009,\n end: 3011,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3011,\n end: 3012,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3012,\n end: 3013,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3013,\n end: 3014,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3014,\n end: 3015,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3015,\n end: 3016,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 3016,\n end: 3019,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3019,\n end: 3020,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"g\",\n start: 3020,\n end: 3021,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3021,\n end: 3022,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 3022,\n end: 3023,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3023,\n end: 3024,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3024,\n end: 3025,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3025,\n end: 3026,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3026,\n end: 3027,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 3027,\n end: 3030,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3030,\n end: 3031,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 3031,\n end: 3032,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3032,\n end: 3033,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3033,\n end: 3034,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3034,\n end: 3035,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3035,\n end: 3036,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"g\",\n start: 3036,\n end: 3037,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3037,\n end: 3038,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3038,\n end: 3039,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 3039,\n end: 3040,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3040,\n end: 3041,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 3041,\n end: 3042,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3042,\n end: 3043,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3043,\n end: 3045,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3045,\n end: 3047,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 3047,\n end: 3050,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3050,\n end: 3051,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"curry\",\n start: 3051,\n end: 3056,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3056,\n end: 3057,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3057,\n end: 3058,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3058,\n end: 3059,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3059,\n end: 3060,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 3060,\n end: 3062,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3062,\n end: 3063,\n },\n TokenData {\n kind: \"Error\",\n text: \"×\",\n start: 3063,\n end: 3065,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3065,\n end: 3066,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 3066,\n end: 3068,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3068,\n end: 3069,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3069,\n end: 3072,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3072,\n end: 3073,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 3073,\n end: 3075,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3075,\n end: 3076,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3076,\n end: 3077,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3077,\n end: 3080,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3080,\n end: 3081,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3081,\n end: 3082,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 3082,\n end: 3084,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3084,\n end: 3085,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3085,\n end: 3088,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3088,\n end: 3089,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 3089,\n end: 3091,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3091,\n end: 3092,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3092,\n end: 3095,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3095,\n end: 3096,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 3096,\n end: 3098,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3098,\n end: 3099,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3099,\n end: 3100,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3100,\n end: 3101,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3101,\n end: 3102,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3102,\n end: 3103,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 3103,\n end: 3106,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3106,\n end: 3107,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 3107,\n end: 3108,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3108,\n end: 3109,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3109,\n end: 3110,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3110,\n end: 3111,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3111,\n end: 3112,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 3112,\n end: 3115,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3115,\n end: 3116,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3116,\n end: 3117,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3117,\n end: 3118,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 3118,\n end: 3119,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3119,\n end: 3120,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3120,\n end: 3121,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3121,\n end: 3122,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3122,\n end: 3123,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 3123,\n end: 3124,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3124,\n end: 3125,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3125,\n end: 3126,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3126,\n end: 3127,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3127,\n end: 3128,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3128,\n end: 3129,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 3129,\n end: 3130,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3130,\n end: 3131,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3131,\n end: 3133,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3133,\n end: 3135,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 3135,\n end: 3138,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3138,\n end: 3139,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"uncurry\",\n start: 3139,\n end: 3146,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3146,\n end: 3147,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3147,\n end: 3148,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3148,\n end: 3149,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3149,\n end: 3150,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 3150,\n end: 3152,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3152,\n end: 3153,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3153,\n end: 3156,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3156,\n end: 3157,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 3157,\n end: 3159,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3159,\n end: 3160,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3160,\n end: 3163,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3163,\n end: 3164,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 3164,\n end: 3166,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3166,\n end: 3167,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3167,\n end: 3168,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3168,\n end: 3171,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3171,\n end: 3172,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3172,\n end: 3173,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 3173,\n end: 3175,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3175,\n end: 3176,\n },\n TokenData {\n kind: \"Error\",\n text: \"×\",\n start: 3176,\n end: 3178,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3178,\n end: 3179,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 3179,\n end: 3181,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3181,\n end: 3182,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3182,\n end: 3185,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3185,\n end: 3186,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 3186,\n end: 3188,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3188,\n end: 3189,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3189,\n end: 3190,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3190,\n end: 3191,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3191,\n end: 3192,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3192,\n end: 3193,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 3193,\n end: 3196,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3196,\n end: 3197,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 3197,\n end: 3198,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3198,\n end: 3199,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3199,\n end: 3200,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3200,\n end: 3201,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3201,\n end: 3202,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 3202,\n end: 3205,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3205,\n end: 3206,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟨\",\n start: 3206,\n end: 3209,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3209,\n end: 3210,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3210,\n end: 3211,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3211,\n end: 3212,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 3212,\n end: 3213,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟩\",\n start: 3213,\n end: 3216,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3216,\n end: 3217,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3217,\n end: 3218,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3218,\n end: 3219,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3219,\n end: 3220,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 3220,\n end: 3221,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3221,\n end: 3222,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3222,\n end: 3223,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3223,\n end: 3224,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 3224,\n end: 3225,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3225,\n end: 3227,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3227,\n end: 3229,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Pattern matching with complex patterns\",\n start: 3229,\n end: 3270,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3270,\n end: 3272,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 3272,\n end: 3275,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3275,\n end: 3276,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"listLength\",\n start: 3276,\n end: 3286,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3286,\n end: 3287,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3287,\n end: 3288,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3288,\n end: 3289,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 3289,\n end: 3293,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3293,\n end: 3294,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 3294,\n end: 3296,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3296,\n end: 3297,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3297,\n end: 3300,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3300,\n end: 3301,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 3301,\n end: 3304,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3304,\n end: 3306,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3306,\n end: 3310,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3310,\n end: 3311,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3311,\n end: 3312,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3312,\n end: 3313,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3313,\n end: 3314,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3314,\n end: 3315,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3315,\n end: 3316,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3316,\n end: 3317,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3317,\n end: 3318,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 3318,\n end: 3319,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3319,\n end: 3321,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3321,\n end: 3325,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3325,\n end: 3326,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3326,\n end: 3327,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 3327,\n end: 3328,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3328,\n end: 3329,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3329,\n end: 3330,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\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: \"Identifier\",\n text: \"xs\",\n start: 3332,\n end: 3334,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3334,\n end: 3335,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3335,\n end: 3336,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3336,\n end: 3337,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3337,\n end: 3338,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 3338,\n end: 3339,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3339,\n end: 3340,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 3340,\n end: 3341,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3341,\n end: 3342,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"listLength\",\n start: 3342,\n end: 3352,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3352,\n end: 3353,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 3353,\n end: 3355,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3355,\n end: 3357,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3357,\n end: 3359,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 3359,\n end: 3362,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3362,\n end: 3363,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"listMap\",\n start: 3363,\n end: 3370,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3370,\n end: 3371,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3371,\n end: 3372,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\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: \"Error\",\n text: \":\",\n start: 3374,\n end: 3375,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3375,\n end: 3376,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 3376,\n end: 3378,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3378,\n end: 3379,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3379,\n end: 3382,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3382,\n end: 3383,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 3383,\n end: 3385,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3385,\n end: 3386,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3386,\n end: 3387,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3387,\n end: 3388,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3388,\n end: 3389,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 3389,\n end: 3393,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3393,\n end: 3394,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 3394,\n end: 3396,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3396,\n end: 3397,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3397,\n end: 3400,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3400,\n end: 3401,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 3401,\n end: 3405,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3405,\n end: 3406,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 3406,\n end: 3408,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3408,\n end: 3410,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3410,\n end: 3414,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3414,\n end: 3415,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3415,\n end: 3416,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3416,\n end: 3417,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3417,\n end: 3418,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3418,\n end: 3419,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3419,\n end: 3420,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3420,\n end: 3421,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3421,\n end: 3422,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3422,\n end: 3423,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3423,\n end: 3424,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3424,\n end: 3426,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3426,\n end: 3430,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3430,\n end: 3431,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3431,\n end: 3432,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 3432,\n end: 3433,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3433,\n end: 3434,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3434,\n end: 3435,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3435,\n end: 3436,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3436,\n end: 3437,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 3437,\n end: 3439,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3439,\n end: 3440,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3440,\n end: 3441,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3441,\n end: 3442,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3442,\n end: 3443,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 3443,\n end: 3444,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3444,\n end: 3445,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 3445,\n end: 3446,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3446,\n end: 3447,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3447,\n end: 3448,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3448,\n end: 3449,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3449,\n end: 3450,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"listMap\",\n start: 3450,\n end: 3457,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3457,\n end: 3458,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 3458,\n end: 3459,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3459,\n end: 3460,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 3460,\n end: 3462,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3462,\n end: 3464,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3464,\n end: 3466,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 3466,\n end: 3469,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3469,\n end: 3470,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"listFilter\",\n start: 3470,\n end: 3480,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3480,\n end: 3481,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3481,\n end: 3482,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 3482,\n end: 3483,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3483,\n end: 3484,\n },\n TokenData {\n kind: \"Error\",\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: \"Identifier\",\n text: \"α\",\n start: 3486,\n end: 3488,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3488,\n end: 3489,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3489,\n end: 3492,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3492,\n end: 3493,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 3493,\n end: 3497,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3497,\n end: 3498,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3498,\n end: 3499,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3499,\n end: 3500,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3500,\n end: 3501,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 3501,\n end: 3505,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3505,\n end: 3506,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 3506,\n end: 3508,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3508,\n end: 3509,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 3509,\n end: 3512,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3512,\n end: 3513,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 3513,\n end: 3517,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3517,\n end: 3518,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 3518,\n end: 3520,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3520,\n end: 3522,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3522,\n end: 3526,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3526,\n end: 3527,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3527,\n end: 3528,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3528,\n end: 3529,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3529,\n end: 3530,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3530,\n end: 3531,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3531,\n end: 3532,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3532,\n end: 3533,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3533,\n end: 3534,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3534,\n end: 3535,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3535,\n end: 3536,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3536,\n end: 3538,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3538,\n end: 3542,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3542,\n end: 3543,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3543,\n end: 3544,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 3544,\n end: 3545,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3545,\n end: 3546,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3546,\n end: 3547,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3547,\n end: 3548,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3548,\n end: 3549,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 3549,\n end: 3551,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3551,\n end: 3552,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3552,\n end: 3553,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3553,\n end: 3554,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3554,\n end: 3555,\n },\n TokenData {\n kind: \"If\",\n text: \"if\",\n start: 3555,\n end: 3557,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3557,\n end: 3558,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 3558,\n end: 3559,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3559,\n end: 3560,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 3560,\n end: 3561,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3561,\n end: 3562,\n },\n TokenData {\n kind: \"Then\",\n text: \"then\",\n start: 3562,\n end: 3566,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3566,\n end: 3567,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 3567,\n end: 3568,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3568,\n end: 3569,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3569,\n end: 3570,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3570,\n end: 3571,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3571,\n end: 3572,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"listFilter\",\n start: 3572,\n end: 3582,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3582,\n end: 3583,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 3583,\n end: 3584,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3584,\n end: 3585,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 3585,\n end: 3587,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3587,\n end: 3588,\n },\n TokenData {\n kind: \"Else\",\n text: \"else\",\n start: 3588,\n end: 3592,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3592,\n end: 3593,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"listFilter\",\n start: 3593,\n end: 3603,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3603,\n end: 3604,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 3604,\n end: 3605,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3605,\n end: 3606,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 3606,\n end: 3608,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3608,\n end: 3610,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3610,\n end: 3612,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Theorem statements and proofs\",\n start: 3612,\n end: 3644,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3644,\n end: 3646,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 3646,\n end: 3653,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3653,\n end: 3654,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_comm\",\n start: 3654,\n end: 3662,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3662,\n end: 3663,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3663,\n end: 3664,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3664,\n end: 3665,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3665,\n end: 3666,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 3666,\n end: 3667,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3667,\n end: 3668,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3668,\n end: 3669,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3669,\n end: 3670,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 3670,\n end: 3673,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3673,\n end: 3674,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3674,\n end: 3675,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3675,\n end: 3676,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3676,\n end: 3677,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\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: \"Plus\",\n text: \"+\",\n start: 3679,\n end: 3680,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3680,\n end: 3681,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 3681,\n end: 3682,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3682,\n end: 3683,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3683,\n end: 3684,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3684,\n end: 3685,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 3685,\n end: 3686,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3686,\n end: 3687,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 3687,\n end: 3688,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3688,\n end: 3689,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3689,\n end: 3690,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3690,\n end: 3691,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3691,\n end: 3692,\n },\n TokenData {\n kind: \"Eq\",\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: \"Identifier\",\n text: \"by\",\n start: 3694,\n end: 3696,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3696,\n end: 3698,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3698,\n end: 3702,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"induction\",\n start: 3702,\n end: 3711,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3711,\n end: 3712,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3712,\n end: 3713,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3713,\n end: 3714,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 3714,\n end: 3718,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3718,\n end: 3720,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3720,\n end: 3724,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3724,\n end: 3725,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3725,\n end: 3726,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 3726,\n end: 3730,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3730,\n end: 3731,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3731,\n end: 3732,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3732,\n end: 3733,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3733,\n end: 3734,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 3734,\n end: 3738,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3738,\n end: 3739,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3739,\n end: 3740,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 3740,\n end: 3743,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 3743,\n end: 3744,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero_add\",\n start: 3744,\n end: 3752,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\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: \"Identifier\",\n text: \"Nat\",\n start: 3754,\n end: 3757,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 3757,\n end: 3758,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_zero\",\n start: 3758,\n end: 3766,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3766,\n end: 3767,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3767,\n end: 3769,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3769,\n end: 3773,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3773,\n end: 3774,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3774,\n end: 3775,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 3775,\n end: 3779,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3779,\n end: 3780,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3780,\n end: 3781,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3781,\n end: 3782,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 3782,\n end: 3784,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3784,\n end: 3785,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3785,\n end: 3786,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3786,\n end: 3787,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3787,\n end: 3788,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3788,\n end: 3790,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3790,\n end: 3798,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 3798,\n end: 3800,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3800,\n end: 3801,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3801,\n end: 3802,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 3802,\n end: 3805,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 3805,\n end: 3806,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ_add\",\n start: 3806,\n end: 3814,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3814,\n end: 3815,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3815,\n end: 3816,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 3816,\n end: 3819,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 3819,\n end: 3820,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_succ\",\n start: 3820,\n end: 3828,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 3828,\n end: 3829,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3829,\n end: 3830,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 3830,\n end: 3832,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3832,\n end: 3833,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3833,\n end: 3835,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3835,\n end: 3837,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 3837,\n end: 3844,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3844,\n end: 3845,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_assoc\",\n start: 3845,\n end: 3854,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3854,\n end: 3855,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3855,\n end: 3856,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3856,\n end: 3857,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3857,\n end: 3858,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\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: \"Identifier\",\n text: \"c\",\n start: 3860,\n end: 3861,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3861,\n end: 3862,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3862,\n end: 3863,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3863,\n end: 3864,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 3864,\n end: 3867,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3867,\n end: 3868,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3868,\n end: 3869,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3869,\n end: 3870,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3870,\n end: 3871,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3871,\n end: 3872,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3872,\n end: 3873,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3873,\n end: 3874,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 3874,\n end: 3875,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3875,\n end: 3876,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 3876,\n end: 3877,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3877,\n end: 3878,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3878,\n end: 3879,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 3879,\n end: 3880,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3880,\n end: 3881,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 3881,\n end: 3882,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3882,\n end: 3883,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3883,\n end: 3884,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3884,\n end: 3885,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\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: \"Plus\",\n text: \"+\",\n start: 3887,\n end: 3888,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3888,\n end: 3889,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 3889,\n end: 3890,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 3890,\n end: 3891,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3891,\n end: 3892,\n },\n TokenData {\n kind: \"Plus\",\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: \"Identifier\",\n text: \"c\",\n start: 3894,\n end: 3895,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 3895,\n end: 3896,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3896,\n end: 3897,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 3897,\n end: 3898,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3898,\n end: 3899,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3899,\n end: 3900,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 3900,\n end: 3902,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3902,\n end: 3904,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3904,\n end: 3908,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"induction\",\n start: 3908,\n end: 3917,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3917,\n end: 3918,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\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: \"With\",\n text: \"with\",\n start: 3920,\n end: 3924,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3924,\n end: 3926,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3926,\n end: 3930,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3930,\n end: 3931,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3931,\n end: 3932,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 3932,\n end: 3936,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3936,\n end: 3937,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3937,\n end: 3938,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3938,\n end: 3939,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3939,\n end: 3940,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 3940,\n end: 3944,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3944,\n end: 3945,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3945,\n end: 3946,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 3946,\n end: 3949,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 3949,\n end: 3950,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero_add\",\n start: 3950,\n end: 3958,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 3958,\n end: 3959,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3959,\n end: 3961,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3961,\n end: 3965,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 3965,\n end: 3966,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3966,\n end: 3967,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 3967,\n end: 3971,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3971,\n end: 3972,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 3972,\n end: 3973,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3973,\n end: 3974,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 3974,\n end: 3976,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3976,\n end: 3977,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 3977,\n end: 3978,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 3978,\n end: 3979,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3979,\n end: 3980,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 3980,\n end: 3982,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3982,\n end: 3990,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 3990,\n end: 3992,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 3992,\n end: 3993,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 3993,\n end: 3994,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 3994,\n end: 3997,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 3997,\n end: 3998,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ_add\",\n start: 3998,\n end: 4006,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4006,\n end: 4007,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4007,\n end: 4008,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 4008,\n end: 4011,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4011,\n end: 4012,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ_add\",\n start: 4012,\n end: 4020,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4020,\n end: 4021,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4021,\n end: 4022,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 4022,\n end: 4025,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4025,\n end: 4026,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ_add\",\n start: 4026,\n end: 4034,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4034,\n end: 4035,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4035,\n end: 4036,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 4036,\n end: 4038,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4038,\n end: 4039,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4039,\n end: 4041,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4041,\n end: 4043,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Lemma with detailed proof\",\n start: 4043,\n end: 4071,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4071,\n end: 4073,\n },\n TokenData {\n kind: \"Lemma\",\n text: \"lemma\",\n start: 4073,\n end: 4078,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4078,\n end: 4079,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"list_length_append\",\n start: 4079,\n end: 4097,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4097,\n end: 4098,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4098,\n end: 4099,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l₁\",\n start: 4099,\n end: 4103,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4103,\n end: 4104,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l₂\",\n start: 4104,\n end: 4108,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4108,\n end: 4109,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4109,\n end: 4110,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4110,\n end: 4111,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 4111,\n end: 4115,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4115,\n end: 4116,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 4116,\n end: 4118,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4118,\n end: 4119,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4119,\n end: 4120,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4120,\n end: 4121,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4121,\n end: 4122,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4122,\n end: 4124,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4124,\n end: 4128,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4128,\n end: 4129,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l₁\",\n start: 4129,\n end: 4133,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4133,\n end: 4134,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 4134,\n end: 4135,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 4135,\n end: 4136,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4136,\n end: 4137,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l₂\",\n start: 4137,\n end: 4141,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4141,\n end: 4142,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4142,\n end: 4143,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length\",\n start: 4143,\n end: 4149,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4149,\n end: 4150,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4150,\n end: 4151,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4151,\n end: 4152,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l₁\",\n start: 4152,\n end: 4156,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4156,\n end: 4157,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length\",\n start: 4157,\n end: 4163,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4163,\n end: 4164,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 4164,\n end: 4165,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4165,\n end: 4166,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l₂\",\n start: 4166,\n end: 4170,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4170,\n end: 4171,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length\",\n start: 4171,\n end: 4177,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4177,\n end: 4178,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4178,\n end: 4179,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4179,\n end: 4180,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4180,\n end: 4181,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 4181,\n end: 4183,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4183,\n end: 4185,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4185,\n end: 4189,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"induction\",\n start: 4189,\n end: 4198,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4198,\n end: 4199,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l₁\",\n start: 4199,\n end: 4203,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4203,\n end: 4204,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 4204,\n end: 4208,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4208,\n end: 4210,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4210,\n end: 4214,\n },\n TokenData {\n kind: \"Pipe\",\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: \"Identifier\",\n text: \"nil\",\n start: 4216,\n end: 4219,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4219,\n end: 4220,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4220,\n end: 4221,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 4221,\n end: 4222,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4222,\n end: 4223,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 4223,\n end: 4227,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4227,\n end: 4228,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4228,\n end: 4229,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 4229,\n end: 4233,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4233,\n end: 4234,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nil_append\",\n start: 4234,\n end: 4244,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4244,\n end: 4245,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4245,\n end: 4246,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 4246,\n end: 4250,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4250,\n end: 4251,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length_nil\",\n start: 4251,\n end: 4261,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4261,\n end: 4262,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4262,\n end: 4263,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 4263,\n end: 4266,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4266,\n end: 4267,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero_add\",\n start: 4267,\n end: 4275,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4275,\n end: 4276,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4276,\n end: 4278,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4278,\n end: 4282,\n },\n TokenData {\n kind: \"Pipe\",\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: \"Identifier\",\n text: \"cons\",\n start: 4284,\n end: 4288,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4288,\n end: 4289,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 4289,\n end: 4290,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4290,\n end: 4291,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"t\",\n start: 4291,\n end: 4292,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4292,\n end: 4293,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 4293,\n end: 4295,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4295,\n end: 4296,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4296,\n end: 4297,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 4297,\n end: 4298,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4298,\n end: 4299,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4299,\n end: 4301,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4301,\n end: 4309,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 4309,\n end: 4313,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4313,\n end: 4314,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4314,\n end: 4315,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 4315,\n end: 4319,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4319,\n end: 4320,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cons_append\",\n start: 4320,\n end: 4331,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4331,\n end: 4332,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4332,\n end: 4333,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 4333,\n end: 4337,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4337,\n end: 4338,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length_cons\",\n start: 4338,\n end: 4349,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4349,\n end: 4350,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4350,\n end: 4351,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 4351,\n end: 4354,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4354,\n end: 4355,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ_add\",\n start: 4355,\n end: 4363,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4363,\n end: 4364,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4364,\n end: 4365,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 4365,\n end: 4367,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4367,\n end: 4368,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4368,\n end: 4370,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4370,\n end: 4372,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Proof by cases\",\n start: 4372,\n end: 4389,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4389,\n end: 4391,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 4391,\n end: 4398,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4398,\n end: 4399,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"bool_cases\",\n start: 4399,\n end: 4409,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4409,\n end: 4410,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4410,\n end: 4411,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 4411,\n end: 4412,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4412,\n end: 4413,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4413,\n end: 4414,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4414,\n end: 4415,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Bool\",\n start: 4415,\n end: 4419,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4419,\n end: 4420,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4420,\n end: 4421,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4421,\n end: 4422,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4422,\n end: 4423,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 4423,\n end: 4424,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4424,\n end: 4425,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4425,\n end: 4426,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4426,\n end: 4427,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"true\",\n start: 4427,\n end: 4431,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4431,\n end: 4432,\n },\n TokenData {\n kind: \"Error\",\n text: \"∨\",\n start: 4432,\n end: 4435,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4435,\n end: 4436,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 4436,\n end: 4437,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4437,\n end: 4438,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\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: \"Identifier\",\n text: \"false\",\n start: 4440,\n end: 4445,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4445,\n end: 4446,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4446,\n end: 4447,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4447,\n end: 4448,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4448,\n end: 4449,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 4449,\n end: 4451,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4451,\n end: 4453,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4453,\n end: 4457,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cases\",\n start: 4457,\n end: 4462,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4462,\n end: 4463,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 4463,\n end: 4464,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4464,\n end: 4465,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 4465,\n end: 4469,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4469,\n end: 4471,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4471,\n end: 4475,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4475,\n end: 4476,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4476,\n end: 4477,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"true\",\n start: 4477,\n end: 4481,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4481,\n end: 4482,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4482,\n end: 4483,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 4483,\n end: 4484,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4484,\n end: 4485,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"left\",\n start: 4485,\n end: 4489,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4489,\n end: 4490,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4490,\n end: 4491,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 4491,\n end: 4494,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4494,\n end: 4496,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4496,\n end: 4500,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 4500,\n end: 4501,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4501,\n end: 4502,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"false\",\n start: 4502,\n end: 4507,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4507,\n end: 4508,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4508,\n end: 4509,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 4509,\n end: 4510,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4510,\n end: 4511,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"right\",\n start: 4511,\n end: 4516,\n },\n TokenData {\n kind: \"Semicolon\",\n text: \";\",\n start: 4516,\n end: 4517,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4517,\n end: 4518,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 4518,\n end: 4521,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\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: \"Comment\",\n text: \"-- Proof by contradiction\",\n start: 4525,\n end: 4550,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4550,\n end: 4552,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 4552,\n end: 4559,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4559,\n end: 4560,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"not_not\",\n start: 4560,\n end: 4567,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4567,\n end: 4568,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4568,\n end: 4569,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 4569,\n end: 4570,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4570,\n end: 4571,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4571,\n end: 4572,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4572,\n end: 4573,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Prop\",\n start: 4573,\n end: 4577,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4577,\n end: 4578,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4578,\n end: 4579,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4579,\n end: 4580,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4580,\n end: 4581,\n },\n TokenData {\n kind: \"Error\",\n text: \"¬\",\n start: 4581,\n end: 4583,\n },\n TokenData {\n kind: \"Error\",\n text: \"¬\",\n start: 4583,\n end: 4585,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 4585,\n end: 4586,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4586,\n end: 4587,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 4587,\n end: 4590,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4590,\n end: 4591,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 4591,\n end: 4592,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4592,\n end: 4593,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4593,\n end: 4594,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4594,\n end: 4595,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4595,\n end: 4596,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 4596,\n end: 4598,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4598,\n end: 4600,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4600,\n end: 4604,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 4604,\n end: 4609,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4609,\n end: 4610,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 4610,\n end: 4611,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4611,\n end: 4613,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4613,\n end: 4617,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by_contra\",\n start: 4617,\n end: 4626,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4626,\n end: 4627,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hnp\",\n start: 4627,\n end: 4630,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4630,\n end: 4632,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4632,\n end: 4636,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 4636,\n end: 4641,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4641,\n end: 4642,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 4642,\n end: 4643,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4643,\n end: 4644,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hnp\",\n start: 4644,\n end: 4647,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4647,\n end: 4649,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4649,\n end: 4651,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Existential proofs\",\n start: 4651,\n end: 4672,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4672,\n end: 4674,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 4674,\n end: 4681,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4681,\n end: 4682,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exists_succ\",\n start: 4682,\n end: 4693,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4693,\n end: 4694,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4694,\n end: 4695,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 4695,\n end: 4696,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4696,\n end: 4697,\n },\n TokenData {\n kind: \"Error\",\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: \"Identifier\",\n text: \"ℕ\",\n start: 4699,\n end: 4702,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4702,\n end: 4703,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4703,\n end: 4704,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4704,\n end: 4705,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4705,\n end: 4706,\n },\n TokenData {\n kind: \"Error\",\n text: \"∃\",\n start: 4706,\n end: 4709,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4709,\n end: 4710,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 4710,\n end: 4711,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 4711,\n end: 4712,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4712,\n end: 4713,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 4713,\n end: 4714,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4714,\n end: 4715,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4715,\n end: 4716,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4716,\n end: 4717,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 4717,\n end: 4718,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4718,\n end: 4719,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 4719,\n end: 4720,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4720,\n end: 4721,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 4721,\n end: 4722,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4722,\n end: 4723,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4723,\n end: 4724,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4724,\n end: 4725,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4725,\n end: 4726,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 4726,\n end: 4728,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4728,\n end: 4730,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4730,\n end: 4734,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"use\",\n start: 4734,\n end: 4737,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4737,\n end: 4738,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 4738,\n end: 4739,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4739,\n end: 4740,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 4740,\n end: 4741,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4741,\n end: 4742,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 4742,\n end: 4743,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4743,\n end: 4745,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4745,\n end: 4749,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 4749,\n end: 4752,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4752,\n end: 4754,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4754,\n end: 4756,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Universal quantification\",\n start: 4756,\n end: 4783,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4783,\n end: 4785,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 4785,\n end: 4792,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4792,\n end: 4793,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"forall_add_zero\",\n start: 4793,\n end: 4808,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4808,\n end: 4809,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4809,\n end: 4810,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 4810,\n end: 4811,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4811,\n end: 4812,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4812,\n end: 4813,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4813,\n end: 4814,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 4814,\n end: 4817,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4817,\n end: 4818,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4818,\n end: 4819,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4819,\n end: 4820,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4820,\n end: 4821,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 4821,\n end: 4822,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4822,\n end: 4823,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 4823,\n end: 4824,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4824,\n end: 4825,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 4825,\n end: 4826,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4826,\n end: 4827,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4827,\n end: 4828,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4828,\n end: 4829,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 4829,\n end: 4830,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4830,\n end: 4831,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4831,\n end: 4832,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4832,\n end: 4833,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4833,\n end: 4834,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 4834,\n end: 4836,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4836,\n end: 4838,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4838,\n end: 4842,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 4842,\n end: 4844,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4844,\n end: 4845,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 4845,\n end: 4846,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 4846,\n end: 4849,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 4849,\n end: 4850,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_zero\",\n start: 4850,\n end: 4858,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 4858,\n end: 4859,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4859,\n end: 4861,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4861,\n end: 4863,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Tactics and proof terms\",\n start: 4863,\n end: 4889,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4889,\n end: 4891,\n },\n TokenData {\n kind: \"Example\",\n text: \"example\",\n start: 4891,\n end: 4898,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4898,\n end: 4899,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4899,\n end: 4900,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₁\",\n start: 4900,\n end: 4904,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4904,\n end: 4905,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4905,\n end: 4906,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4906,\n end: 4907,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 4907,\n end: 4908,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4908,\n end: 4909,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 4909,\n end: 4912,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4912,\n end: 4913,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"q\",\n start: 4913,\n end: 4914,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4914,\n end: 4915,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4915,\n end: 4916,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4916,\n end: 4917,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₂\",\n start: 4917,\n end: 4921,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4921,\n end: 4922,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4922,\n end: 4923,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4923,\n end: 4924,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"q\",\n start: 4924,\n end: 4925,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4925,\n end: 4926,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 4926,\n end: 4929,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4929,\n end: 4930,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 4930,\n end: 4931,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 4931,\n end: 4932,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4932,\n end: 4933,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 4933,\n end: 4934,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₃\",\n start: 4934,\n end: 4938,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4938,\n end: 4939,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4939,\n end: 4940,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4940,\n end: 4941,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 4941,\n end: 4942,\n },\n TokenData {\n kind: \"RightParen\",\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: \"Error\",\n text: \":\",\n start: 4944,\n end: 4945,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4945,\n end: 4946,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 4946,\n end: 4947,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4947,\n end: 4948,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 4948,\n end: 4949,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 4949,\n end: 4950,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4950,\n end: 4951,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 4951,\n end: 4953,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4953,\n end: 4955,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4955,\n end: 4959,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"apply\",\n start: 4959,\n end: 4964,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4964,\n end: 4965,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₂\",\n start: 4965,\n end: 4969,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4969,\n end: 4971,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4971,\n end: 4975,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"apply\",\n start: 4975,\n end: 4980,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4980,\n end: 4981,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₁\",\n start: 4981,\n end: 4985,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 4985,\n end: 4987,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4987,\n end: 4991,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 4991,\n end: 4996,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 4996,\n end: 4997,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₃\",\n start: 4997,\n end: 5001,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5001,\n end: 5003,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5003,\n end: 5005,\n },\n TokenData {\n kind: \"Example\",\n text: \"example\",\n start: 5005,\n end: 5012,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5012,\n end: 5013,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5013,\n end: 5014,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₁\",\n start: 5014,\n end: 5018,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5018,\n end: 5019,\n },\n TokenData {\n kind: \"Error\",\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: \"Identifier\",\n text: \"p\",\n start: 5021,\n end: 5022,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5022,\n end: 5023,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 5023,\n end: 5026,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5026,\n end: 5027,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"q\",\n start: 5027,\n end: 5028,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5028,\n end: 5029,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5029,\n end: 5030,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5030,\n end: 5031,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₂\",\n start: 5031,\n end: 5035,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5035,\n end: 5036,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5036,\n end: 5037,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5037,\n end: 5038,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"q\",\n start: 5038,\n end: 5039,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5039,\n end: 5040,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 5040,\n end: 5043,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5043,\n end: 5044,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 5044,\n end: 5045,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5045,\n end: 5046,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5046,\n end: 5047,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5047,\n end: 5048,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₃\",\n start: 5048,\n end: 5052,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5052,\n end: 5053,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5053,\n end: 5054,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5054,\n end: 5055,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 5055,\n end: 5056,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5056,\n end: 5057,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5057,\n end: 5058,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5058,\n end: 5059,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5059,\n end: 5060,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 5060,\n end: 5061,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5061,\n end: 5062,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5062,\n end: 5063,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5063,\n end: 5064,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5064,\n end: 5065,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₂\",\n start: 5065,\n end: 5069,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5069,\n end: 5070,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5070,\n end: 5071,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₁\",\n start: 5071,\n end: 5075,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5075,\n end: 5076,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h₃\",\n start: 5076,\n end: 5080,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5080,\n end: 5081,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5081,\n end: 5083,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5083,\n end: 5085,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Simp lemmas\",\n start: 5085,\n end: 5099,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5099,\n end: 5101,\n },\n TokenData {\n kind: \"At\",\n text: \"@\",\n start: 5101,\n end: 5102,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5102,\n end: 5103,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 5103,\n end: 5107,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5107,\n end: 5108,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5108,\n end: 5110,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 5110,\n end: 5117,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5117,\n end: 5118,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"list_length_nil\",\n start: 5118,\n end: 5133,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5133,\n end: 5134,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5134,\n end: 5135,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5135,\n end: 5136,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5136,\n end: 5137,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5137,\n end: 5138,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5138,\n end: 5139,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5139,\n end: 5140,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5140,\n end: 5141,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5141,\n end: 5142,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 5142,\n end: 5146,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5146,\n end: 5147,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 5147,\n end: 5149,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5149,\n end: 5150,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5150,\n end: 5151,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length\",\n start: 5151,\n end: 5157,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5157,\n end: 5158,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5158,\n end: 5159,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5159,\n end: 5160,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 5160,\n end: 5161,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5161,\n end: 5162,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5162,\n end: 5163,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5163,\n end: 5164,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5164,\n end: 5165,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 5165,\n end: 5168,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5168,\n end: 5170,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5170,\n end: 5172,\n },\n TokenData {\n kind: \"At\",\n text: \"@\",\n start: 5172,\n end: 5173,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 5173,\n end: 5174,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 5174,\n end: 5178,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 5178,\n end: 5179,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5179,\n end: 5181,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 5181,\n end: 5188,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5188,\n end: 5189,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"list_length_cons\",\n start: 5189,\n end: 5205,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5205,\n end: 5206,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5206,\n end: 5207,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 5207,\n end: 5208,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5208,\n end: 5209,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5209,\n end: 5210,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5210,\n end: 5211,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 5211,\n end: 5213,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5213,\n end: 5214,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5214,\n end: 5215,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5215,\n end: 5216,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 5216,\n end: 5218,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5218,\n end: 5219,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5219,\n end: 5220,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5220,\n end: 5221,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 5221,\n end: 5225,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5225,\n end: 5226,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 5226,\n end: 5228,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5228,\n end: 5229,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5229,\n end: 5230,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5230,\n end: 5231,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5231,\n end: 5232,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5232,\n end: 5234,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5234,\n end: 5238,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5238,\n end: 5239,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 5239,\n end: 5240,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5240,\n end: 5241,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5241,\n end: 5242,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5242,\n end: 5243,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5243,\n end: 5244,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 5244,\n end: 5246,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5246,\n end: 5247,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5247,\n end: 5248,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length\",\n start: 5248,\n end: 5254,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5254,\n end: 5255,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5255,\n end: 5256,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5256,\n end: 5257,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 5257,\n end: 5259,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5259,\n end: 5260,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length\",\n start: 5260,\n end: 5266,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5266,\n end: 5267,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 5267,\n end: 5268,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5268,\n end: 5269,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 5269,\n end: 5270,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5270,\n end: 5271,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5271,\n end: 5272,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5272,\n end: 5273,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5273,\n end: 5274,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 5274,\n end: 5277,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5277,\n end: 5279,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5279,\n end: 5281,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Decidable instances\",\n start: 5281,\n end: 5303,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5303,\n end: 5305,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"instance\",\n start: 5305,\n end: 5313,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5313,\n end: 5314,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5314,\n end: 5315,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 5315,\n end: 5316,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5316,\n end: 5317,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\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: \"Error\",\n text: \":\",\n start: 5319,\n end: 5320,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5320,\n end: 5321,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 5321,\n end: 5324,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5324,\n end: 5325,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5325,\n end: 5326,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5326,\n end: 5327,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5327,\n end: 5328,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Decidable\",\n start: 5328,\n end: 5337,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5337,\n end: 5338,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5338,\n end: 5339,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 5339,\n end: 5340,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5340,\n end: 5341,\n },\n TokenData {\n kind: \"Error\",\n text: \"≤\",\n start: 5341,\n end: 5344,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5344,\n end: 5345,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 5345,\n end: 5346,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\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: \"Error\",\n text: \":\",\n start: 5348,\n end: 5349,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5349,\n end: 5350,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5350,\n end: 5351,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 5351,\n end: 5353,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5353,\n end: 5355,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5355,\n end: 5359,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"induction\",\n start: 5359,\n end: 5368,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5368,\n end: 5369,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 5369,\n end: 5370,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5370,\n end: 5371,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"generalizing\",\n start: 5371,\n end: 5383,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5383,\n end: 5384,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\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: \"With\",\n text: \"with\",\n start: 5386,\n end: 5390,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5390,\n end: 5392,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5392,\n end: 5396,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5396,\n end: 5397,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5397,\n end: 5398,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 5398,\n end: 5402,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5402,\n end: 5403,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5403,\n end: 5404,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 5404,\n end: 5405,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5405,\n end: 5406,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5406,\n end: 5408,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5408,\n end: 5416,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cases\",\n start: 5416,\n end: 5421,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5421,\n end: 5422,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 5422,\n end: 5423,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5423,\n end: 5424,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 5424,\n end: 5428,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5428,\n end: 5430,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5430,\n end: 5438,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5438,\n end: 5439,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5439,\n end: 5440,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 5440,\n end: 5444,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5444,\n end: 5445,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5445,\n end: 5446,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 5446,\n end: 5447,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5447,\n end: 5448,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 5448,\n end: 5453,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5453,\n end: 5454,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"isTrue\",\n start: 5454,\n end: 5460,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5460,\n end: 5461,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5461,\n end: 5462,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 5462,\n end: 5465,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5465,\n end: 5466,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"le_refl\",\n start: 5466,\n end: 5473,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5473,\n end: 5474,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 5474,\n end: 5475,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5475,\n end: 5476,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5476,\n end: 5478,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5478,\n end: 5486,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5486,\n end: 5487,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5487,\n end: 5488,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 5488,\n end: 5492,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5492,\n end: 5493,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 5493,\n end: 5494,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5494,\n end: 5495,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5495,\n end: 5496,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 5496,\n end: 5497,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5497,\n end: 5498,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 5498,\n end: 5503,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5503,\n end: 5504,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"isFalse\",\n start: 5504,\n end: 5511,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5511,\n end: 5512,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5512,\n end: 5513,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 5513,\n end: 5516,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5516,\n end: 5517,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"not_succ_le_zero\",\n start: 5517,\n end: 5533,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5533,\n end: 5534,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 5534,\n end: 5535,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5535,\n end: 5536,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5536,\n end: 5538,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5538,\n end: 5542,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5542,\n end: 5543,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5543,\n end: 5544,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 5544,\n end: 5548,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5548,\n end: 5549,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 5549,\n end: 5550,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5550,\n end: 5551,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 5551,\n end: 5553,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5553,\n end: 5554,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5554,\n end: 5555,\n },\n TokenData {\n kind: \"Gt\",\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: \"Whitespace\",\n text: \" \",\n start: 5558,\n end: 5566,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cases\",\n start: 5566,\n end: 5571,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5571,\n end: 5572,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 5572,\n end: 5573,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5573,\n end: 5574,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 5574,\n end: 5578,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5578,\n end: 5580,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5580,\n end: 5588,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5588,\n end: 5589,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5589,\n end: 5590,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 5590,\n end: 5594,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5594,\n end: 5595,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5595,\n end: 5596,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 5596,\n end: 5597,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5597,\n end: 5598,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 5598,\n end: 5603,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5603,\n end: 5604,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"isTrue\",\n start: 5604,\n end: 5610,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5610,\n end: 5611,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5611,\n end: 5612,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 5612,\n end: 5615,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5615,\n end: 5616,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero_le\",\n start: 5616,\n end: 5623,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5623,\n end: 5624,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5624,\n end: 5625,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 5625,\n end: 5626,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5626,\n end: 5627,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 5627,\n end: 5628,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5628,\n end: 5629,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 5629,\n end: 5630,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5630,\n end: 5631,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5631,\n end: 5632,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5632,\n end: 5634,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5634,\n end: 5642,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5642,\n end: 5643,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5643,\n end: 5644,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 5644,\n end: 5648,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5648,\n end: 5649,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 5649,\n end: 5650,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5650,\n end: 5651,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5651,\n end: 5652,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 5652,\n end: 5653,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5653,\n end: 5654,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5654,\n end: 5656,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5656,\n end: 5668,\n },\n TokenData {\n kind: \"Have\",\n text: \"have\",\n start: 5668,\n end: 5672,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5672,\n end: 5673,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5673,\n end: 5674,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5674,\n end: 5675,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Decidable\",\n start: 5675,\n end: 5684,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5684,\n end: 5685,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5685,\n end: 5686,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 5686,\n end: 5687,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5687,\n end: 5688,\n },\n TokenData {\n kind: \"Error\",\n text: \"≤\",\n start: 5688,\n end: 5691,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5691,\n end: 5692,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 5692,\n end: 5693,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5693,\n end: 5694,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5694,\n end: 5695,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5695,\n end: 5696,\n },\n TokenData {\n kind: \"Eq\",\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: \"Identifier\",\n text: \"ih\",\n start: 5698,\n end: 5700,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5700,\n end: 5701,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 5701,\n end: 5702,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5702,\n end: 5704,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5704,\n end: 5716,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cases\",\n start: 5716,\n end: 5721,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5721,\n end: 5722,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"this\",\n start: 5722,\n end: 5726,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5726,\n end: 5727,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 5727,\n end: 5731,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5731,\n end: 5733,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5733,\n end: 5745,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5745,\n end: 5746,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5746,\n end: 5747,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"isTrue\",\n start: 5747,\n end: 5753,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5753,\n end: 5754,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 5754,\n end: 5755,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5755,\n end: 5756,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5756,\n end: 5757,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 5757,\n end: 5758,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5758,\n end: 5759,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 5759,\n end: 5764,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5764,\n end: 5765,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"isTrue\",\n start: 5765,\n end: 5771,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5771,\n end: 5772,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5772,\n end: 5773,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 5773,\n end: 5776,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5776,\n end: 5777,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ_le_succ\",\n start: 5777,\n end: 5789,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5789,\n end: 5790,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 5790,\n end: 5791,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5791,\n end: 5792,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5792,\n end: 5794,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5794,\n end: 5806,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 5806,\n end: 5807,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5807,\n end: 5808,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"isFalse\",\n start: 5808,\n end: 5815,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5815,\n end: 5816,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 5816,\n end: 5817,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5817,\n end: 5818,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5818,\n end: 5819,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 5819,\n end: 5820,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5820,\n end: 5821,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 5821,\n end: 5826,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5826,\n end: 5827,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"isFalse\",\n start: 5827,\n end: 5834,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5834,\n end: 5835,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5835,\n end: 5836,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 5836,\n end: 5839,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5839,\n end: 5840,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h'\",\n start: 5840,\n end: 5842,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5842,\n end: 5843,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 5843,\n end: 5844,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 5844,\n end: 5845,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5845,\n end: 5846,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 5846,\n end: 5847,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5847,\n end: 5848,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5848,\n end: 5849,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 5849,\n end: 5852,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 5852,\n end: 5853,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"le_of_succ_le_succ\",\n start: 5853,\n end: 5871,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5871,\n end: 5872,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h'\",\n start: 5872,\n end: 5874,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5874,\n end: 5875,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5875,\n end: 5876,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5876,\n end: 5878,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5878,\n end: 5880,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Type classes with operations\",\n start: 5880,\n end: 5911,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5911,\n end: 5913,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"class\",\n start: 5913,\n end: 5918,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5918,\n end: 5919,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Functor\",\n start: 5919,\n end: 5926,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5926,\n end: 5927,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5927,\n end: 5928,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"F\",\n start: 5928,\n end: 5929,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5929,\n end: 5930,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5930,\n end: 5931,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5931,\n end: 5932,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 5932,\n end: 5936,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 5936,\n end: 5937,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5937,\n end: 5938,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 5938,\n end: 5941,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5941,\n end: 5942,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 5942,\n end: 5946,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 5946,\n end: 5947,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5947,\n end: 5948,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5948,\n end: 5949,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 5949,\n end: 5954,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 5954,\n end: 5956,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5956,\n end: 5960,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 5960,\n end: 5963,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5963,\n end: 5964,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5964,\n end: 5965,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5965,\n end: 5966,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 5966,\n end: 5967,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 5967,\n end: 5969,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5969,\n end: 5970,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 5970,\n end: 5972,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5972,\n end: 5973,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 5973,\n end: 5974,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5974,\n end: 5975,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 5975,\n end: 5979,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 5979,\n end: 5980,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 5980,\n end: 5981,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5981,\n end: 5982,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 5982,\n end: 5985,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5985,\n end: 5986,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 5986,\n end: 5987,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 5987,\n end: 5989,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5989,\n end: 5990,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 5990,\n end: 5993,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5993,\n end: 5994,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 5994,\n end: 5996,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 5996,\n end: 5997,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 5997,\n end: 5998,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 5998,\n end: 6001,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6001,\n end: 6002,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"F\",\n start: 6002,\n end: 6003,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6003,\n end: 6004,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6004,\n end: 6006,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6006,\n end: 6007,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6007,\n end: 6010,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6010,\n end: 6011,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"F\",\n start: 6011,\n end: 6012,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6012,\n end: 6013,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6013,\n end: 6015,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6015,\n end: 6017,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6017,\n end: 6021,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map_id\",\n start: 6021,\n end: 6027,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6027,\n end: 6028,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6028,\n end: 6029,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6029,\n end: 6030,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 6030,\n end: 6033,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6033,\n end: 6034,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 6034,\n end: 6035,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6035,\n end: 6037,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6037,\n end: 6038,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6038,\n end: 6039,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6039,\n end: 6040,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 6040,\n end: 6044,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 6044,\n end: 6045,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6045,\n end: 6046,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6046,\n end: 6047,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6047,\n end: 6048,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 6048,\n end: 6049,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6049,\n end: 6050,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6050,\n end: 6051,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6051,\n end: 6052,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"F\",\n start: 6052,\n end: 6053,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6053,\n end: 6054,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6054,\n end: 6056,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6056,\n end: 6057,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6057,\n end: 6058,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6058,\n end: 6059,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 6059,\n end: 6062,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6062,\n end: 6063,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"id\",\n start: 6063,\n end: 6065,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6065,\n end: 6066,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 6066,\n end: 6067,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6067,\n end: 6068,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6068,\n end: 6069,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6069,\n end: 6070,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 6070,\n end: 6071,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6071,\n end: 6073,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6073,\n end: 6077,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map_comp\",\n start: 6077,\n end: 6085,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6085,\n end: 6086,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6086,\n end: 6087,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6087,\n end: 6088,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 6088,\n end: 6091,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6091,\n end: 6092,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 6092,\n end: 6093,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6093,\n end: 6095,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6095,\n end: 6096,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6096,\n end: 6098,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6098,\n end: 6099,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 6099,\n end: 6101,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6101,\n end: 6102,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6102,\n end: 6103,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6103,\n end: 6104,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 6104,\n end: 6108,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 6108,\n end: 6109,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6109,\n end: 6110,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6110,\n end: 6111,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6111,\n end: 6112,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"g\",\n start: 6112,\n end: 6113,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6113,\n end: 6114,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6114,\n end: 6115,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6115,\n end: 6116,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6116,\n end: 6118,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6118,\n end: 6119,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6119,\n end: 6122,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6122,\n end: 6123,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 6123,\n end: 6125,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6125,\n end: 6126,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6126,\n end: 6127,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6127,\n end: 6128,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 6128,\n end: 6129,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6129,\n end: 6130,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6130,\n end: 6131,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6131,\n end: 6132,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6132,\n end: 6134,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6134,\n end: 6135,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6135,\n end: 6138,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6138,\n end: 6139,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6139,\n end: 6141,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6141,\n end: 6142,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6142,\n end: 6143,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6143,\n end: 6144,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 6144,\n end: 6145,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6145,\n end: 6146,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6146,\n end: 6147,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6147,\n end: 6148,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"F\",\n start: 6148,\n end: 6149,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6149,\n end: 6150,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6150,\n end: 6152,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6152,\n end: 6153,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6153,\n end: 6154,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6154,\n end: 6155,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6155,\n end: 6157,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6157,\n end: 6165,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 6165,\n end: 6168,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6168,\n end: 6169,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6169,\n end: 6170,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"g\",\n start: 6170,\n end: 6171,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6171,\n end: 6172,\n },\n TokenData {\n kind: \"Error\",\n text: \"∘\",\n start: 6172,\n end: 6175,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6175,\n end: 6176,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 6176,\n end: 6177,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6177,\n end: 6178,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6178,\n end: 6179,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 6179,\n end: 6180,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6180,\n end: 6181,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6181,\n end: 6182,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6182,\n end: 6183,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 6183,\n end: 6186,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6186,\n end: 6187,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"g\",\n start: 6187,\n end: 6188,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6188,\n end: 6189,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6189,\n end: 6190,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 6190,\n end: 6193,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6193,\n end: 6194,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 6194,\n end: 6195,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6195,\n end: 6196,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 6196,\n end: 6197,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6197,\n end: 6198,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6198,\n end: 6200,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6200,\n end: 6202,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"instance\",\n start: 6202,\n end: 6210,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6210,\n end: 6211,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6211,\n end: 6212,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6212,\n end: 6213,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Functor\",\n start: 6213,\n end: 6220,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6220,\n end: 6221,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 6221,\n end: 6225,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6225,\n end: 6226,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 6226,\n end: 6231,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6231,\n end: 6233,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6233,\n end: 6237,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 6237,\n end: 6240,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6240,\n end: 6241,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6241,\n end: 6242,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6242,\n end: 6243,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6243,\n end: 6244,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 6244,\n end: 6248,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6248,\n end: 6249,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 6249,\n end: 6252,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6252,\n end: 6254,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6254,\n end: 6258,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map_id\",\n start: 6258,\n end: 6264,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6264,\n end: 6265,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6265,\n end: 6266,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6266,\n end: 6267,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6267,\n end: 6268,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 6268,\n end: 6270,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6270,\n end: 6272,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6272,\n end: 6280,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 6280,\n end: 6285,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6285,\n end: 6286,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6286,\n end: 6288,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6288,\n end: 6289,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 6289,\n end: 6290,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6290,\n end: 6292,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6292,\n end: 6300,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"induction\",\n start: 6300,\n end: 6309,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6309,\n end: 6310,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 6310,\n end: 6311,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6311,\n end: 6312,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 6312,\n end: 6316,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6316,\n end: 6318,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6318,\n end: 6326,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 6326,\n end: 6327,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6327,\n end: 6328,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nil\",\n start: 6328,\n end: 6331,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6331,\n end: 6332,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6332,\n end: 6333,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 6333,\n end: 6334,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6334,\n end: 6335,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 6335,\n end: 6338,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6338,\n end: 6340,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6340,\n end: 6348,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 6348,\n end: 6349,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6349,\n end: 6350,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cons\",\n start: 6350,\n end: 6354,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6354,\n end: 6355,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\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: \"Identifier\",\n text: \"t\",\n start: 6357,\n end: 6358,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6358,\n end: 6359,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 6359,\n end: 6361,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6361,\n end: 6362,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6362,\n end: 6363,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 6363,\n end: 6364,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6364,\n end: 6365,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 6365,\n end: 6369,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6369,\n end: 6370,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 6370,\n end: 6371,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 6371,\n end: 6375,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6375,\n end: 6376,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 6376,\n end: 6379,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6379,\n end: 6380,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6380,\n end: 6381,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 6381,\n end: 6383,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 6383,\n end: 6384,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6384,\n end: 6386,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6386,\n end: 6390,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map_comp\",\n start: 6390,\n end: 6398,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6398,\n end: 6399,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6399,\n end: 6400,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6400,\n end: 6401,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6401,\n end: 6402,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 6402,\n end: 6404,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6404,\n end: 6406,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6406,\n end: 6414,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 6414,\n end: 6419,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6419,\n end: 6420,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6420,\n end: 6422,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6422,\n end: 6423,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6423,\n end: 6425,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6425,\n end: 6426,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 6426,\n end: 6428,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6428,\n end: 6429,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"g\",\n start: 6429,\n end: 6430,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6430,\n end: 6431,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 6431,\n end: 6432,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6432,\n end: 6433,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 6433,\n end: 6434,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6434,\n end: 6436,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6436,\n end: 6444,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"induction\",\n start: 6444,\n end: 6453,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6453,\n end: 6454,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 6454,\n end: 6455,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6455,\n end: 6456,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 6456,\n end: 6460,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6460,\n end: 6462,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6462,\n end: 6470,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 6470,\n end: 6471,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6471,\n end: 6472,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nil\",\n start: 6472,\n end: 6475,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6475,\n end: 6476,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6476,\n end: 6477,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 6477,\n end: 6478,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6478,\n end: 6479,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 6479,\n end: 6482,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6482,\n end: 6484,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6484,\n end: 6492,\n },\n TokenData {\n kind: \"Pipe\",\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: \"Identifier\",\n text: \"cons\",\n start: 6494,\n end: 6498,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6498,\n end: 6499,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 6499,\n end: 6500,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6500,\n end: 6501,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"t\",\n start: 6501,\n end: 6502,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6502,\n end: 6503,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 6503,\n end: 6505,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6505,\n end: 6506,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6506,\n end: 6507,\n },\n TokenData {\n kind: \"Gt\",\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: \"Identifier\",\n text: \"simp\",\n start: 6509,\n end: 6513,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6513,\n end: 6514,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 6514,\n end: 6515,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 6515,\n end: 6519,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 6519,\n end: 6520,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 6520,\n end: 6523,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6523,\n end: 6524,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6524,\n end: 6525,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 6525,\n end: 6527,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 6527,\n end: 6528,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6528,\n end: 6530,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6530,\n end: 6532,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Monad instance\",\n start: 6532,\n end: 6549,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6549,\n end: 6551,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"class\",\n start: 6551,\n end: 6556,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6556,\n end: 6557,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Monad\",\n start: 6557,\n end: 6562,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6562,\n end: 6563,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6563,\n end: 6564,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\n start: 6564,\n end: 6565,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6565,\n end: 6566,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6566,\n end: 6567,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6567,\n end: 6568,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 6568,\n end: 6572,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 6572,\n end: 6573,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6573,\n end: 6574,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6574,\n end: 6577,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6577,\n end: 6578,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 6578,\n end: 6582,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 6582,\n end: 6583,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6583,\n end: 6584,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6584,\n end: 6585,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"extends\",\n start: 6585,\n end: 6592,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6592,\n end: 6593,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Functor\",\n start: 6593,\n end: 6600,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6600,\n end: 6601,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\n start: 6601,\n end: 6602,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6602,\n end: 6603,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 6603,\n end: 6608,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6608,\n end: 6610,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6610,\n end: 6614,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pure\",\n start: 6614,\n end: 6618,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6618,\n end: 6619,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6619,\n end: 6620,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6620,\n end: 6621,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 6621,\n end: 6622,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6622,\n end: 6624,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6624,\n end: 6625,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6625,\n end: 6626,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6626,\n end: 6627,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 6627,\n end: 6631,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 6631,\n end: 6632,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6632,\n end: 6633,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6633,\n end: 6634,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6634,\n end: 6637,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6637,\n end: 6638,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6638,\n end: 6640,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6640,\n end: 6641,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6641,\n end: 6644,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6644,\n end: 6645,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\n start: 6645,\n end: 6646,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6646,\n end: 6647,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6647,\n end: 6649,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6649,\n end: 6651,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6651,\n end: 6655,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"bind\",\n start: 6655,\n end: 6659,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6659,\n end: 6660,\n },\n TokenData {\n kind: \"Error\",\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: \"LeftBrace\",\n text: \"{\",\n start: 6662,\n end: 6663,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6663,\n end: 6665,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6665,\n end: 6666,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6666,\n end: 6668,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6668,\n end: 6669,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6669,\n end: 6670,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6670,\n end: 6671,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 6671,\n end: 6675,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 6675,\n end: 6676,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6676,\n end: 6677,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6677,\n end: 6678,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6678,\n end: 6681,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6681,\n end: 6682,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\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: \"Identifier\",\n text: \"α\",\n start: 6684,\n end: 6686,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6686,\n end: 6687,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6687,\n end: 6690,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6690,\n end: 6691,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6691,\n end: 6692,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6692,\n end: 6694,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6694,\n end: 6695,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6695,\n end: 6698,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6698,\n end: 6699,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\n start: 6699,\n end: 6700,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6700,\n end: 6701,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6701,\n end: 6703,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\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: \"Error\",\n text: \"→\",\n start: 6705,\n end: 6708,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6708,\n end: 6709,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\n start: 6709,\n end: 6710,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6710,\n end: 6711,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6711,\n end: 6713,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6713,\n end: 6715,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6715,\n end: 6719,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"left_id\",\n start: 6719,\n end: 6726,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6726,\n end: 6727,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6727,\n end: 6728,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6728,\n end: 6729,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 6729,\n end: 6732,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6732,\n end: 6733,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 6733,\n end: 6734,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6734,\n end: 6736,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6736,\n end: 6737,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6737,\n end: 6739,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6739,\n end: 6740,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6740,\n end: 6741,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6741,\n end: 6742,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 6742,\n end: 6746,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 6746,\n end: 6747,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6747,\n end: 6748,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6748,\n end: 6749,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6749,\n end: 6750,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 6750,\n end: 6751,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6751,\n end: 6752,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6752,\n end: 6753,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6753,\n end: 6754,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6754,\n end: 6756,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6756,\n end: 6757,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6757,\n end: 6758,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6758,\n end: 6759,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 6759,\n end: 6760,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6760,\n end: 6761,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6761,\n end: 6762,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6762,\n end: 6763,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6763,\n end: 6765,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6765,\n end: 6766,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6766,\n end: 6769,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6769,\n end: 6770,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\n start: 6770,\n end: 6771,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6771,\n end: 6772,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6772,\n end: 6774,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6774,\n end: 6775,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6775,\n end: 6776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6776,\n end: 6777,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"bind\",\n start: 6777,\n end: 6781,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6781,\n end: 6782,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6782,\n end: 6783,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pure\",\n start: 6783,\n end: 6787,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6787,\n end: 6788,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 6788,\n end: 6789,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6789,\n end: 6790,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6790,\n end: 6791,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 6791,\n end: 6792,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6792,\n end: 6793,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6793,\n end: 6794,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6794,\n end: 6795,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\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: \"Identifier\",\n text: \"a\",\n start: 6797,\n end: 6798,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6798,\n end: 6800,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6800,\n end: 6804,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"right_id\",\n start: 6804,\n end: 6812,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6812,\n end: 6813,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6813,\n end: 6814,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6814,\n end: 6815,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 6815,\n end: 6818,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6818,\n end: 6819,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 6819,\n end: 6820,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6820,\n end: 6822,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6822,\n end: 6823,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6823,\n end: 6824,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6824,\n end: 6825,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 6825,\n end: 6829,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 6829,\n end: 6830,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6830,\n end: 6831,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6831,\n end: 6832,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6832,\n end: 6833,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 6833,\n end: 6834,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6834,\n end: 6835,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6835,\n end: 6836,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6836,\n end: 6837,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\n start: 6837,\n end: 6838,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6838,\n end: 6839,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6839,\n end: 6841,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6841,\n end: 6842,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6842,\n end: 6843,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6843,\n end: 6844,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"bind\",\n start: 6844,\n end: 6848,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6848,\n end: 6849,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 6849,\n end: 6850,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6850,\n end: 6851,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pure\",\n start: 6851,\n end: 6855,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6855,\n end: 6856,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6856,\n end: 6857,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6857,\n end: 6858,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 6858,\n end: 6859,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6859,\n end: 6861,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6861,\n end: 6865,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"assoc\",\n start: 6865,\n end: 6870,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6870,\n end: 6871,\n },\n TokenData {\n kind: \"Error\",\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: \"Error\",\n text: \"∀\",\n start: 6873,\n end: 6876,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6876,\n end: 6877,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 6877,\n end: 6878,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6878,\n end: 6880,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6880,\n end: 6881,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6881,\n end: 6883,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6883,\n end: 6884,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 6884,\n end: 6886,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6886,\n end: 6887,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6887,\n end: 6888,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6888,\n end: 6889,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 6889,\n end: 6893,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 6893,\n end: 6894,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 6894,\n end: 6895,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6895,\n end: 6896,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6896,\n end: 6897,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 6897,\n end: 6898,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6898,\n end: 6899,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6899,\n end: 6900,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6900,\n end: 6901,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\n start: 6901,\n end: 6902,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6902,\n end: 6903,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6903,\n end: 6905,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6905,\n end: 6906,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6906,\n end: 6907,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6907,\n end: 6908,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 6908,\n end: 6909,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6909,\n end: 6910,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6910,\n end: 6911,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6911,\n end: 6912,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 6912,\n end: 6914,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6914,\n end: 6915,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6915,\n end: 6918,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6918,\n end: 6919,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\n start: 6919,\n end: 6920,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6920,\n end: 6921,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6921,\n end: 6923,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6923,\n end: 6924,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6924,\n end: 6925,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6925,\n end: 6926,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"g\",\n start: 6926,\n end: 6927,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6927,\n end: 6928,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 6928,\n end: 6929,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6929,\n end: 6930,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 6930,\n end: 6932,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6932,\n end: 6933,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 6933,\n end: 6936,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6936,\n end: 6937,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"M\",\n start: 6937,\n end: 6938,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6938,\n end: 6939,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 6939,\n end: 6941,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6941,\n end: 6942,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 6942,\n end: 6943,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 6943,\n end: 6945,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6945,\n end: 6953,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"bind\",\n start: 6953,\n end: 6957,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6957,\n end: 6958,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6958,\n end: 6959,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"bind\",\n start: 6959,\n end: 6963,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6963,\n end: 6964,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 6964,\n end: 6965,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6965,\n end: 6966,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 6966,\n end: 6967,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6967,\n end: 6968,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6968,\n end: 6969,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"g\",\n start: 6969,\n end: 6970,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6970,\n end: 6971,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6971,\n end: 6972,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6972,\n end: 6973,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"bind\",\n start: 6973,\n end: 6977,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6977,\n end: 6978,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 6978,\n end: 6979,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6979,\n end: 6980,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6980,\n end: 6981,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 6981,\n end: 6984,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6984,\n end: 6985,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 6985,\n end: 6986,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6986,\n end: 6987,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 6987,\n end: 6988,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 6988,\n end: 6989,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6989,\n end: 6990,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"bind\",\n start: 6990,\n end: 6994,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6994,\n end: 6995,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 6995,\n end: 6996,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 6996,\n end: 6997,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 6997,\n end: 6998,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 6998,\n end: 6999,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 6999,\n end: 7000,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7000,\n end: 7001,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"g\",\n start: 7001,\n end: 7002,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7002,\n end: 7003,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7003,\n end: 7005,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7005,\n end: 7007,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Option monad\",\n start: 7007,\n end: 7022,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7022,\n end: 7024,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"instance\",\n start: 7024,\n end: 7032,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7032,\n end: 7033,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7033,\n end: 7034,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7034,\n end: 7035,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Monad\",\n start: 7035,\n end: 7040,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7040,\n end: 7041,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Option\",\n start: 7041,\n end: 7047,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7047,\n end: 7048,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 7048,\n end: 7053,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7053,\n end: 7055,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7055,\n end: 7059,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pure\",\n start: 7059,\n end: 7063,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7063,\n end: 7064,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7064,\n end: 7065,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7065,\n end: 7066,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7066,\n end: 7067,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"some\",\n start: 7067,\n end: 7071,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7071,\n end: 7073,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7073,\n end: 7077,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"bind\",\n start: 7077,\n end: 7081,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7081,\n end: 7082,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7082,\n end: 7083,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7083,\n end: 7084,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7084,\n end: 7085,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 7085,\n end: 7088,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7088,\n end: 7089,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 7089,\n end: 7090,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7090,\n end: 7091,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 7091,\n end: 7092,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7092,\n end: 7093,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7093,\n end: 7094,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 7094,\n end: 7095,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7095,\n end: 7096,\n },\n TokenData {\n kind: \"Match\",\n text: \"match\",\n start: 7096,\n end: 7101,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7101,\n end: 7102,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 7102,\n end: 7103,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7103,\n end: 7104,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 7104,\n end: 7108,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7108,\n end: 7110,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7110,\n end: 7118,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7118,\n end: 7119,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7119,\n end: 7120,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"none\",\n start: 7120,\n end: 7124,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7124,\n end: 7125,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7125,\n end: 7126,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 7126,\n end: 7127,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7127,\n end: 7128,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"none\",\n start: 7128,\n end: 7132,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7132,\n end: 7134,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7134,\n end: 7142,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7142,\n end: 7143,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7143,\n end: 7144,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"some\",\n start: 7144,\n end: 7148,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7148,\n end: 7149,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7149,\n end: 7150,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7150,\n end: 7151,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7151,\n end: 7152,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 7152,\n end: 7153,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7153,\n end: 7154,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 7154,\n end: 7155,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7155,\n end: 7156,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7156,\n end: 7157,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7157,\n end: 7159,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7159,\n end: 7163,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"left_id\",\n start: 7163,\n end: 7170,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7170,\n end: 7171,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7171,\n end: 7172,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7172,\n end: 7173,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7173,\n end: 7174,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 7174,\n end: 7176,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7176,\n end: 7178,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7178,\n end: 7186,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 7186,\n end: 7191,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7191,\n end: 7192,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7192,\n end: 7194,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7194,\n end: 7195,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 7195,\n end: 7197,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7197,\n end: 7198,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7198,\n end: 7199,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7199,\n end: 7200,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\n start: 7200,\n end: 7201,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7201,\n end: 7203,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7203,\n end: 7211,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 7211,\n end: 7214,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7214,\n end: 7216,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7216,\n end: 7220,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"right_id\",\n start: 7220,\n end: 7228,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7228,\n end: 7229,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7229,\n end: 7230,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7230,\n end: 7231,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7231,\n end: 7232,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 7232,\n end: 7234,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7234,\n end: 7236,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7236,\n end: 7244,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 7244,\n end: 7249,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7249,\n end: 7250,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7250,\n end: 7252,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7252,\n end: 7253,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 7253,\n end: 7254,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7254,\n end: 7256,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7256,\n end: 7264,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cases\",\n start: 7264,\n end: 7269,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7269,\n end: 7270,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 7270,\n end: 7271,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7271,\n end: 7272,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 7272,\n end: 7276,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7276,\n end: 7278,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7278,\n end: 7286,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7286,\n end: 7287,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7287,\n end: 7288,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"none\",\n start: 7288,\n end: 7292,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7292,\n end: 7293,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7293,\n end: 7294,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 7294,\n end: 7295,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7295,\n end: 7296,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 7296,\n end: 7299,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7299,\n end: 7301,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7301,\n end: 7309,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7309,\n end: 7310,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7310,\n end: 7311,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"some\",\n start: 7311,\n end: 7315,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7315,\n end: 7316,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7316,\n end: 7317,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7317,\n end: 7318,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7318,\n end: 7319,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 7319,\n end: 7320,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7320,\n end: 7321,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 7321,\n end: 7324,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7324,\n end: 7326,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7326,\n end: 7330,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"assoc\",\n start: 7330,\n end: 7335,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7335,\n end: 7336,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7336,\n end: 7337,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7337,\n end: 7338,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7338,\n end: 7339,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 7339,\n end: 7341,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7341,\n end: 7343,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7343,\n end: 7351,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 7351,\n end: 7356,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7356,\n end: 7357,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7357,\n end: 7359,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7359,\n end: 7360,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"β\",\n start: 7360,\n end: 7362,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7362,\n end: 7363,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"γ\",\n start: 7363,\n end: 7365,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7365,\n end: 7366,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 7366,\n end: 7367,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7367,\n end: 7368,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"f\",\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: \"Identifier\",\n text: \"g\",\n start: 7370,\n end: 7371,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7371,\n end: 7373,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7373,\n end: 7381,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cases\",\n start: 7381,\n end: 7386,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7386,\n end: 7387,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 7387,\n end: 7388,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7388,\n end: 7389,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 7389,\n end: 7393,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7393,\n end: 7395,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7395,\n end: 7403,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7403,\n end: 7404,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7404,\n end: 7405,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"none\",\n start: 7405,\n end: 7409,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7409,\n end: 7410,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7410,\n end: 7411,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 7411,\n end: 7412,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7412,\n end: 7413,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 7413,\n end: 7416,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7416,\n end: 7418,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7418,\n end: 7426,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7426,\n end: 7427,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7427,\n end: 7428,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"some\",\n start: 7428,\n end: 7432,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7432,\n end: 7433,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\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: \"Eq\",\n text: \"=\",\n start: 7435,\n end: 7436,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 7436,\n end: 7437,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7437,\n end: 7438,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rfl\",\n start: 7438,\n end: 7441,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7441,\n end: 7443,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7443,\n end: 7445,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Quotient types\",\n start: 7445,\n end: 7462,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7462,\n end: 7464,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 7464,\n end: 7467,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7467,\n end: 7468,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Equiv\",\n start: 7468,\n end: 7473,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7473,\n end: 7474,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7474,\n end: 7475,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7475,\n end: 7477,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7477,\n end: 7478,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7478,\n end: 7479,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7479,\n end: 7480,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 7480,\n end: 7484,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 7484,\n end: 7485,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7485,\n end: 7486,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7486,\n end: 7487,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7487,\n end: 7488,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7488,\n end: 7489,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7489,\n end: 7490,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7490,\n end: 7492,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7492,\n end: 7493,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 7493,\n end: 7496,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7496,\n end: 7497,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7497,\n end: 7499,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7499,\n end: 7500,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 7500,\n end: 7503,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7503,\n end: 7504,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Prop\",\n start: 7504,\n end: 7508,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7508,\n end: 7510,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7510,\n end: 7512,\n },\n TokenData {\n kind: \"Variable\",\n text: \"variable\",\n start: 7512,\n end: 7520,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7520,\n end: 7521,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7521,\n end: 7522,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 7522,\n end: 7523,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7523,\n end: 7524,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7524,\n end: 7525,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7525,\n end: 7526,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Equiv\",\n start: 7526,\n end: 7531,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7531,\n end: 7532,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7532,\n end: 7534,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7534,\n end: 7535,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7535,\n end: 7537,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7537,\n end: 7539,\n },\n TokenData {\n kind: \"Axiom\",\n text: \"axiom\",\n start: 7539,\n end: 7544,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7544,\n end: 7545,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"equiv_refl\",\n start: 7545,\n end: 7555,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7555,\n end: 7556,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7556,\n end: 7557,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7557,\n end: 7558,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 7558,\n end: 7561,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7561,\n end: 7562,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7562,\n end: 7563,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7563,\n end: 7564,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7564,\n end: 7565,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7565,\n end: 7566,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7566,\n end: 7568,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7568,\n end: 7569,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7569,\n end: 7570,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 7570,\n end: 7571,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7571,\n end: 7572,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7572,\n end: 7573,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7573,\n end: 7574,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7574,\n end: 7575,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7575,\n end: 7577,\n },\n TokenData {\n kind: \"Axiom\",\n text: \"axiom\",\n start: 7577,\n end: 7582,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7582,\n end: 7583,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"equiv_symm\",\n start: 7583,\n end: 7593,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7593,\n end: 7594,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7594,\n end: 7595,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7595,\n end: 7596,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 7596,\n end: 7599,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7599,\n end: 7600,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7600,\n end: 7601,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7601,\n end: 7602,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 7602,\n end: 7603,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7603,\n end: 7604,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7604,\n end: 7605,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7605,\n end: 7606,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7606,\n end: 7608,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7608,\n end: 7609,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7609,\n end: 7610,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 7610,\n end: 7611,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7611,\n end: 7612,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7612,\n end: 7613,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7613,\n end: 7614,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 7614,\n end: 7615,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7615,\n end: 7616,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 7616,\n end: 7619,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7619,\n end: 7620,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 7620,\n end: 7621,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7621,\n end: 7622,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 7622,\n end: 7623,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7623,\n end: 7624,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7624,\n end: 7625,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7625,\n end: 7627,\n },\n TokenData {\n kind: \"Axiom\",\n text: \"axiom\",\n start: 7627,\n end: 7632,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7632,\n end: 7633,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"equiv_trans\",\n start: 7633,\n end: 7644,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7644,\n end: 7645,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7645,\n end: 7646,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7646,\n end: 7647,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 7647,\n end: 7650,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7650,\n end: 7651,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7651,\n end: 7652,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7652,\n end: 7653,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 7653,\n end: 7654,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7654,\n end: 7655,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 7655,\n end: 7656,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7656,\n end: 7657,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7657,\n end: 7658,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7658,\n end: 7659,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7659,\n end: 7661,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 7661,\n end: 7662,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7662,\n end: 7663,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 7663,\n end: 7664,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7664,\n end: 7665,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7665,\n end: 7666,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7666,\n end: 7667,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 7667,\n end: 7668,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7668,\n end: 7669,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 7669,\n end: 7672,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7672,\n end: 7673,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 7673,\n end: 7674,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7674,\n end: 7675,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 7675,\n end: 7676,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7676,\n end: 7677,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 7677,\n end: 7678,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7678,\n end: 7679,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 7679,\n end: 7682,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7682,\n end: 7683,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 7683,\n end: 7684,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7684,\n end: 7685,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\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: \"Identifier\",\n text: \"c\",\n start: 7687,\n end: 7688,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7688,\n end: 7690,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7690,\n end: 7692,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 7692,\n end: 7695,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7695,\n end: 7696,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Quotient\",\n start: 7696,\n end: 7704,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7704,\n end: 7705,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7705,\n end: 7706,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 7706,\n end: 7707,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7707,\n end: 7708,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7708,\n end: 7709,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7709,\n end: 7710,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Equiv\",\n start: 7710,\n end: 7715,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7715,\n end: 7716,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 7716,\n end: 7718,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7718,\n end: 7719,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7719,\n end: 7720,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7720,\n end: 7721,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7721,\n end: 7722,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 7722,\n end: 7726,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 7726,\n end: 7727,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7727,\n end: 7728,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7728,\n end: 7729,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7729,\n end: 7730,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7730,\n end: 7731,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Quot\",\n start: 7731,\n end: 7735,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7735,\n end: 7736,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"r\",\n start: 7736,\n end: 7737,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7737,\n end: 7739,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7739,\n end: 7741,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Inductive-recursive definitions\",\n start: 7741,\n end: 7775,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7775,\n end: 7777,\n },\n TokenData {\n kind: \"Inductive\",\n text: \"inductive\",\n start: 7777,\n end: 7786,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7786,\n end: 7787,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Code\",\n start: 7787,\n end: 7791,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7791,\n end: 7792,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7792,\n end: 7793,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7793,\n end: 7794,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 7794,\n end: 7798,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7798,\n end: 7799,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 7799,\n end: 7804,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7804,\n end: 7806,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7806,\n end: 7810,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7810,\n end: 7811,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7811,\n end: 7812,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nat\",\n start: 7812,\n end: 7815,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7815,\n end: 7816,\n },\n TokenData {\n kind: \"Error\",\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: \"Identifier\",\n text: \"Code\",\n start: 7818,\n end: 7822,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7822,\n end: 7824,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7824,\n end: 7828,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7828,\n end: 7829,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7829,\n end: 7830,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pi\",\n start: 7830,\n end: 7832,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7832,\n end: 7833,\n },\n TokenData {\n kind: \"Error\",\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: \"Identifier\",\n text: \"Code\",\n start: 7835,\n end: 7839,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7839,\n end: 7840,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 7840,\n end: 7843,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7843,\n end: 7844,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7844,\n end: 7845,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 7845,\n end: 7848,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7848,\n end: 7849,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 7849,\n end: 7852,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7852,\n end: 7853,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Code\",\n start: 7853,\n end: 7857,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7857,\n end: 7858,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7858,\n end: 7859,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 7859,\n end: 7862,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7862,\n end: 7863,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Code\",\n start: 7863,\n end: 7867,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7867,\n end: 7869,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7869,\n end: 7871,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 7871,\n end: 7874,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7874,\n end: 7875,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"decode\",\n start: 7875,\n end: 7881,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7881,\n end: 7882,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7882,\n end: 7883,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7883,\n end: 7884,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Code\",\n start: 7884,\n end: 7888,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7888,\n end: 7889,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 7889,\n end: 7892,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7892,\n end: 7893,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 7893,\n end: 7897,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7897,\n end: 7899,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7899,\n end: 7903,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 7903,\n end: 7904,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7904,\n end: 7905,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Code\",\n start: 7905,\n end: 7909,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7909,\n end: 7910,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nat\",\n start: 7910,\n end: 7913,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7913,\n end: 7914,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7914,\n end: 7915,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 7915,\n end: 7916,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7916,\n end: 7917,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 7917,\n end: 7920,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7920,\n end: 7922,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7922,\n end: 7926,\n },\n TokenData {\n kind: \"Pipe\",\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: \"Identifier\",\n text: \"Code\",\n start: 7928,\n end: 7932,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 7932,\n end: 7933,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pi\",\n start: 7933,\n end: 7935,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7935,\n end: 7936,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7936,\n end: 7937,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7937,\n end: 7938,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 7938,\n end: 7939,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7939,\n end: 7940,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 7940,\n end: 7941,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 7941,\n end: 7942,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7942,\n end: 7943,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7943,\n end: 7944,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 7944,\n end: 7945,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7945,\n end: 7946,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7946,\n end: 7947,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7947,\n end: 7948,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"decode\",\n start: 7948,\n end: 7954,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7954,\n end: 7955,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 7955,\n end: 7956,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7956,\n end: 7957,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7957,\n end: 7958,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 7958,\n end: 7961,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7961,\n end: 7962,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"decode\",\n start: 7962,\n end: 7968,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7968,\n end: 7969,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7969,\n end: 7970,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 7970,\n end: 7971,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7971,\n end: 7972,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 7972,\n end: 7973,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"sorry\",\n start: 7973,\n end: 7978,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7978,\n end: 7979,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 7979,\n end: 7980,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 7980,\n end: 7981,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 7981,\n end: 7984,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7984,\n end: 7985,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 7985,\n end: 7986,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7986,\n end: 7988,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 7988,\n end: 7990,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Coinductive types\",\n start: 7990,\n end: 8010,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8010,\n end: 8012,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"coinductive\",\n start: 8012,\n end: 8023,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8023,\n end: 8024,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Stream\",\n start: 8024,\n end: 8030,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8030,\n end: 8031,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8031,\n end: 8032,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 8032,\n end: 8034,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8034,\n end: 8035,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8035,\n end: 8036,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8036,\n end: 8037,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 8037,\n end: 8041,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 8041,\n end: 8042,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8042,\n end: 8043,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8043,\n end: 8044,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8044,\n end: 8045,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8045,\n end: 8046,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 8046,\n end: 8050,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 8050,\n end: 8051,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8051,\n end: 8052,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 8052,\n end: 8057,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8057,\n end: 8059,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8059,\n end: 8063,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8063,\n end: 8064,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8064,\n end: 8065,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cons\",\n start: 8065,\n end: 8069,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8069,\n end: 8070,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8070,\n end: 8071,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8071,\n end: 8072,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 8072,\n end: 8074,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8074,\n end: 8075,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 8075,\n end: 8078,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8078,\n end: 8079,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Stream\",\n start: 8079,\n end: 8085,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8085,\n end: 8086,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 8086,\n end: 8088,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8088,\n end: 8089,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 8089,\n end: 8092,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8092,\n end: 8093,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Stream\",\n start: 8093,\n end: 8099,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8099,\n end: 8100,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 8100,\n end: 8102,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8102,\n end: 8104,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8104,\n end: 8106,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 8106,\n end: 8109,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8109,\n end: 8110,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Stream\",\n start: 8110,\n end: 8116,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 8116,\n end: 8117,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"head\",\n start: 8117,\n end: 8121,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8121,\n end: 8122,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8122,\n end: 8123,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8123,\n end: 8124,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Stream\",\n start: 8124,\n end: 8130,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8130,\n end: 8131,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 8131,\n end: 8133,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8133,\n end: 8134,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 8134,\n end: 8137,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8137,\n end: 8138,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 8138,\n end: 8140,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8140,\n end: 8142,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8142,\n end: 8146,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8146,\n end: 8147,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8147,\n end: 8148,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Stream\",\n start: 8148,\n end: 8154,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 8154,\n end: 8155,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cons\",\n start: 8155,\n end: 8159,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8159,\n end: 8160,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 8160,\n end: 8161,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8161,\n end: 8162,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 8162,\n end: 8163,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8163,\n end: 8164,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8164,\n end: 8165,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8165,\n end: 8166,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8166,\n end: 8167,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 8167,\n end: 8168,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8168,\n end: 8170,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8170,\n end: 8172,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 8172,\n end: 8175,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8175,\n end: 8176,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Stream\",\n start: 8176,\n end: 8182,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 8182,\n end: 8183,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"tail\",\n start: 8183,\n end: 8187,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8187,\n end: 8188,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8188,\n end: 8189,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8189,\n end: 8190,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Stream\",\n start: 8190,\n end: 8196,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8196,\n end: 8197,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 8197,\n end: 8199,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8199,\n end: 8200,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 8200,\n end: 8203,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8203,\n end: 8204,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Stream\",\n start: 8204,\n end: 8210,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8210,\n end: 8211,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 8211,\n end: 8213,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8213,\n end: 8215,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8215,\n end: 8219,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8219,\n end: 8220,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8220,\n end: 8221,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Stream\",\n start: 8221,\n end: 8227,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 8227,\n end: 8228,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cons\",\n start: 8228,\n end: 8232,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8232,\n end: 8233,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 8233,\n end: 8234,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8234,\n end: 8235,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"t\",\n start: 8235,\n end: 8236,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8236,\n end: 8237,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8237,\n end: 8238,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8238,\n end: 8239,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8239,\n end: 8240,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"t\",\n start: 8240,\n end: 8241,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8241,\n end: 8243,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8243,\n end: 8245,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Partial functions\",\n start: 8245,\n end: 8265,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8265,\n end: 8267,\n },\n TokenData {\n kind: \"Partial\",\n text: \"partial\",\n start: 8267,\n end: 8274,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8274,\n end: 8275,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 8275,\n end: 8278,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8278,\n end: 8279,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"collatz\",\n start: 8279,\n end: 8286,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8286,\n end: 8287,\n },\n TokenData {\n kind: \"Error\",\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: \"Identifier\",\n text: \"ℕ\",\n start: 8289,\n end: 8292,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8292,\n end: 8293,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 8293,\n end: 8296,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8296,\n end: 8297,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 8297,\n end: 8300,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8300,\n end: 8302,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8302,\n end: 8306,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8306,\n end: 8307,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8307,\n end: 8308,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 8308,\n end: 8309,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8309,\n end: 8310,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8310,\n end: 8311,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8311,\n end: 8312,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8312,\n end: 8313,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 8313,\n end: 8314,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8314,\n end: 8316,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8316,\n end: 8320,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8320,\n end: 8321,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8321,\n end: 8322,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8322,\n end: 8323,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8323,\n end: 8324,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8324,\n end: 8325,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8325,\n end: 8326,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8326,\n end: 8327,\n },\n TokenData {\n kind: \"If\",\n text: \"if\",\n start: 8327,\n end: 8329,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8329,\n end: 8330,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8330,\n end: 8331,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8331,\n end: 8332,\n },\n TokenData {\n kind: \"Percent\",\n text: \"%\",\n start: 8332,\n end: 8333,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8333,\n end: 8334,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"2\",\n start: 8334,\n end: 8335,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8335,\n end: 8336,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8336,\n end: 8337,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8337,\n end: 8338,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 8338,\n end: 8339,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8339,\n end: 8340,\n },\n TokenData {\n kind: \"Then\",\n text: \"then\",\n start: 8340,\n end: 8344,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8344,\n end: 8345,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"collatz\",\n start: 8345,\n end: 8352,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8352,\n end: 8353,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8353,\n end: 8354,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8354,\n end: 8355,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8355,\n end: 8356,\n },\n TokenData {\n kind: \"Slash\",\n text: \"/\",\n start: 8356,\n end: 8357,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8357,\n end: 8358,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"2\",\n start: 8358,\n end: 8359,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8359,\n end: 8360,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8360,\n end: 8361,\n },\n TokenData {\n kind: \"Else\",\n text: \"else\",\n start: 8361,\n end: 8365,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8365,\n end: 8366,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"collatz\",\n start: 8366,\n end: 8373,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8373,\n end: 8374,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8374,\n end: 8375,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"3\",\n start: 8375,\n end: 8376,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8376,\n end: 8377,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 8377,\n end: 8378,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8378,\n end: 8379,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\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: \"Plus\",\n text: \"+\",\n start: 8381,\n end: 8382,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8382,\n end: 8383,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 8383,\n end: 8384,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8384,\n end: 8385,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8385,\n end: 8387,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8387,\n end: 8389,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Well-founded recursion\",\n start: 8389,\n end: 8414,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8414,\n end: 8416,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 8416,\n end: 8419,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8419,\n end: 8420,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ackermann\",\n start: 8420,\n end: 8429,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8429,\n end: 8430,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8430,\n end: 8431,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8431,\n end: 8432,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 8432,\n end: 8435,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8435,\n end: 8436,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 8436,\n end: 8439,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8439,\n end: 8440,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 8440,\n end: 8443,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8443,\n end: 8444,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 8444,\n end: 8447,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8447,\n end: 8448,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 8448,\n end: 8451,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8451,\n end: 8452,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8452,\n end: 8453,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8453,\n end: 8454,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8454,\n end: 8455,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 8455,\n end: 8458,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8458,\n end: 8459,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8459,\n end: 8460,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8460,\n end: 8461,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8461,\n end: 8462,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8462,\n end: 8463,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8463,\n end: 8464,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8464,\n end: 8465,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8465,\n end: 8467,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8467,\n end: 8471,\n },\n TokenData {\n kind: \"Match\",\n text: \"match\",\n start: 8471,\n end: 8476,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8476,\n end: 8477,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8477,\n end: 8478,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8478,\n end: 8479,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 8479,\n end: 8483,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8483,\n end: 8485,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8485,\n end: 8489,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8489,\n end: 8490,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8490,\n end: 8491,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 8491,\n end: 8492,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8492,\n end: 8493,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8493,\n end: 8494,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8494,\n end: 8495,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8495,\n end: 8496,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8496,\n end: 8497,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8497,\n end: 8498,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 8498,\n end: 8499,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8499,\n end: 8500,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 8500,\n end: 8501,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8501,\n end: 8503,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8503,\n end: 8507,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8507,\n end: 8508,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8508,\n end: 8509,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8509,\n end: 8510,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8510,\n end: 8511,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 8511,\n end: 8512,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8512,\n end: 8513,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 8513,\n end: 8514,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8514,\n end: 8515,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8515,\n end: 8516,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8516,\n end: 8517,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8517,\n end: 8518,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8518,\n end: 8520,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8520,\n end: 8528,\n },\n TokenData {\n kind: \"Match\",\n text: \"match\",\n start: 8528,\n end: 8533,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8533,\n end: 8534,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8534,\n end: 8535,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8535,\n end: 8536,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 8536,\n end: 8540,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8540,\n end: 8542,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8542,\n end: 8550,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8550,\n end: 8551,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8551,\n end: 8552,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 8552,\n end: 8553,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8553,\n end: 8554,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8554,\n end: 8555,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8555,\n end: 8556,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8556,\n end: 8557,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ackermann\",\n start: 8557,\n end: 8566,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8566,\n end: 8567,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8567,\n end: 8568,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8568,\n end: 8569,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 8569,\n end: 8570,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8570,\n end: 8572,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8572,\n end: 8580,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8580,\n end: 8581,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8581,\n end: 8582,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8582,\n end: 8583,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8583,\n end: 8584,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 8584,\n end: 8585,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8585,\n end: 8586,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 8586,\n end: 8587,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8587,\n end: 8588,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8588,\n end: 8589,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8589,\n end: 8590,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8590,\n end: 8591,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ackermann\",\n start: 8591,\n end: 8600,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8600,\n end: 8601,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8601,\n end: 8602,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8602,\n end: 8603,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8603,\n end: 8604,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ackermann\",\n start: 8604,\n end: 8613,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8613,\n end: 8614,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8614,\n end: 8615,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8615,\n end: 8616,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8616,\n end: 8617,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 8617,\n end: 8618,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8618,\n end: 8619,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 8619,\n end: 8620,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8620,\n end: 8621,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8621,\n end: 8622,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8622,\n end: 8623,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8623,\n end: 8624,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8624,\n end: 8626,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8626,\n end: 8628,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Termination proofs\",\n start: 8628,\n end: 8649,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8649,\n end: 8651,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 8651,\n end: 8654,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8654,\n end: 8655,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gcd\",\n start: 8655,\n end: 8658,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8658,\n end: 8659,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8659,\n end: 8660,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8660,\n end: 8661,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 8661,\n end: 8664,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8664,\n end: 8665,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 8665,\n end: 8668,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8668,\n end: 8669,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 8669,\n end: 8672,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8672,\n end: 8673,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 8673,\n end: 8676,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8676,\n end: 8677,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 8677,\n end: 8680,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8680,\n end: 8682,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8682,\n end: 8686,\n },\n TokenData {\n kind: \"Pipe\",\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: \"IntegerLiteral\",\n text: \"0\",\n start: 8688,\n end: 8689,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8689,\n end: 8690,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8690,\n end: 8691,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8691,\n end: 8692,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8692,\n end: 8693,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8693,\n end: 8694,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8694,\n end: 8695,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8695,\n end: 8696,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8696,\n end: 8697,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8697,\n end: 8699,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8699,\n end: 8703,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8703,\n end: 8704,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8704,\n end: 8705,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\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: \"IntegerLiteral\",\n text: \"0\",\n start: 8708,\n end: 8709,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8709,\n end: 8710,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8710,\n end: 8711,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8711,\n end: 8712,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8712,\n end: 8713,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8713,\n end: 8714,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8714,\n end: 8716,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8716,\n end: 8720,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8720,\n end: 8721,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8721,\n end: 8722,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8722,\n end: 8723,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 8723,\n end: 8724,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8724,\n end: 8725,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8725,\n end: 8726,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8726,\n end: 8727,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8727,\n end: 8728,\n },\n TokenData {\n kind: \"Gt\",\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: \"If\",\n text: \"if\",\n start: 8730,\n end: 8732,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8732,\n end: 8733,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8733,\n end: 8734,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8734,\n end: 8735,\n },\n TokenData {\n kind: \"Error\",\n text: \"≤\",\n start: 8735,\n end: 8738,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8738,\n end: 8739,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8739,\n end: 8740,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8740,\n end: 8741,\n },\n TokenData {\n kind: \"Then\",\n text: \"then\",\n start: 8741,\n end: 8745,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8745,\n end: 8746,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gcd\",\n start: 8746,\n end: 8749,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8749,\n end: 8750,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8750,\n end: 8751,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8751,\n end: 8752,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8752,\n end: 8753,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\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: \"Whitespace\",\n text: \" \",\n start: 8756,\n end: 8757,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8757,\n end: 8758,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8758,\n end: 8759,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8759,\n end: 8760,\n },\n TokenData {\n kind: \"Else\",\n text: \"else\",\n start: 8760,\n end: 8764,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8764,\n end: 8765,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gcd\",\n start: 8765,\n end: 8768,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8768,\n end: 8769,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8769,\n end: 8770,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8770,\n end: 8771,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8771,\n end: 8772,\n },\n TokenData {\n kind: \"Error\",\n text: \"-\",\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: \"Identifier\",\n text: \"n\",\n start: 8774,\n end: 8775,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8775,\n end: 8776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8776,\n end: 8777,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8777,\n end: 8778,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8778,\n end: 8780,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"termination_by\",\n start: 8780,\n end: 8794,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8794,\n end: 8795,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"gcd\",\n start: 8795,\n end: 8798,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8798,\n end: 8799,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8799,\n end: 8800,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8800,\n end: 8801,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8801,\n end: 8802,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8802,\n end: 8803,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8803,\n end: 8804,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8804,\n end: 8805,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8805,\n end: 8806,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"m\",\n start: 8806,\n end: 8807,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8807,\n end: 8808,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 8808,\n end: 8809,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8809,\n end: 8810,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 8810,\n end: 8811,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8811,\n end: 8813,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8813,\n end: 8815,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Macro definitions\",\n start: 8815,\n end: 8835,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8835,\n end: 8837,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"macro\",\n start: 8837,\n end: 8842,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8842,\n end: 8843,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"my_simp\\\"\",\n start: 8843,\n end: 8852,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8852,\n end: 8853,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8853,\n end: 8854,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8854,\n end: 8855,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"tactic\",\n start: 8855,\n end: 8861,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8861,\n end: 8862,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8862,\n end: 8863,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8863,\n end: 8864,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8864,\n end: 8865,\n },\n TokenData {\n kind: \"Error\",\n text: \"`\",\n start: 8865,\n end: 8866,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8866,\n end: 8867,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"tactic\",\n start: 8867,\n end: 8873,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8873,\n end: 8874,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8874,\n end: 8875,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp_all\",\n start: 8875,\n end: 8883,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8883,\n end: 8884,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8884,\n end: 8886,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8886,\n end: 8888,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"macro\",\n start: 8888,\n end: 8893,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8893,\n end: 8894,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"my_intro\\\"\",\n start: 8894,\n end: 8904,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8904,\n end: 8905,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8905,\n end: 8906,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8906,\n end: 8907,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"tactic\",\n start: 8907,\n end: 8913,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8913,\n end: 8914,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8914,\n end: 8915,\n },\n TokenData {\n kind: \"Gt\",\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: \"Error\",\n text: \"`\",\n start: 8917,\n end: 8918,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 8918,\n end: 8919,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"tactic\",\n start: 8919,\n end: 8925,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 8925,\n end: 8926,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8926,\n end: 8927,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 8927,\n end: 8932,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 8932,\n end: 8933,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8933,\n end: 8935,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8935,\n end: 8937,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Notation declarations\",\n start: 8937,\n end: 8961,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8961,\n end: 8963,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"notation\",\n start: 8963,\n end: 8971,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 8971,\n end: 8972,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"65\",\n start: 8972,\n end: 8974,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8974,\n end: 8975,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 8975,\n end: 8976,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8976,\n end: 8977,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\" ⊕ \\\"\",\n start: 8977,\n end: 8984,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8984,\n end: 8985,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 8985,\n end: 8986,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8986,\n end: 8987,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 8987,\n end: 8988,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 8988,\n end: 8989,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8989,\n end: 8990,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Xor\",\n start: 8990,\n end: 8993,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8993,\n end: 8994,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 8994,\n end: 8995,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 8995,\n end: 8996,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 8996,\n end: 8997,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8997,\n end: 8999,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 8999,\n end: 9001,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"infixl\",\n start: 9001,\n end: 9007,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9007,\n end: 9008,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"70\",\n start: 9008,\n end: 9010,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9010,\n end: 9011,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\" ⊗ \\\"\",\n start: 9011,\n end: 9018,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9018,\n end: 9019,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9019,\n end: 9020,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 9020,\n end: 9021,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9021,\n end: 9022,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 9022,\n end: 9025,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9025,\n end: 9026,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\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: \"Identifier\",\n text: \"b\",\n start: 9028,\n end: 9029,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9029,\n end: 9030,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9030,\n end: 9031,\n },\n TokenData {\n kind: \"Gt\",\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: \"LeftParen\",\n text: \"(\",\n start: 9033,\n end: 9034,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9034,\n end: 9035,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9035,\n end: 9036,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9036,\n end: 9037,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9037,\n end: 9038,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9038,\n end: 9039,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9039,\n end: 9041,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9041,\n end: 9043,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"prefix\",\n start: 9043,\n end: 9049,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9049,\n end: 9050,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"75\",\n start: 9050,\n end: 9052,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9052,\n end: 9053,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"¬\\\"\",\n start: 9053,\n end: 9057,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9057,\n end: 9058,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9058,\n end: 9059,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 9059,\n end: 9060,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9060,\n end: 9061,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Not\",\n start: 9061,\n end: 9064,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9064,\n end: 9066,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9066,\n end: 9068,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"postfix\",\n start: 9068,\n end: 9075,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9075,\n end: 9076,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"80\",\n start: 9076,\n end: 9078,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9078,\n end: 9079,\n },\n TokenData {\n kind: \"StringLiteral\",\n text: \"\\\"!\\\"\",\n start: 9079,\n end: 9082,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9082,\n end: 9083,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9083,\n end: 9084,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 9084,\n end: 9085,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9085,\n end: 9086,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"factorial\",\n start: 9086,\n end: 9095,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9095,\n end: 9097,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9097,\n end: 9099,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Attribute declarations\",\n start: 9099,\n end: 9124,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9124,\n end: 9126,\n },\n TokenData {\n kind: \"At\",\n text: \"@\",\n start: 9126,\n end: 9127,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9127,\n end: 9128,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"inline\",\n start: 9128,\n end: 9134,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9134,\n end: 9135,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9135,\n end: 9137,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 9137,\n end: 9140,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9140,\n end: 9141,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"fastAdd\",\n start: 9141,\n end: 9148,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9148,\n end: 9149,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9149,\n end: 9150,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9150,\n end: 9151,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9151,\n end: 9152,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9152,\n end: 9153,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9153,\n end: 9154,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9154,\n end: 9155,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9155,\n end: 9156,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 9156,\n end: 9159,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9159,\n end: 9160,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9160,\n end: 9161,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9161,\n end: 9162,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9162,\n end: 9163,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 9163,\n end: 9166,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9166,\n end: 9167,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9167,\n end: 9168,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9168,\n end: 9169,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9169,\n end: 9170,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\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: \"Plus\",\n text: \"+\",\n start: 9172,\n end: 9173,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9173,\n end: 9174,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9174,\n end: 9175,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9175,\n end: 9177,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9177,\n end: 9179,\n },\n TokenData {\n kind: \"At\",\n text: \"@\",\n start: 9179,\n end: 9180,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9180,\n end: 9181,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 9181,\n end: 9185,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9185,\n end: 9186,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9186,\n end: 9187,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"norm_cast\",\n start: 9187,\n end: 9196,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9196,\n end: 9197,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9197,\n end: 9199,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 9199,\n end: 9206,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9206,\n end: 9207,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cast_add\",\n start: 9207,\n end: 9215,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9215,\n end: 9216,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9216,\n end: 9217,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9217,\n end: 9218,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9218,\n end: 9219,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9219,\n end: 9220,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9220,\n end: 9221,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9221,\n end: 9222,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9222,\n end: 9223,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 9223,\n end: 9226,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9226,\n end: 9227,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9227,\n end: 9228,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9228,\n end: 9229,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9229,\n end: 9230,\n },\n TokenData {\n kind: \"Error\",\n text: \"↑\",\n start: 9230,\n end: 9233,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9233,\n end: 9234,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9234,\n end: 9235,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9235,\n end: 9236,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 9236,\n end: 9237,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9237,\n end: 9238,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9238,\n end: 9239,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9239,\n end: 9240,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9240,\n end: 9241,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9241,\n end: 9242,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9242,\n end: 9243,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9243,\n end: 9244,\n },\n TokenData {\n kind: \"Error\",\n text: \"↑\",\n start: 9244,\n end: 9247,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9247,\n end: 9248,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9248,\n end: 9249,\n },\n TokenData {\n kind: \"Error\",\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: \"Identifier\",\n text: \"ℤ\",\n start: 9251,\n end: 9254,\n },\n TokenData {\n kind: \"RightParen\",\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: \"Plus\",\n text: \"+\",\n start: 9256,\n end: 9257,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9257,\n end: 9258,\n },\n TokenData {\n kind: \"Error\",\n text: \"↑\",\n start: 9258,\n end: 9261,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9261,\n end: 9262,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9262,\n end: 9263,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9263,\n end: 9264,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9264,\n end: 9265,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9265,\n end: 9266,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 9266,\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: \"Identifier\",\n text: \"rfl\",\n start: 9274,\n end: 9277,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9277,\n end: 9279,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9279,\n end: 9281,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Section with variables\",\n start: 9281,\n end: 9306,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9306,\n end: 9308,\n },\n TokenData {\n kind: \"Section\",\n text: \"section\",\n start: 9308,\n end: 9315,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9315,\n end: 9316,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"GroupTheory\",\n start: 9316,\n end: 9327,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9327,\n end: 9329,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9329,\n end: 9331,\n },\n TokenData {\n kind: \"Variable\",\n text: \"variable\",\n start: 9331,\n end: 9339,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9339,\n end: 9340,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 9340,\n end: 9341,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"G\",\n start: 9341,\n end: 9342,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9342,\n end: 9343,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9343,\n end: 9344,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9344,\n end: 9345,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 9345,\n end: 9349,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 9349,\n end: 9350,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 9350,\n end: 9351,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9351,\n end: 9352,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9352,\n end: 9353,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Group\",\n start: 9353,\n end: 9358,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9358,\n end: 9359,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"G\",\n start: 9359,\n end: 9360,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9360,\n end: 9361,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9361,\n end: 9363,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9363,\n end: 9365,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 9365,\n end: 9372,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9372,\n end: 9373,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"inv_inv\",\n start: 9373,\n end: 9380,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9380,\n end: 9381,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9381,\n end: 9382,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9382,\n end: 9383,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9383,\n end: 9384,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9384,\n end: 9385,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9385,\n end: 9386,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"G\",\n start: 9386,\n end: 9387,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9387,\n end: 9388,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9388,\n end: 9389,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9389,\n end: 9390,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9390,\n end: 9391,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9391,\n end: 9392,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9392,\n end: 9393,\n },\n TokenData {\n kind: \"Error\",\n text: \"⁻\",\n start: 9393,\n end: 9396,\n },\n TokenData {\n kind: \"Error\",\n text: \"¹\",\n start: 9396,\n end: 9398,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9398,\n end: 9399,\n },\n TokenData {\n kind: \"Error\",\n text: \"⁻\",\n start: 9399,\n end: 9402,\n },\n TokenData {\n kind: \"Error\",\n text: \"¹\",\n start: 9402,\n end: 9404,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9404,\n end: 9405,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9405,\n end: 9406,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9406,\n end: 9407,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\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: \"Error\",\n text: \":\",\n start: 9409,\n end: 9410,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9410,\n end: 9411,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9411,\n end: 9412,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 9412,\n end: 9414,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9414,\n end: 9416,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9416,\n end: 9420,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"apply\",\n start: 9420,\n end: 9425,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9425,\n end: 9426,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Group\",\n start: 9426,\n end: 9431,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 9431,\n end: 9432,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"left_inv\",\n start: 9432,\n end: 9440,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9440,\n end: 9442,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9442,\n end: 9444,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 9444,\n end: 9451,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9451,\n end: 9452,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"inv_mul_cancel_left\",\n start: 9452,\n end: 9471,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9471,\n end: 9472,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9472,\n end: 9473,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9473,\n end: 9474,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9474,\n end: 9475,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9475,\n end: 9476,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9476,\n end: 9477,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9477,\n end: 9478,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9478,\n end: 9479,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"G\",\n start: 9479,\n end: 9480,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9480,\n end: 9481,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9481,\n end: 9482,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9482,\n end: 9483,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9483,\n end: 9484,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9484,\n end: 9485,\n },\n TokenData {\n kind: \"Error\",\n text: \"⁻\",\n start: 9485,\n end: 9488,\n },\n TokenData {\n kind: \"Error\",\n text: \"¹\",\n start: 9488,\n end: 9490,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9490,\n end: 9491,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 9491,\n end: 9492,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9492,\n end: 9493,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9493,\n end: 9494,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9494,\n end: 9495,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9495,\n end: 9496,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 9496,\n end: 9497,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9497,\n end: 9498,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9498,\n end: 9499,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9499,\n end: 9500,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9500,\n end: 9501,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9501,\n end: 9502,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9502,\n end: 9503,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9503,\n end: 9504,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9504,\n end: 9505,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9505,\n end: 9506,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9506,\n end: 9507,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9507,\n end: 9508,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 9508,\n end: 9510,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9510,\n end: 9512,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9512,\n end: 9516,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 9516,\n end: 9518,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9518,\n end: 9519,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9519,\n end: 9520,\n },\n TokenData {\n kind: \"Error\",\n text: \"←\",\n start: 9520,\n end: 9523,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9523,\n end: 9524,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Group\",\n start: 9524,\n end: 9529,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 9529,\n end: 9530,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"assoc\",\n start: 9530,\n end: 9535,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9535,\n end: 9536,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9536,\n end: 9537,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Group\",\n start: 9537,\n end: 9542,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 9542,\n end: 9543,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"left_inv\",\n start: 9543,\n end: 9551,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 9551,\n end: 9552,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9552,\n end: 9553,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Group\",\n start: 9553,\n end: 9558,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 9558,\n end: 9559,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"left_one\",\n start: 9559,\n end: 9567,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9567,\n end: 9568,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9568,\n end: 9570,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9570,\n end: 9572,\n },\n TokenData {\n kind: \"End\",\n text: \"end\",\n start: 9572,\n end: 9575,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9575,\n end: 9576,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"GroupTheory\",\n start: 9576,\n end: 9587,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9587,\n end: 9589,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9589,\n end: 9591,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Namespace with definitions\",\n start: 9591,\n end: 9620,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9620,\n end: 9622,\n },\n TokenData {\n kind: \"Namespace\",\n text: \"namespace\",\n start: 9622,\n end: 9631,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9631,\n end: 9632,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"LinearAlgebra\",\n start: 9632,\n end: 9645,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9645,\n end: 9647,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9647,\n end: 9649,\n },\n TokenData {\n kind: \"Variable\",\n text: \"variable\",\n start: 9649,\n end: 9657,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9657,\n end: 9658,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 9658,\n end: 9659,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"K\",\n start: 9659,\n end: 9660,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9660,\n end: 9661,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9661,\n end: 9662,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9662,\n end: 9663,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 9663,\n end: 9667,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 9667,\n end: 9668,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 9668,\n end: 9669,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9669,\n end: 9670,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9670,\n end: 9671,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Field\",\n start: 9671,\n end: 9676,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9676,\n end: 9677,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"K\",\n start: 9677,\n end: 9678,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9678,\n end: 9679,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9679,\n end: 9681,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9681,\n end: 9683,\n },\n TokenData {\n kind: \"Structure\",\n text: \"structure\",\n start: 9683,\n end: 9692,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9692,\n end: 9693,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"VectorSpace\",\n start: 9693,\n end: 9704,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9704,\n end: 9705,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9705,\n end: 9706,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"K\",\n start: 9706,\n end: 9707,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9707,\n end: 9708,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9708,\n end: 9709,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9709,\n end: 9710,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 9710,\n end: 9714,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 9714,\n end: 9715,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 9715,\n end: 9716,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9716,\n end: 9717,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 9717,\n end: 9718,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Field\",\n start: 9718,\n end: 9723,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9723,\n end: 9724,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"K\",\n start: 9724,\n end: 9725,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 9725,\n end: 9726,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9726,\n end: 9727,\n },\n TokenData {\n kind: \"Where\",\n text: \"where\",\n start: 9727,\n end: 9732,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9732,\n end: 9734,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9734,\n end: 9738,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"carrier\",\n start: 9738,\n end: 9745,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9745,\n end: 9746,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9746,\n end: 9747,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9747,\n end: 9748,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 9748,\n end: 9752,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 9752,\n end: 9753,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9753,\n end: 9755,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9755,\n end: 9759,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add\",\n start: 9759,\n end: 9762,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9762,\n end: 9763,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9763,\n end: 9764,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9764,\n end: 9765,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"carrier\",\n start: 9765,\n end: 9772,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9772,\n end: 9773,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 9773,\n end: 9776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9776,\n end: 9777,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"carrier\",\n start: 9777,\n end: 9784,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9784,\n end: 9785,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 9785,\n end: 9788,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9788,\n end: 9789,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"carrier\",\n start: 9789,\n end: 9796,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9796,\n end: 9798,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9798,\n end: 9802,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"smul\",\n start: 9802,\n end: 9806,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9806,\n end: 9807,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9807,\n end: 9808,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9808,\n end: 9809,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"K\",\n start: 9809,\n end: 9810,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9810,\n end: 9811,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 9811,\n end: 9814,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9814,\n end: 9815,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"carrier\",\n start: 9815,\n end: 9822,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9822,\n end: 9823,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 9823,\n end: 9826,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9826,\n end: 9827,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"carrier\",\n start: 9827,\n end: 9834,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9834,\n end: 9836,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9836,\n end: 9840,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 9840,\n end: 9844,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9844,\n end: 9845,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9845,\n end: 9846,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9846,\n end: 9847,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"carrier\",\n start: 9847,\n end: 9854,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9854,\n end: 9856,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9856,\n end: 9860,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"neg\",\n start: 9860,\n end: 9863,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9863,\n end: 9864,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9864,\n end: 9865,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9865,\n end: 9866,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"carrier\",\n start: 9866,\n end: 9873,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9873,\n end: 9874,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 9874,\n end: 9877,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9877,\n end: 9878,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"carrier\",\n start: 9878,\n end: 9885,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9885,\n end: 9887,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9887,\n end: 9889,\n },\n TokenData {\n kind: \"End\",\n text: \"end\",\n start: 9889,\n end: 9892,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9892,\n end: 9893,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"LinearAlgebra\",\n start: 9893,\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: \"Comment\",\n text: \"-- Calc proofs\",\n start: 9910,\n end: 9924,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9924,\n end: 9926,\n },\n TokenData {\n kind: \"Example\",\n text: \"example\",\n start: 9926,\n end: 9933,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9933,\n end: 9934,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 9934,\n end: 9935,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9935,\n end: 9936,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9936,\n end: 9937,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9937,\n end: 9938,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9938,\n end: 9939,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 9939,\n end: 9940,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9940,\n end: 9941,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9941,\n end: 9942,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9942,\n end: 9943,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 9943,\n end: 9946,\n },\n TokenData {\n kind: \"RightParen\",\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: \"Error\",\n text: \":\",\n start: 9948,\n end: 9949,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9949,\n end: 9950,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9950,\n end: 9951,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9951,\n end: 9952,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 9952,\n end: 9953,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9953,\n end: 9954,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9954,\n end: 9955,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9955,\n end: 9956,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 9956,\n end: 9957,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9957,\n end: 9958,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 9958,\n end: 9959,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9959,\n end: 9960,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9960,\n end: 9961,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9961,\n end: 9962,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 9962,\n end: 9963,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9963,\n end: 9964,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 9964,\n end: 9965,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9965,\n end: 9966,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9966,\n end: 9967,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9967,\n end: 9968,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 9968,\n end: 9969,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9969,\n end: 9970,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9970,\n end: 9971,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9971,\n end: 9972,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 9972,\n end: 9973,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 9973,\n end: 9974,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9974,\n end: 9975,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 9975,\n end: 9977,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9977,\n end: 9979,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9979,\n end: 9983,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"calc\",\n start: 9983,\n end: 9987,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9987,\n end: 9988,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 9988,\n end: 9989,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9989,\n end: 9990,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 9990,\n end: 9991,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9991,\n end: 9992,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 9992,\n end: 9993,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9993,\n end: 9994,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 9994,\n end: 9995,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9995,\n end: 9996,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 9996,\n end: 9997,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 9997,\n end: 9998,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 9998,\n end: 10000,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10000,\n end: 10008,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10008,\n end: 10009,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10009,\n end: 10010,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10010,\n end: 10011,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10011,\n end: 10012,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10012,\n end: 10013,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10013,\n end: 10014,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10014,\n end: 10015,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10015,\n end: 10016,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10016,\n end: 10017,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10017,\n end: 10018,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10018,\n end: 10019,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10019,\n end: 10020,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 10020,\n end: 10021,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10021,\n end: 10022,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10022,\n end: 10023,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10023,\n end: 10024,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10024,\n end: 10025,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 10025,\n end: 10027,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10027,\n end: 10028,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 10028,\n end: 10030,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10030,\n end: 10031,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10031,\n end: 10032,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 10032,\n end: 10035,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10035,\n end: 10036,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_assoc\",\n start: 10036,\n end: 10045,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10045,\n end: 10046,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10046,\n end: 10048,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10048,\n end: 10056,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 10056,\n end: 10057,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10057,\n end: 10058,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10058,\n end: 10059,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10059,\n end: 10060,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10060,\n end: 10061,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10061,\n end: 10062,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10062,\n end: 10063,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10063,\n end: 10064,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10064,\n end: 10065,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10065,\n end: 10066,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10066,\n end: 10067,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10067,\n end: 10068,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10068,\n end: 10069,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10069,\n end: 10070,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 10070,\n end: 10071,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10071,\n end: 10072,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10072,\n end: 10073,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10073,\n end: 10074,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10074,\n end: 10075,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 10075,\n end: 10077,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10077,\n end: 10078,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 10078,\n end: 10080,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10080,\n end: 10081,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10081,\n end: 10082,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 10082,\n end: 10085,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10085,\n end: 10086,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_comm\",\n start: 10086,\n end: 10094,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10094,\n end: 10095,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10095,\n end: 10096,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10096,\n end: 10097,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10097,\n end: 10098,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10098,\n end: 10099,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10099,\n end: 10101,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10101,\n end: 10109,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 10109,\n end: 10110,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10110,\n end: 10111,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10111,\n end: 10112,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10112,\n end: 10113,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10113,\n end: 10114,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10114,\n end: 10115,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10115,\n end: 10116,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10116,\n end: 10117,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10117,\n end: 10118,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10118,\n end: 10119,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10119,\n end: 10120,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10120,\n end: 10121,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 10121,\n end: 10122,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10122,\n end: 10123,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10123,\n end: 10124,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10124,\n end: 10125,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10125,\n end: 10126,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 10126,\n end: 10128,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10128,\n end: 10129,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 10129,\n end: 10131,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10131,\n end: 10132,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10132,\n end: 10133,\n },\n TokenData {\n kind: \"Error\",\n text: \"←\",\n start: 10133,\n end: 10136,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10136,\n end: 10137,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 10137,\n end: 10140,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10140,\n end: 10141,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_assoc\",\n start: 10141,\n end: 10150,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10150,\n end: 10151,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10151,\n end: 10153,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10153,\n end: 10161,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 10161,\n end: 10162,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10162,\n end: 10163,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10163,\n end: 10164,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10164,\n end: 10165,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10165,\n end: 10166,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10166,\n end: 10167,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10167,\n end: 10168,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10168,\n end: 10169,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10169,\n end: 10170,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10170,\n end: 10171,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10171,\n end: 10172,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10172,\n end: 10173,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10173,\n end: 10174,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 10174,\n end: 10175,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10175,\n end: 10176,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10176,\n end: 10177,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10177,\n end: 10178,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10178,\n end: 10179,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10179,\n end: 10180,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 10180,\n end: 10182,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10182,\n end: 10183,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 10183,\n end: 10185,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10185,\n end: 10186,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10186,\n end: 10187,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 10187,\n end: 10190,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10190,\n end: 10191,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_assoc\",\n start: 10191,\n end: 10200,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10200,\n end: 10201,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10201,\n end: 10203,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10203,\n end: 10211,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 10211,\n end: 10212,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10212,\n end: 10213,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10213,\n end: 10214,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10214,\n end: 10215,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10215,\n end: 10216,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10216,\n end: 10217,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10217,\n end: 10218,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10218,\n end: 10219,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10219,\n end: 10220,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 10220,\n end: 10221,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10221,\n end: 10222,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10222,\n end: 10223,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10223,\n end: 10224,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10224,\n end: 10225,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10225,\n end: 10226,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10226,\n end: 10227,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10227,\n end: 10228,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10228,\n end: 10229,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10229,\n end: 10230,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 10230,\n end: 10232,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10232,\n end: 10233,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 10233,\n end: 10235,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10235,\n end: 10236,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10236,\n end: 10237,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 10237,\n end: 10240,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10240,\n end: 10241,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_comm\",\n start: 10241,\n end: 10249,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10249,\n end: 10250,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\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: \"Identifier\",\n text: \"c\",\n start: 10252,\n end: 10253,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10253,\n end: 10254,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10254,\n end: 10256,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10256,\n end: 10264,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 10264,\n end: 10265,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10265,\n end: 10266,\n },\n TokenData {\n kind: \"Eq\",\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: \"LeftParen\",\n text: \"(\",\n start: 10268,\n end: 10269,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10269,\n end: 10270,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10270,\n end: 10271,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10271,\n end: 10272,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10272,\n end: 10273,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 10273,\n end: 10274,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10274,\n end: 10275,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10275,\n end: 10276,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10276,\n end: 10277,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10277,\n end: 10278,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10278,\n end: 10279,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10279,\n end: 10280,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10280,\n end: 10281,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10281,\n end: 10282,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10282,\n end: 10283,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 10283,\n end: 10285,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10285,\n end: 10286,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 10286,\n end: 10288,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10288,\n end: 10289,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10289,\n end: 10290,\n },\n TokenData {\n kind: \"Error\",\n text: \"←\",\n start: 10290,\n end: 10293,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10293,\n end: 10294,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 10294,\n end: 10297,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10297,\n end: 10298,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_assoc\",\n start: 10298,\n end: 10307,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10307,\n end: 10308,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10308,\n end: 10310,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10310,\n end: 10318,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 10318,\n end: 10319,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10319,\n end: 10320,\n },\n TokenData {\n kind: \"Eq\",\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: \"LeftParen\",\n text: \"(\",\n start: 10322,\n end: 10323,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 10323,\n end: 10324,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10324,\n end: 10325,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10325,\n end: 10326,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10326,\n end: 10327,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10327,\n end: 10328,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10328,\n end: 10329,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10329,\n end: 10330,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10330,\n end: 10331,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10331,\n end: 10332,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10332,\n end: 10333,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10333,\n end: 10334,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10334,\n end: 10335,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10335,\n end: 10336,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10336,\n end: 10337,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 10337,\n end: 10339,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10339,\n end: 10340,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 10340,\n end: 10342,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10342,\n end: 10343,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10343,\n end: 10344,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 10344,\n end: 10347,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10347,\n end: 10348,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_comm\",\n start: 10348,\n end: 10356,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10356,\n end: 10357,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10357,\n end: 10358,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10358,\n end: 10359,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"c\",\n start: 10359,\n end: 10360,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10360,\n end: 10361,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10361,\n end: 10363,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10363,\n end: 10371,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"_\",\n start: 10371,\n end: 10372,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10372,\n end: 10373,\n },\n TokenData {\n kind: \"Eq\",\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: \"Identifier\",\n text: \"c\",\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: \"Plus\",\n text: \"+\",\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: \"Identifier\",\n text: \"b\",\n start: 10379,\n end: 10380,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10380,\n end: 10381,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10381,\n end: 10382,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10382,\n end: 10383,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10383,\n end: 10384,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10384,\n end: 10385,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10385,\n end: 10386,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\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: \"Identifier\",\n text: \"by\",\n start: 10388,\n end: 10390,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10390,\n end: 10391,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"rw\",\n start: 10391,\n end: 10393,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10393,\n end: 10394,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 10394,\n end: 10395,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 10395,\n end: 10398,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10398,\n end: 10399,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"add_assoc\",\n start: 10399,\n end: 10408,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10408,\n end: 10409,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10409,\n end: 10411,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10411,\n end: 10413,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Have and suffices\",\n start: 10413,\n end: 10433,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10433,\n end: 10435,\n },\n TokenData {\n kind: \"Example\",\n text: \"example\",\n start: 10435,\n end: 10442,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10442,\n end: 10443,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10443,\n end: 10444,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 10444,\n end: 10445,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10445,\n end: 10446,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10446,\n end: 10447,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10447,\n end: 10448,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 10448,\n end: 10449,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10449,\n end: 10450,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 10450,\n end: 10453,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10453,\n end: 10454,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"q\",\n start: 10454,\n end: 10455,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10455,\n end: 10456,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10456,\n end: 10457,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10457,\n end: 10458,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10458,\n end: 10459,\n },\n TokenData {\n kind: \"Error\",\n text: \"¬\",\n start: 10459,\n end: 10461,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"q\",\n start: 10461,\n end: 10462,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10462,\n end: 10463,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 10463,\n end: 10466,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10466,\n end: 10467,\n },\n TokenData {\n kind: \"Error\",\n text: \"¬\",\n start: 10467,\n end: 10469,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 10469,\n end: 10470,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10470,\n end: 10471,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10471,\n end: 10472,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10472,\n end: 10473,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10473,\n end: 10474,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 10474,\n end: 10476,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10476,\n end: 10478,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10478,\n end: 10482,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 10482,\n end: 10487,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10487,\n end: 10488,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hnq\",\n start: 10488,\n end: 10491,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10491,\n end: 10492,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hp\",\n start: 10492,\n end: 10494,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10494,\n end: 10496,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10496,\n end: 10500,\n },\n TokenData {\n kind: \"Have\",\n text: \"have\",\n start: 10500,\n end: 10504,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10504,\n end: 10505,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hq\",\n start: 10505,\n end: 10507,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10507,\n end: 10508,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10508,\n end: 10509,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10509,\n end: 10510,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"q\",\n start: 10510,\n end: 10511,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10511,\n end: 10512,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10512,\n end: 10513,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10513,\n end: 10514,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10514,\n end: 10515,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 10515,\n end: 10516,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10516,\n end: 10517,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hp\",\n start: 10517,\n end: 10519,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10519,\n end: 10521,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10521,\n end: 10525,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 10525,\n end: 10530,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10530,\n end: 10531,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hnq\",\n start: 10531,\n end: 10534,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10534,\n end: 10535,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hq\",\n start: 10535,\n end: 10537,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10537,\n end: 10539,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10539,\n end: 10541,\n },\n TokenData {\n kind: \"Example\",\n text: \"example\",\n start: 10541,\n end: 10548,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10548,\n end: 10549,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10549,\n end: 10550,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 10550,\n end: 10551,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10551,\n end: 10552,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10552,\n end: 10553,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10553,\n end: 10554,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 10554,\n end: 10555,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10555,\n end: 10556,\n },\n TokenData {\n kind: \"Error\",\n text: \"↔\",\n start: 10556,\n end: 10559,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10559,\n end: 10560,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"q\",\n start: 10560,\n end: 10561,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 10561,\n end: 10562,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10562,\n end: 10563,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10563,\n end: 10564,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10564,\n end: 10565,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"q\",\n start: 10565,\n end: 10566,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10566,\n end: 10567,\n },\n TokenData {\n kind: \"Error\",\n text: \"↔\",\n start: 10567,\n end: 10570,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10570,\n end: 10571,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 10571,\n end: 10572,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10572,\n end: 10573,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10573,\n end: 10574,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10574,\n end: 10575,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10575,\n end: 10576,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 10576,\n end: 10578,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10578,\n end: 10580,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10580,\n end: 10584,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"constructor\",\n start: 10584,\n end: 10595,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10595,\n end: 10597,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10597,\n end: 10601,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 10601,\n end: 10603,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10603,\n end: 10604,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 10604,\n end: 10609,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10609,\n end: 10610,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hq\",\n start: 10610,\n end: 10612,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10612,\n end: 10614,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10614,\n end: 10622,\n },\n TokenData {\n kind: \"Suffices\",\n text: \"suffices\",\n start: 10622,\n end: 10630,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10630,\n end: 10631,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hp\",\n start: 10631,\n end: 10633,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10633,\n end: 10634,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10634,\n end: 10635,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10635,\n end: 10636,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"p\",\n start: 10636,\n end: 10637,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10637,\n end: 10638,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 10638,\n end: 10640,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10640,\n end: 10641,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 10641,\n end: 10646,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10646,\n end: 10647,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hp\",\n start: 10647,\n end: 10649,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10649,\n end: 10651,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10651,\n end: 10659,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 10659,\n end: 10664,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10664,\n end: 10665,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 10665,\n end: 10666,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10666,\n end: 10667,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mpr\",\n start: 10667,\n end: 10670,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10670,\n end: 10671,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hq\",\n start: 10671,\n end: 10673,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10673,\n end: 10675,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10675,\n end: 10679,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 10679,\n end: 10681,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10681,\n end: 10682,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 10682,\n end: 10687,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10687,\n end: 10688,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hp\",\n start: 10688,\n end: 10690,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10690,\n end: 10692,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10692,\n end: 10700,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 10700,\n end: 10705,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10705,\n end: 10706,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 10706,\n end: 10707,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 10707,\n end: 10708,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mp\",\n start: 10708,\n end: 10710,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10710,\n end: 10711,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hp\",\n start: 10711,\n end: 10713,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10713,\n end: 10715,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10715,\n end: 10717,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Match expressions\",\n start: 10717,\n end: 10737,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10737,\n end: 10739,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 10739,\n end: 10742,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10742,\n end: 10743,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"listSum\",\n start: 10743,\n end: 10750,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10750,\n end: 10751,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10751,\n end: 10752,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10752,\n end: 10753,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 10753,\n end: 10757,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10757,\n end: 10758,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 10758,\n end: 10761,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10761,\n end: 10762,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 10762,\n end: 10765,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10765,\n end: 10766,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 10766,\n end: 10769,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10769,\n end: 10770,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10770,\n end: 10771,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10771,\n end: 10772,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10772,\n end: 10773,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 10773,\n end: 10776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10776,\n end: 10777,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l\",\n start: 10777,\n end: 10778,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10778,\n end: 10779,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10779,\n end: 10780,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 10780,\n end: 10781,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10781,\n end: 10783,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10783,\n end: 10787,\n },\n TokenData {\n kind: \"Match\",\n text: \"match\",\n start: 10787,\n end: 10792,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10792,\n end: 10793,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l\",\n start: 10793,\n end: 10794,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10794,\n end: 10795,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 10795,\n end: 10799,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10799,\n end: 10801,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10801,\n end: 10805,\n },\n TokenData {\n kind: \"Pipe\",\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: \"LeftBracket\",\n text: \"[\",\n start: 10807,\n end: 10808,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 10808,\n end: 10809,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10809,\n end: 10810,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10810,\n end: 10811,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 10811,\n end: 10812,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10812,\n end: 10813,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 10813,\n end: 10814,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10814,\n end: 10816,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10816,\n end: 10820,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 10820,\n end: 10821,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10821,\n end: 10822,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 10822,\n end: 10823,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10823,\n end: 10824,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10824,\n end: 10825,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10825,\n end: 10826,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10826,\n end: 10827,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 10827,\n end: 10829,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10829,\n end: 10830,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10830,\n end: 10831,\n },\n TokenData {\n kind: \"Gt\",\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: \"Identifier\",\n text: \"x\",\n start: 10833,\n end: 10834,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10834,\n end: 10835,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 10835,\n end: 10836,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10836,\n end: 10837,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"listSum\",\n start: 10837,\n end: 10844,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10844,\n end: 10845,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"xs\",\n start: 10845,\n end: 10847,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10847,\n end: 10849,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10849,\n end: 10851,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- If-then-else expressions\",\n start: 10851,\n end: 10878,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10878,\n end: 10880,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 10880,\n end: 10883,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10883,\n end: 10884,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"max\",\n start: 10884,\n end: 10887,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10887,\n end: 10888,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10888,\n end: 10889,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10889,\n end: 10890,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10890,\n end: 10891,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10891,\n end: 10892,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10892,\n end: 10893,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10893,\n end: 10894,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10894,\n end: 10895,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 10895,\n end: 10898,\n },\n TokenData {\n kind: \"RightParen\",\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: \"Error\",\n text: \":\",\n start: 10900,\n end: 10901,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10901,\n end: 10902,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 10902,\n end: 10905,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10905,\n end: 10906,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10906,\n end: 10907,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10907,\n end: 10908,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10908,\n end: 10909,\n },\n TokenData {\n kind: \"If\",\n text: \"if\",\n start: 10909,\n end: 10911,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10911,\n end: 10912,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10912,\n end: 10913,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10913,\n end: 10914,\n },\n TokenData {\n kind: \"Error\",\n text: \"≤\",\n start: 10914,\n end: 10917,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10917,\n end: 10918,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10918,\n end: 10919,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10919,\n end: 10920,\n },\n TokenData {\n kind: \"Then\",\n text: \"then\",\n start: 10920,\n end: 10924,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10924,\n end: 10925,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10925,\n end: 10926,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10926,\n end: 10927,\n },\n TokenData {\n kind: \"Else\",\n text: \"else\",\n start: 10927,\n end: 10931,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10931,\n end: 10932,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10932,\n end: 10933,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10933,\n end: 10935,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10935,\n end: 10937,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 10937,\n end: 10940,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10940,\n end: 10941,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"min\",\n start: 10941,\n end: 10944,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10944,\n end: 10945,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 10945,\n end: 10946,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\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: \"Identifier\",\n text: \"b\",\n start: 10948,\n end: 10949,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10949,\n end: 10950,\n },\n TokenData {\n kind: \"Error\",\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: \"Identifier\",\n text: \"ℕ\",\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: \"Whitespace\",\n text: \" \",\n start: 10956,\n end: 10957,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10957,\n end: 10958,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10958,\n end: 10959,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 10959,\n end: 10962,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10962,\n end: 10963,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 10963,\n end: 10964,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 10964,\n end: 10965,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10965,\n end: 10966,\n },\n TokenData {\n kind: \"If\",\n text: \"if\",\n start: 10966,\n end: 10968,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10968,\n end: 10969,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10969,\n end: 10970,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10970,\n end: 10971,\n },\n TokenData {\n kind: \"Error\",\n text: \"≤\",\n start: 10971,\n end: 10974,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10974,\n end: 10975,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10975,\n end: 10976,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10976,\n end: 10977,\n },\n TokenData {\n kind: \"Then\",\n text: \"then\",\n start: 10977,\n end: 10981,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10981,\n end: 10982,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"a\",\n start: 10982,\n end: 10983,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10983,\n end: 10984,\n },\n TokenData {\n kind: \"Else\",\n text: \"else\",\n start: 10984,\n end: 10988,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 10988,\n end: 10989,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"b\",\n start: 10989,\n end: 10990,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10990,\n end: 10992,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 10992,\n end: 10994,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Let expressions\",\n start: 10994,\n end: 11012,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11012,\n end: 11014,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 11014,\n end: 11017,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11017,\n end: 11018,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"complexComputation\",\n start: 11018,\n end: 11036,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11036,\n end: 11037,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11037,\n end: 11038,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 11038,\n end: 11039,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11039,\n end: 11040,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11040,\n end: 11041,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11041,\n end: 11042,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11042,\n end: 11045,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11045,\n end: 11046,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11046,\n end: 11047,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11047,\n end: 11048,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11048,\n end: 11049,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11049,\n end: 11052,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11052,\n end: 11053,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11053,\n end: 11054,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11054,\n end: 11055,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11055,\n end: 11057,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11057,\n end: 11061,\n },\n TokenData {\n kind: \"Let\",\n text: \"let\",\n start: 11061,\n end: 11064,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11064,\n end: 11065,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 11065,\n end: 11066,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11066,\n end: 11067,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11067,\n end: 11068,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11068,\n end: 11069,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11069,\n end: 11070,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 11070,\n end: 11071,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11071,\n end: 11072,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 11072,\n end: 11073,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11073,\n end: 11074,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"2\",\n start: 11074,\n end: 11075,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11075,\n end: 11077,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11077,\n end: 11081,\n },\n TokenData {\n kind: \"Let\",\n text: \"let\",\n start: 11081,\n end: 11084,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11084,\n end: 11085,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"y\",\n start: 11085,\n end: 11086,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11086,\n end: 11087,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11087,\n end: 11088,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11088,\n end: 11089,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11089,\n end: 11090,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 11090,\n end: 11091,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11091,\n end: 11092,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 11092,\n end: 11093,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11093,\n end: 11094,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 11094,\n end: 11095,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11095,\n end: 11097,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11097,\n end: 11101,\n },\n TokenData {\n kind: \"Let\",\n text: \"let\",\n start: 11101,\n end: 11104,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11104,\n end: 11105,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"z\",\n start: 11105,\n end: 11106,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11106,\n end: 11107,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11107,\n end: 11108,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11108,\n end: 11109,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11109,\n end: 11110,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"y\",\n start: 11110,\n end: 11111,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11111,\n end: 11112,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 11112,\n end: 11113,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11113,\n end: 11114,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"y\",\n start: 11114,\n end: 11115,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11115,\n end: 11117,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11117,\n end: 11121,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"z\",\n start: 11121,\n end: 11122,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11122,\n end: 11123,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 11123,\n end: 11124,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11124,\n end: 11125,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 11125,\n end: 11126,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11126,\n end: 11127,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 11127,\n end: 11128,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11128,\n end: 11129,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"y\",\n start: 11129,\n end: 11130,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11130,\n end: 11132,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11132,\n end: 11134,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Do notation (for monads)\",\n start: 11134,\n end: 11161,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11161,\n end: 11163,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 11163,\n end: 11166,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11166,\n end: 11167,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"optionExample\",\n start: 11167,\n end: 11180,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11180,\n end: 11181,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11181,\n end: 11182,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11182,\n end: 11183,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Option\",\n start: 11183,\n end: 11189,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11189,\n end: 11190,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11190,\n end: 11193,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11193,\n end: 11194,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11194,\n end: 11195,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11195,\n end: 11196,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11196,\n end: 11197,\n },\n TokenData {\n kind: \"Do\",\n text: \"do\",\n start: 11197,\n end: 11199,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11199,\n end: 11201,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11201,\n end: 11205,\n },\n TokenData {\n kind: \"Let\",\n text: \"let\",\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: \"Identifier\",\n text: \"x\",\n start: 11209,\n end: 11210,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11210,\n end: 11211,\n },\n TokenData {\n kind: \"Error\",\n text: \"←\",\n start: 11211,\n end: 11214,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11214,\n end: 11215,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"some\",\n start: 11215,\n end: 11219,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11219,\n end: 11220,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"5\",\n start: 11220,\n end: 11221,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11221,\n end: 11223,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11223,\n end: 11227,\n },\n TokenData {\n kind: \"Let\",\n text: \"let\",\n start: 11227,\n end: 11230,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11230,\n end: 11231,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"y\",\n start: 11231,\n end: 11232,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11232,\n end: 11233,\n },\n TokenData {\n kind: \"Error\",\n text: \"←\",\n start: 11233,\n end: 11236,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11236,\n end: 11237,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"some\",\n start: 11237,\n end: 11241,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11241,\n end: 11242,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"3\",\n start: 11242,\n end: 11243,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11243,\n end: 11245,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11245,\n end: 11249,\n },\n TokenData {\n kind: \"Return\",\n text: \"return\",\n start: 11249,\n end: 11255,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11255,\n end: 11256,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 11256,\n end: 11257,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11257,\n end: 11258,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 11258,\n end: 11259,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11259,\n end: 11260,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"y\",\n start: 11260,\n end: 11261,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11261,\n end: 11263,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11263,\n end: 11265,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Array and list comprehensions\",\n start: 11265,\n end: 11297,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11297,\n end: 11299,\n },\n TokenData {\n kind: \"Hash\",\n text: \"#\",\n start: 11299,\n end: 11300,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"eval\",\n start: 11300,\n end: 11304,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11304,\n end: 11305,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 11305,\n end: 11306,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 11306,\n end: 11307,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11307,\n end: 11308,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11308,\n end: 11309,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"2\",\n start: 11309,\n end: 11310,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11310,\n end: 11311,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11311,\n end: 11312,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"3\",\n start: 11312,\n end: 11313,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11313,\n end: 11314,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11314,\n end: 11315,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"4\",\n start: 11315,\n end: 11316,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11316,\n end: 11317,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11317,\n end: 11318,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"5\",\n start: 11318,\n end: 11319,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 11319,\n end: 11320,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 11320,\n end: 11321,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"map\",\n start: 11321,\n end: 11324,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11324,\n end: 11325,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11325,\n end: 11326,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 11326,\n end: 11328,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11328,\n end: 11329,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 11329,\n end: 11330,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11330,\n end: 11331,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"2\",\n start: 11331,\n end: 11332,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11332,\n end: 11333,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11333,\n end: 11335,\n },\n TokenData {\n kind: \"Hash\",\n text: \"#\",\n start: 11335,\n end: 11336,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"eval\",\n start: 11336,\n end: 11340,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11340,\n end: 11341,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 11341,\n end: 11342,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 11342,\n end: 11343,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11343,\n end: 11344,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11344,\n end: 11345,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"2\",\n start: 11345,\n end: 11346,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11346,\n end: 11347,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11347,\n end: 11348,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"3\",\n start: 11348,\n end: 11349,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11349,\n end: 11350,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11350,\n end: 11351,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"4\",\n start: 11351,\n end: 11352,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11352,\n end: 11353,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11353,\n end: 11354,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"5\",\n start: 11354,\n end: 11355,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 11355,\n end: 11356,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 11356,\n end: 11357,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"filter\",\n start: 11357,\n end: 11363,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11363,\n end: 11364,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11364,\n end: 11365,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 11365,\n end: 11367,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11367,\n end: 11368,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 11368,\n end: 11369,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11369,\n end: 11370,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"3\",\n start: 11370,\n end: 11371,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 11371,\n end: 11372,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11372,\n end: 11374,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11374,\n end: 11376,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Type ascriptions\",\n start: 11376,\n end: 11395,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11395,\n end: 11397,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 11397,\n end: 11400,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11400,\n end: 11401,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"typedExample\",\n start: 11401,\n end: 11413,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11413,\n end: 11414,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11414,\n end: 11415,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11415,\n end: 11416,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11416,\n end: 11419,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11419,\n end: 11420,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 11420,\n end: 11423,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11423,\n end: 11424,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11424,\n end: 11427,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11427,\n end: 11428,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11428,\n end: 11429,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11429,\n end: 11430,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11430,\n end: 11431,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 11431,\n end: 11432,\n },\n TokenData {\n kind: \"Fun\",\n text: \"fun\",\n start: 11432,\n end: 11435,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11435,\n end: 11436,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 11436,\n end: 11437,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11437,\n end: 11438,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11438,\n end: 11439,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 11439,\n end: 11440,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11440,\n end: 11441,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 11441,\n end: 11442,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11442,\n end: 11443,\n },\n TokenData {\n kind: \"Plus\",\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: \"IntegerLiteral\",\n text: \"1\",\n start: 11445,\n end: 11446,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11446,\n end: 11447,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11447,\n end: 11448,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11448,\n end: 11449,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11449,\n end: 11452,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11452,\n end: 11453,\n },\n TokenData {\n kind: \"Error\",\n text: \"→\",\n start: 11453,\n end: 11456,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11456,\n end: 11457,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11457,\n end: 11460,\n },\n TokenData {\n kind: \"RightParen\",\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: \"-- Anonymous constructor syntax\",\n start: 11465,\n end: 11496,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11496,\n end: 11498,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 11498,\n end: 11501,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11501,\n end: 11502,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"pointExample\",\n start: 11502,\n end: 11514,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11514,\n end: 11515,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11515,\n end: 11516,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11516,\n end: 11517,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Point\",\n start: 11517,\n end: 11522,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11522,\n end: 11523,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11523,\n end: 11526,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11526,\n end: 11527,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11527,\n end: 11528,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11528,\n end: 11529,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11529,\n end: 11530,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟨\",\n start: 11530,\n end: 11533,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"3\",\n start: 11533,\n end: 11534,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11534,\n end: 11535,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11535,\n end: 11536,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"4\",\n start: 11536,\n end: 11537,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟩\",\n start: 11537,\n end: 11540,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11540,\n end: 11542,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11542,\n end: 11544,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Subtype syntax\",\n start: 11544,\n end: 11561,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11561,\n end: 11563,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 11563,\n end: 11566,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11566,\n end: 11567,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"positiveNat\",\n start: 11567,\n end: 11578,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11578,\n end: 11579,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11579,\n end: 11580,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11580,\n end: 11581,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 11581,\n end: 11585,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11585,\n end: 11586,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11586,\n end: 11587,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11587,\n end: 11588,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11588,\n end: 11589,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 11589,\n end: 11590,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 11590,\n end: 11591,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11591,\n end: 11592,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11592,\n end: 11593,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11593,\n end: 11594,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11594,\n end: 11597,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11597,\n end: 11598,\n },\n TokenData {\n kind: \"Slash\",\n text: \"/\",\n start: 11598,\n end: 11599,\n },\n TokenData {\n kind: \"Slash\",\n text: \"/\",\n start: 11599,\n end: 11600,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11600,\n end: 11601,\n },\n TokenData {\n kind: \"Identifier\",\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: \"Gt\",\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: \"IntegerLiteral\",\n text: \"0\",\n start: 11605,\n end: 11606,\n },\n TokenData {\n kind: \"RightBrace\",\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: \"Newline\",\n text: \"\\r\\n\",\n start: 11609,\n end: 11611,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Dependent pair syntax\",\n start: 11611,\n end: 11635,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11635,\n end: 11637,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 11637,\n end: 11640,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11640,\n end: 11641,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"dependentPairExample\",\n start: 11641,\n end: 11661,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11661,\n end: 11662,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11662,\n end: 11663,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11663,\n end: 11664,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Σ\",\n start: 11664,\n end: 11666,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11666,\n end: 11667,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 11667,\n end: 11668,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11668,\n end: 11669,\n },\n TokenData {\n kind: \"Error\",\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: \"Identifier\",\n text: \"ℕ\",\n start: 11671,\n end: 11674,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11674,\n end: 11675,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11675,\n end: 11676,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Vector\",\n start: 11676,\n end: 11682,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11682,\n end: 11683,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11683,\n end: 11686,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11686,\n end: 11687,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 11687,\n end: 11688,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11688,\n end: 11689,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11689,\n end: 11690,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11690,\n end: 11691,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11691,\n end: 11692,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟨\",\n start: 11692,\n end: 11695,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"3\",\n start: 11695,\n end: 11696,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11696,\n end: 11697,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11697,\n end: 11698,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"sorry\",\n start: 11698,\n end: 11703,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟩\",\n start: 11703,\n end: 11706,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11706,\n end: 11708,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11708,\n end: 11710,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Placeholder and sorry\",\n start: 11710,\n end: 11734,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11734,\n end: 11736,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 11736,\n end: 11739,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11739,\n end: 11740,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"incompleteProof\",\n start: 11740,\n end: 11755,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11755,\n end: 11756,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11756,\n end: 11757,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11757,\n end: 11758,\n },\n TokenData {\n kind: \"Error\",\n text: \"∀\",\n start: 11758,\n end: 11761,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11761,\n end: 11762,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 11762,\n end: 11763,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11763,\n end: 11764,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11764,\n end: 11765,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11765,\n end: 11766,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 11766,\n end: 11769,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 11769,\n end: 11770,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11770,\n end: 11771,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 11771,\n end: 11772,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11772,\n end: 11773,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 11773,\n end: 11774,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11774,\n end: 11775,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 11775,\n end: 11776,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11776,\n end: 11777,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11777,\n end: 11778,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11778,\n end: 11779,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 11779,\n end: 11780,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11780,\n end: 11781,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 11781,\n end: 11782,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 11782,\n end: 11783,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11783,\n end: 11784,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 11784,\n end: 11786,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11786,\n end: 11788,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11788,\n end: 11792,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 11792,\n end: 11797,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11797,\n end: 11798,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 11798,\n end: 11799,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11799,\n end: 11801,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11801,\n end: 11805,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"sorry\",\n start: 11805,\n end: 11810,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11810,\n end: 11812,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11812,\n end: 11814,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Comments and documentation\",\n start: 11814,\n end: 11843,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11843,\n end: 11845,\n },\n TokenData {\n kind: \"Comment\",\n text: \"/-- \\r\\nThis is a documentation comment for a function.\\r\\nIt can span multiple lines and use markdown.\\r\\n\\r\\n# Example\\r\\n```lean\\r\\nmyFunction 5 = 10\\r\\n```\\r\\n-/\",\n start: 11845,\n end: 11994,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 11994,\n end: 11996,\n },\n TokenData {\n kind: \"Def\",\n text: \"def\",\n start: 11996,\n end: 11999,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 11999,\n end: 12000,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"myFunction\",\n start: 12000,\n end: 12010,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12010,\n end: 12011,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12011,\n end: 12012,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 12012,\n end: 12013,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12013,\n end: 12014,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 12014,\n end: 12015,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12015,\n end: 12016,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 12016,\n end: 12019,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12019,\n end: 12020,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12020,\n end: 12021,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 12021,\n end: 12022,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12022,\n end: 12023,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ℕ\",\n start: 12023,\n end: 12026,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12026,\n end: 12027,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 12027,\n end: 12028,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 12028,\n end: 12029,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12029,\n end: 12030,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"n\",\n start: 12030,\n end: 12031,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12031,\n end: 12032,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 12032,\n end: 12033,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12033,\n end: 12034,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"2\",\n start: 12034,\n end: 12035,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12035,\n end: 12037,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12037,\n end: 12039,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Single line comment\",\n start: 12039,\n end: 12061,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12061,\n end: 12063,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12063,\n end: 12065,\n },\n TokenData {\n kind: \"Comment\",\n text: \"/-\\r\\nMulti-line comment\\r\\nthat can span\\r\\nseveral lines\\r\\n-/\",\n start: 12065,\n end: 12121,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12121,\n end: 12123,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12123,\n end: 12125,\n },\n TokenData {\n kind: \"Comment\",\n text: \"-- Final example combining multiple features\",\n start: 12125,\n end: 12169,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12169,\n end: 12171,\n },\n TokenData {\n kind: \"Theorem\",\n text: \"theorem\",\n start: 12171,\n end: 12178,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12178,\n end: 12179,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"comprehensive_example\",\n start: 12179,\n end: 12200,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12200,\n end: 12201,\n },\n TokenData {\n kind: \"LeftBrace\",\n text: \"{\",\n start: 12201,\n end: 12202,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 12202,\n end: 12204,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12204,\n end: 12205,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 12205,\n end: 12206,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12206,\n end: 12207,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Type\",\n start: 12207,\n end: 12211,\n },\n TokenData {\n kind: \"Star\",\n text: \"*\",\n start: 12211,\n end: 12212,\n },\n TokenData {\n kind: \"RightBrace\",\n text: \"}\",\n start: 12212,\n end: 12213,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12213,\n end: 12214,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 12214,\n end: 12215,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"DecidableEq\",\n start: 12215,\n end: 12226,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12226,\n end: 12227,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 12227,\n end: 12229,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 12229,\n end: 12230,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12230,\n end: 12231,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12231,\n end: 12232,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l\",\n start: 12232,\n end: 12233,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12233,\n end: 12234,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 12234,\n end: 12235,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12235,\n end: 12236,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 12236,\n end: 12240,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12240,\n end: 12241,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 12241,\n end: 12243,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12243,\n end: 12244,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12244,\n end: 12245,\n },\n TokenData {\n kind: \"LeftParen\",\n text: \"(\",\n start: 12245,\n end: 12246,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 12246,\n end: 12247,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12247,\n end: 12248,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 12248,\n end: 12249,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12249,\n end: 12250,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"α\",\n start: 12250,\n end: 12252,\n },\n TokenData {\n kind: \"RightParen\",\n text: \")\",\n start: 12252,\n end: 12253,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12253,\n end: 12254,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 12254,\n end: 12255,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12255,\n end: 12257,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12257,\n end: 12261,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 12261,\n end: 12262,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12262,\n end: 12263,\n },\n TokenData {\n kind: \"Error\",\n text: \"∈\",\n start: 12263,\n end: 12266,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12266,\n end: 12267,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l\",\n start: 12267,\n end: 12268,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12268,\n end: 12269,\n },\n TokenData {\n kind: \"Error\",\n text: \"↔\",\n start: 12269,\n end: 12272,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12272,\n end: 12273,\n },\n TokenData {\n kind: \"Error\",\n text: \"∃\",\n start: 12273,\n end: 12276,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12276,\n end: 12277,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"i\",\n start: 12277,\n end: 12278,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12278,\n end: 12279,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12279,\n end: 12280,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"i\",\n start: 12280,\n end: 12281,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12281,\n end: 12282,\n },\n TokenData {\n kind: \"Lt\",\n text: \"<\",\n start: 12282,\n end: 12283,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12283,\n end: 12284,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l\",\n start: 12284,\n end: 12285,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 12285,\n end: 12286,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length\",\n start: 12286,\n end: 12292,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12292,\n end: 12293,\n },\n TokenData {\n kind: \"Error\",\n text: \"∧\",\n start: 12293,\n end: 12296,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12296,\n end: 12297,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l\",\n start: 12297,\n end: 12298,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 12298,\n end: 12299,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"get\",\n start: 12299,\n end: 12302,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12302,\n end: 12303,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟨\",\n start: 12303,\n end: 12306,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"i\",\n start: 12306,\n end: 12307,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12307,\n end: 12308,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12308,\n end: 12309,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 12309,\n end: 12311,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12311,\n end: 12312,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"assumption\",\n start: 12312,\n end: 12322,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟩\",\n start: 12322,\n end: 12325,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12325,\n end: 12326,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 12326,\n end: 12327,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12327,\n end: 12328,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"x\",\n start: 12328,\n end: 12329,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12329,\n end: 12330,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 12330,\n end: 12331,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 12331,\n end: 12332,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12332,\n end: 12333,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"by\",\n start: 12333,\n end: 12335,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12335,\n end: 12337,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12337,\n end: 12341,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"constructor\",\n start: 12341,\n end: 12352,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12352,\n end: 12354,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12354,\n end: 12358,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 12358,\n end: 12360,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12360,\n end: 12361,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 12361,\n end: 12366,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12366,\n end: 12367,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 12367,\n end: 12368,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12368,\n end: 12370,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12370,\n end: 12378,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"induction\",\n start: 12378,\n end: 12387,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12387,\n end: 12388,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l\",\n start: 12388,\n end: 12389,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12389,\n end: 12390,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 12390,\n end: 12394,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12394,\n end: 12396,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12396,\n end: 12404,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 12404,\n end: 12405,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12405,\n end: 12406,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nil\",\n start: 12406,\n end: 12409,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12409,\n end: 12410,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 12410,\n end: 12411,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 12411,\n end: 12412,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12412,\n end: 12413,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12413,\n end: 12415,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12415,\n end: 12427,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 12427,\n end: 12431,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12431,\n end: 12432,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"at\",\n start: 12432,\n end: 12434,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12434,\n end: 12435,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 12435,\n end: 12436,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12436,\n end: 12438,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12438,\n end: 12446,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 12446,\n end: 12447,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12447,\n end: 12448,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cons\",\n start: 12448,\n end: 12452,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12452,\n end: 12453,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"y\",\n start: 12453,\n end: 12454,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12454,\n end: 12455,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ys\",\n start: 12455,\n end: 12457,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12457,\n end: 12458,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 12458,\n end: 12460,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12460,\n end: 12461,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 12461,\n end: 12462,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 12462,\n end: 12463,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12463,\n end: 12465,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12465,\n end: 12477,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 12477,\n end: 12481,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12481,\n end: 12482,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 12482,\n end: 12483,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 12483,\n end: 12487,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 12487,\n end: 12488,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mem_cons\",\n start: 12488,\n end: 12496,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 12496,\n end: 12497,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12497,\n end: 12498,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"at\",\n start: 12498,\n end: 12500,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12500,\n end: 12501,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 12501,\n end: 12502,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12502,\n end: 12504,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12504,\n end: 12516,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cases\",\n start: 12516,\n end: 12521,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12521,\n end: 12522,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 12522,\n end: 12523,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12523,\n end: 12524,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 12524,\n end: 12528,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12528,\n end: 12530,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12530,\n end: 12542,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 12542,\n end: 12543,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12543,\n end: 12544,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"inl\",\n start: 12544,\n end: 12547,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12547,\n end: 12548,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 12548,\n end: 12549,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12549,\n end: 12550,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 12550,\n end: 12551,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 12551,\n end: 12552,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12552,\n end: 12553,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12553,\n end: 12555,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12555,\n end: 12571,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"use\",\n start: 12571,\n end: 12574,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12574,\n end: 12575,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"0\",\n start: 12575,\n end: 12576,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12576,\n end: 12578,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12578,\n end: 12594,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 12594,\n end: 12598,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12598,\n end: 12599,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 12599,\n end: 12600,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 12600,\n end: 12604,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 12604,\n end: 12605,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"get\",\n start: 12605,\n end: 12608,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12608,\n end: 12609,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12609,\n end: 12610,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 12610,\n end: 12611,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 12611,\n end: 12612,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12612,\n end: 12614,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12614,\n end: 12626,\n },\n TokenData {\n kind: \"Pipe\",\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: \"Identifier\",\n text: \"inr\",\n start: 12628,\n end: 12631,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12631,\n end: 12632,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 12632,\n end: 12633,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12633,\n end: 12634,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 12634,\n end: 12635,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 12635,\n end: 12636,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12636,\n end: 12638,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12638,\n end: 12654,\n },\n TokenData {\n kind: \"Have\",\n text: \"have\",\n start: 12654,\n end: 12658,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12658,\n end: 12659,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟨\",\n start: 12659,\n end: 12662,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"i\",\n start: 12662,\n end: 12663,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12663,\n end: 12664,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12664,\n end: 12665,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hi\",\n start: 12665,\n end: 12667,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12667,\n end: 12668,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12668,\n end: 12669,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hget\",\n start: 12669,\n end: 12673,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟩\",\n start: 12673,\n end: 12676,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12676,\n end: 12677,\n },\n TokenData {\n kind: \"Error\",\n text: \":\",\n start: 12677,\n end: 12678,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\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: \"Identifier\",\n text: \"ih\",\n start: 12680,\n end: 12682,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12682,\n end: 12683,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"h\",\n start: 12683,\n end: 12684,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12684,\n end: 12686,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12686,\n end: 12702,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"use\",\n start: 12702,\n end: 12705,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12705,\n end: 12706,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"i\",\n start: 12706,\n end: 12707,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12707,\n end: 12708,\n },\n TokenData {\n kind: \"Plus\",\n text: \"+\",\n start: 12708,\n end: 12709,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12709,\n end: 12710,\n },\n TokenData {\n kind: \"IntegerLiteral\",\n text: \"1\",\n start: 12710,\n end: 12711,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12711,\n end: 12713,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12713,\n end: 12729,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"constructor\",\n start: 12729,\n end: 12740,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12740,\n end: 12742,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12742,\n end: 12758,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 12758,\n end: 12760,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12760,\n end: 12761,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 12761,\n end: 12765,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12765,\n end: 12766,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 12766,\n end: 12767,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 12767,\n end: 12771,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 12771,\n end: 12772,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length_cons\",\n start: 12772,\n end: 12783,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 12783,\n end: 12784,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12784,\n end: 12786,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12786,\n end: 12806,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 12806,\n end: 12811,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12811,\n end: 12812,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 12812,\n end: 12815,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 12815,\n end: 12816,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ_lt_succ\",\n start: 12816,\n end: 12828,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12828,\n end: 12829,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hi\",\n start: 12829,\n end: 12831,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12831,\n end: 12833,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12833,\n end: 12849,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 12849,\n end: 12851,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12851,\n end: 12852,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 12852,\n end: 12856,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12856,\n end: 12857,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 12857,\n end: 12858,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 12858,\n end: 12862,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 12862,\n end: 12863,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"get\",\n start: 12863,\n end: 12866,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12866,\n end: 12867,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12867,\n end: 12868,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hget\",\n start: 12868,\n end: 12872,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 12872,\n end: 12873,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12873,\n end: 12875,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12875,\n end: 12879,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 12879,\n end: 12881,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12881,\n end: 12882,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"intro\",\n start: 12882,\n end: 12887,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12887,\n end: 12888,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟨\",\n start: 12888,\n end: 12891,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"i\",\n start: 12891,\n end: 12892,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12892,\n end: 12893,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12893,\n end: 12894,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hi\",\n start: 12894,\n end: 12896,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 12896,\n end: 12897,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12897,\n end: 12898,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hget\",\n start: 12898,\n end: 12902,\n },\n TokenData {\n kind: \"Error\",\n text: \"⟩\",\n start: 12902,\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: 12915,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"induction\",\n start: 12915,\n end: 12924,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12924,\n end: 12925,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"l\",\n start: 12925,\n end: 12926,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12926,\n end: 12927,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"generalizing\",\n start: 12927,\n end: 12939,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12939,\n end: 12940,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"i\",\n start: 12940,\n end: 12941,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12941,\n end: 12942,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 12942,\n end: 12946,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12946,\n end: 12948,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12948,\n end: 12956,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 12956,\n end: 12957,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12957,\n end: 12958,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"nil\",\n start: 12958,\n end: 12961,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12961,\n end: 12962,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 12962,\n end: 12963,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 12963,\n end: 12964,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12964,\n end: 12965,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12965,\n end: 12967,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12967,\n end: 12979,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 12979,\n end: 12983,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12983,\n end: 12984,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"at\",\n start: 12984,\n end: 12986,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12986,\n end: 12987,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hi\",\n start: 12987,\n end: 12989,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 12989,\n end: 12991,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 12991,\n end: 12999,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 12999,\n end: 13000,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13000,\n end: 13001,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cons\",\n start: 13001,\n end: 13005,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13005,\n end: 13006,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"y\",\n start: 13006,\n end: 13007,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13007,\n end: 13008,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ys\",\n start: 13008,\n end: 13010,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13010,\n end: 13011,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\n start: 13011,\n end: 13013,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13013,\n end: 13014,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 13014,\n end: 13015,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 13015,\n end: 13016,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13016,\n end: 13018,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13018,\n end: 13030,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"cases\",\n start: 13030,\n end: 13035,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13035,\n end: 13036,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"i\",\n start: 13036,\n end: 13037,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13037,\n end: 13038,\n },\n TokenData {\n kind: \"With\",\n text: \"with\",\n start: 13038,\n end: 13042,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13042,\n end: 13044,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13044,\n end: 13056,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 13056,\n end: 13057,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13057,\n end: 13058,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"zero\",\n start: 13058,\n end: 13062,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13062,\n end: 13063,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 13063,\n end: 13064,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 13064,\n end: 13065,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13065,\n end: 13067,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13067,\n end: 13083,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 13083,\n end: 13087,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13087,\n end: 13088,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13088,\n end: 13089,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 13089,\n end: 13093,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 13093,\n end: 13094,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"get\",\n start: 13094,\n end: 13097,\n },\n TokenData {\n kind: \"RightBracket\",\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: \"Identifier\",\n text: \"at\",\n start: 13099,\n end: 13101,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13101,\n end: 13102,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hget\",\n start: 13102,\n end: 13106,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13106,\n end: 13108,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13108,\n end: 13124,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 13124,\n end: 13128,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13128,\n end: 13129,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13129,\n end: 13130,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 13130,\n end: 13134,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 13134,\n end: 13135,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mem_cons\",\n start: 13135,\n end: 13143,\n },\n TokenData {\n kind: \"Comma\",\n text: \",\",\n start: 13143,\n end: 13144,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13144,\n end: 13145,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hget\",\n start: 13145,\n end: 13149,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13149,\n end: 13150,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13150,\n end: 13152,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13152,\n end: 13164,\n },\n TokenData {\n kind: \"Pipe\",\n text: \"|\",\n start: 13164,\n end: 13165,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13165,\n end: 13166,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"succ\",\n start: 13166,\n end: 13170,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13170,\n end: 13171,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"j\",\n start: 13171,\n end: 13172,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13172,\n end: 13173,\n },\n TokenData {\n kind: \"Eq\",\n text: \"=\",\n start: 13173,\n end: 13174,\n },\n TokenData {\n kind: \"Gt\",\n text: \">\",\n start: 13174,\n end: 13175,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13175,\n end: 13177,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13177,\n end: 13193,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 13193,\n end: 13197,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13197,\n end: 13198,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13198,\n end: 13199,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 13199,\n end: 13203,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 13203,\n end: 13204,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"mem_cons\",\n start: 13204,\n end: 13212,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13212,\n end: 13213,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13213,\n end: 13215,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13215,\n end: 13231,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"right\",\n start: 13231,\n end: 13236,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13236,\n end: 13238,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13238,\n end: 13254,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"apply\",\n start: 13254,\n end: 13259,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13259,\n end: 13260,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"ih\",\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: 13280,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"use\",\n start: 13280,\n end: 13283,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13283,\n end: 13284,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"j\",\n start: 13284,\n end: 13285,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13285,\n end: 13287,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13287,\n end: 13303,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"constructor\",\n start: 13303,\n end: 13314,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13314,\n end: 13316,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13316,\n end: 13332,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 13332,\n end: 13334,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13334,\n end: 13335,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 13335,\n end: 13339,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13339,\n end: 13340,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13340,\n end: 13341,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 13341,\n end: 13345,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 13345,\n end: 13346,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"length_cons\",\n start: 13346,\n end: 13357,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13357,\n end: 13358,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13358,\n end: 13359,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"at\",\n start: 13359,\n end: 13361,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13361,\n end: 13362,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hi\",\n start: 13362,\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: 13386,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 13386,\n end: 13391,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13391,\n end: 13392,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"Nat\",\n start: 13392,\n end: 13395,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 13395,\n end: 13396,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"lt_of_succ_lt_succ\",\n start: 13396,\n end: 13414,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13414,\n end: 13415,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hi\",\n start: 13415,\n end: 13417,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13417,\n end: 13419,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13419,\n end: 13435,\n },\n TokenData {\n kind: \"Error\",\n text: \"·\",\n start: 13435,\n end: 13437,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13437,\n end: 13438,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"simp\",\n start: 13438,\n end: 13442,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13442,\n end: 13443,\n },\n TokenData {\n kind: \"LeftBracket\",\n text: \"[\",\n start: 13443,\n end: 13444,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"List\",\n start: 13444,\n end: 13448,\n },\n TokenData {\n kind: \"Error\",\n text: \".\",\n start: 13448,\n end: 13449,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"get\",\n start: 13449,\n end: 13452,\n },\n TokenData {\n kind: \"RightBracket\",\n text: \"]\",\n start: 13452,\n end: 13453,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13453,\n end: 13454,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"at\",\n start: 13454,\n end: 13456,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13456,\n end: 13457,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hget\",\n start: 13457,\n end: 13461,\n },\n TokenData {\n kind: \"Newline\",\n text: \"\\r\\n\",\n start: 13461,\n end: 13463,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13463,\n end: 13483,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"exact\",\n start: 13483,\n end: 13488,\n },\n TokenData {\n kind: \"Whitespace\",\n text: \" \",\n start: 13488,\n end: 13489,\n },\n TokenData {\n kind: \"Identifier\",\n text: \"hget\",\n start: 13489,\n end: 13493,\n },\n TokenData {\n kind: \"Error\",\n text: \"\",\n start: 13493,\n end: 13493,\n },\n ],\n errors: [],\n}" } [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--test main` [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] lexer::test_lean_lexer [INFO] [stdout] [INFO] [stdout] test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0dd1469819615a91dc7621af53bb1ecc79725848484ad32fdd37a14d5b6698d5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0dd1469819615a91dc7621af53bb1ecc79725848484ad32fdd37a14d5b6698d5", kill_on_drop: false }` [INFO] [stdout] 0dd1469819615a91dc7621af53bb1ecc79725848484ad32fdd37a14d5b6698d5