diff --git a/README.md b/README.md index a870789a..539ac8f1 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ with idioms is [docs/idiomatic_pith.md](docs/idiomatic_pith.md). ## the standard library, briefly -81 modules, ~37,000 lines, all pith. the areas: io and filesystems +83 modules, ~38,000 lines, all pith. the areas: io and filesystems (fs, glob, path, process), networking (tcp, dns, url, http, http2, websocket, tls, sse), databases (sql, postgres, mysql, redis — pure-pith wire protocols with tls, prepared statements, and pooling — plus db, a @@ -150,7 +150,9 @@ pooled high-level layer over a connection url, see [docs/db.md](docs/db.md)), data (json, toml, yaml, csv, config, table, see [docs/yaml.md](docs/yaml.md) for the yaml subset), bytes and crypto (hash, checksum, encoding, -crypto, bits, binary), compression and archives (gzip/zlib, tar, zip), +crypto, bits, binary — including argon2id password hashing and json web +tokens, see [docs/auth.md](docs/auth.md)), +compression and archives (gzip/zlib, tar, zip), text (regex, scanner, fmt), app plumbing (log, metrics, cli, env, testing, diagnostic, time, datetime, rand, uuid, math), observability (trace, prometheus, otlp, obs — opentelemetry traces and metrics, see diff --git a/docs/auth.md b/docs/auth.md new file mode 100644 index 00000000..31e29904 --- /dev/null +++ b/docs/auth.md @@ -0,0 +1,190 @@ +# passwords and tokens + +authentication in pith is two modules. `std.crypto.password` handles the +password at rest, and `std.crypto.jwt` handles the session that follows. +`examples/auth.pith` runs the whole flow end to end. + +## hashing a password + +`hash` takes a password and returns a phc string. `verify` takes the password +and the stored string and says whether they match. + +```pith +import std.crypto.password as password + +stored := password.hash("correct horse battery staple")! +# $argon2id$v=19$m=19456,t=2,p=1$hMDYzMFA5NHRoZQ$Zk5MPFY7... + +password.verify("correct horse battery staple", stored) # true +password.verify("something else", stored) # false +``` + +the salt is fresh os randomness on every call, so hashing the same password +twice gives two different strings. the comparison at the end of `verify` goes +through `std.crypto.subtle`, so it looks at every byte whether or not the first +one matched — a comparison that returns early leaks how much of the tag was +right, one request at a time. + +`verify` returns a `Bool` rather than a result. a hash it cannot parse is a +failed verification, which is the only safe reading: an api that returned an +error there would sooner or later be called by something that treated +"unparseable" as "fine". + +## the parameters, and why these ones + +the defaults are owasp's argon2id parameters: 19 mib of memory, two passes, one +lane, a 16 byte salt and a 32 byte tag. that measures around 30 ms per hash on +a modest core. + +| | memory | passes | lanes | measured | +| --- | --- | --- | --- | --- | +| the default | 19 mib | 2 | 1 | ~30 ms | +| rfc 9106 first option | 2 gib | 1 | 4 | over the runtime's 1 gib cap | +| rfc 9106 second option | 64 mib | 3 | 4 | ~230 ms | + +30 ms is a deliberate middle. it is expensive enough that an attacker who +steals the database is buying time by the cpu-year, and cheap enough that a +login endpoint under load is not attacking itself — an auth path that spends a +quarter of a second per attempt hands anyone with a script a way to saturate +it. the runtime derives single-threaded, so raising `lanes` costs wall clock +rather than saving it. + +to move off the defaults, build a `Params` and use `hash_with`: + +```pith +strict := password.params(65536, 3, 1) # memory kib, passes, lanes +stored := password.hash_with(secret, strict)! +``` + +`params_with_lengths` also sets the salt and tag sizes. everything is range +checked before any derivation happens: at least 8 kib of memory per lane, a +salt of at least 8 bytes, a tag of at least 16, and no more than 1 gib of +memory, which is the cap the runtime enforces. + +## raising the parameters later + +the cost parameters are written into the phc string, so a hash stored under old +parameters stays verifiable after you raise them. `needs_rehash` is what tells +you which ones to replace: + +```pith +wanted := password.params(65536, 3, 1) + +if password.verify(attempt, stored): + if password.needs_rehash(stored, wanted): + stored = password.hash_with(attempt, wanted)! + save(user, stored) +``` + +the rehash happens inside the successful login, because that is the only moment +the plaintext password is in hand. a hash that cannot be parsed at all also +reports as needing a rehash, which quietly migrates anything left over from an +older scheme the first time its owner signs in. + +## json web tokens + +`std.crypto.jwt` reads and writes the jws compact serialization. the api is +deliberately asymmetric, and the asymmetry is visible in the function names: + +| algorithm | sign | verify | +| --- | --- | --- | +| HS256, HS384, HS512 | yes | yes | +| PS256 | yes | yes | +| RS256 | no | yes | +| ES256 | no | yes | +| EdDSA | no | yes | + +the runtime's only signing primitives are hmac and rsa-pss. it can verify +ed25519, ecdsa and rsa pkcs#1 signatures but cannot produce them, so a pith +service can validate tokens from an outside issuer using any of those and can +only issue HS\* or PS256 itself. there is no `sign_rs256` to discover at +runtime; the function does not exist. + +```pith +import std.bytes as bytes +import std.crypto.jwt as jwt + +secret := bytes.from_string_utf8(env("SESSION_SECRET")) +claims := "{{\"iss\":\"chat\",\"sub\":\"u-1024\",\"exp\":1750003600}}" + +token := jwt.sign_hs256(claims, secret)! +session := jwt.verify_hs256(token, secret, jwt.default_options())! +print(session.claims) +``` + +json in a pith string literal is written with doubled braces, since a single +`{` starts an interpolation. + +`verify_*` hands back a `Verified` holding the header and claims as the json +text they arrived as. parse them with `std.json` — `json.decode_text[T]` if you +have a struct for your claims, `json.parse` if you would rather have handles. + +## the two things jwt libraries get wrong + +### algorithm confusion + +every verifier names the algorithm it accepts. `verify_hs256` verifies HS256 +and nothing else; the token's own `alg` header is only ever compared against +the name the caller passed, and no code path selects a verifier from it. + +the attack this closes is the classic one. take a token meant for an rsa +verifier, re-sign it as HS256 using the rsa *public* key as the hmac secret, +and hand it to a verifier that trusts the header. against `verify_rs256` that +token is refused on its `alg` before its signature is looked at. + +### alg: none + +refused outright, with no option to turn it back on, spelled in any case, with +or without a signature field bolted on the end. an unsecured jws is a valid +thing for the spec to describe and never a valid thing for a verifier to +accept. + +### and the smaller ones + +a `crit` header parameter is rejected per rfc 7515 section 4.1.11, since a +verifier that ignores an extension the issuer marked critical is ignoring the +thing the issuer said not to ignore. signature comparison goes through +`std.crypto.subtle`. the token length, header parameter count, claim count and +audience list are all bounded. + +## checking the claims + +`Options` decides which registered claims get checked. the defaults check +`exp`, `nbf` and `iat` with a minute of clock skew, and compare nothing the +caller has not named: + +```pith +expected := jwt.with_audience(jwt.with_issuer(jwt.default_options(), "chat"), "web") +session := jwt.verify_hs256(token, secret, expected)! +``` + +the builders compose, each returning a new `Options`: + +- `with_issuer`, `with_audience`, `with_subject` — compare `iss`, `sub`, and + `aud`, which may be a string or an array of them +- `with_leeway` — how much clock skew the time comparisons tolerate +- `requiring_exp` — refuse a token that carries no `exp` at all +- `at_time` — validate against a fixed unix timestamp rather than the clock +- `without_time_checks` — turn off `exp`, `nbf` and `iat`, for replaying a + fixed vector and not for traffic + +## interoperability + +the tests verify the rfc 7515 appendix a.1 HS256 token and the appendix a.3 +ES256 token against the exact serializations the rfc prints, and +`tests/cases/test_jwt_asymmetric.pith` verifies an RS256 and an EdDSA token +signed with openssl. a token that only round trips against the module that made +it says nothing about talking to anyone else. + +ES256 needs a small translation on the way in: jws carries the ecdsa signature +as r and s glued together at a fixed width, and the runtime's verifier reads +the asn.1 der encoding, so `verify_es256` re-wraps it. + +key formats, which are the usual place to get stuck: + +- `verify_eddsa` takes the raw 32 byte ed25519 public key +- `verify_es256` takes the uncompressed p-256 point: `0x04`, then x, then y +- `verify_rs256` and `verify_ps256` take the pkcs#1 rsapublickey der, which is + what `std.crypto.x509` returns as a certificate's `subject_public_key` +- `sign_ps256` takes a pkcs#8 private key, which is what + `encoding.pem_decode` gives you from a `BEGIN PRIVATE KEY` file diff --git a/examples/auth.pith b/examples/auth.pith new file mode 100644 index 00000000..e432c067 --- /dev/null +++ b/examples/auth.pith @@ -0,0 +1,64 @@ +# signing a user up, logging them in, and handing them a session token. +# +# the two halves of an auth story: argon2id for the password at rest, and a +# signed json web token for the session that follows. json in string literals +# is written with doubled braces, which is pith's escape for a literal brace. + +import std.bytes as bytes +import std.crypto.jwt as jwt +import std.crypto.password as password + +# a fixed instant so the example prints the same thing every run. real code +# leaves `now` alone and lets the verifier read the clock. +NOW := 1_750_000_000 + +fn signing_secret() -> Bytes: + return bytes.from_string_utf8("keep this in the environment, not the source") + +fn register(secret: String) -> String!: + # the defaults are owasp's argon2id parameters, around 30 ms per hash. + stored := password.hash(secret)! + print("stored hash starts: " + stored.substring(0, 30)) + return stored + +fn log_in(attempt: String, stored: String) -> Bool: + return password.verify(attempt, stored) + +fn issue(subject: String) -> String!: + claims := "{{\"iss\":\"pith-chat\",\"sub\":\"" + subject + "\",\"aud\":\"chat\",\"iat\":1750000000,\"exp\":1750003600}}" + return jwt.sign_hs256(claims, signing_secret())! + +fn main() -> Int!: + print("=== registering ===") + stored := register("correct horse battery staple")! + print("right password: " + log_in("correct horse battery staple", stored).to_string()) + print("wrong password: " + log_in("correct horse battery stapler", stored).to_string()) + + print("") + print("=== raising the cost later ===") + # a year on, the same hash checked against parameters that have moved. + stronger := password.params(65536, 3, 4) + print("needs rehashing: " + password.needs_rehash(stored, stronger).to_string()) + print("still fine today: " + password.needs_rehash(stored, password.default_params()).to_string()) + + print("") + print("=== issuing a session token ===") + token := issue("u-1024")! + print("token fields: " + token.split(".").len().to_string()) + + # the verifier names its algorithm and what it expects to find inside. it + # never reads the algorithm off the token, which is what stops an attacker + # re-signing one and choosing the verification path for you. + expected := jwt.with_audience(jwt.with_issuer(jwt.at_time(jwt.default_options(), NOW), "pith-chat"), "chat") + session := jwt.verify_hs256(token, signing_secret(), expected)! + print("claims: " + session.claims) + + print("") + print("=== what gets turned away ===") + print("wrong secret: " + jwt.verify_hs256(token, bytes.from_string_utf8("guess"), expected).is_err.to_string()) + print("wrong audience: " + jwt.verify_hs256(token, signing_secret(), jwt.with_audience(jwt.at_time(jwt.default_options(), NOW), "billing")).is_err.to_string()) + print("expired an hour later: " + jwt.verify_hs256(token, signing_secret(), jwt.at_time(jwt.default_options(), NOW + 7200)).is_err.to_string()) + # pith cannot issue RS256 at all, and it will not verify an HS256 token + # through the rs256 path either. + print("hs256 token, rs256 verifier: " + jwt.verify_rs256(token, signing_secret(), expected).is_err.to_string()) + return 0 diff --git a/examples/expected/auth.txt b/examples/expected/auth.txt new file mode 100644 index 00000000..ac19333f --- /dev/null +++ b/examples/expected/auth.txt @@ -0,0 +1,18 @@ +=== registering === +stored hash starts: $argon2id$v=19$m=19456,t=2,p=1 +right password: true +wrong password: false + +=== raising the cost later === +needs rehashing: true +still fine today: false + +=== issuing a session token === +token fields: 3 +claims: {"iss":"pith-chat","sub":"u-1024","aud":"chat","iat":1750000000,"exp":1750003600} + +=== what gets turned away === +wrong secret: true +wrong audience: true +expired an hour later: true +hs256 token, rs256 verifier: true diff --git a/self-host/bootstrap/ir_driver.ir b/self-host/bootstrap/ir_driver.ir index fe9d5731..36c2227a 100644 --- a/self-host/bootstrap/ir_driver.ir +++ b/self-host/bootstrap/ir_driver.ir @@ -156,6 +156,8 @@ string m0s154 "crypto_aes_128_gcm_open failed" string m0s155 "crypto_chacha20_poly1305_seal failed" string m0s156 "crypto_chacha20_poly1305_open failed" string m0s157 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m0s158 "crypto_blake2b failed" +string m0s159 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -4824,6 +4826,8 @@ string m1s57 "crypto_aes_128_gcm_open failed" string m1s58 "crypto_chacha20_poly1305_seal failed" string m1s59 "crypto_chacha20_poly1305_open failed" string m1s60 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m1s61 "crypto_blake2b failed" +string m1s62 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -5200,6 +5204,8 @@ string m2s77 "crypto_aes_128_gcm_open failed" string m2s78 "crypto_chacha20_poly1305_seal failed" string m2s79 "crypto_chacha20_poly1305_open failed" string m2s80 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m2s81 "crypto_blake2b failed" +string m2s82 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -6662,6 +6668,8 @@ string m3s375 "crypto_aes_128_gcm_open failed" string m3s376 "crypto_chacha20_poly1305_seal failed" string m3s377 "crypto_chacha20_poly1305_open failed" string m3s378 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m3s379 "crypto_blake2b failed" +string m3s380 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -16405,6 +16413,8 @@ string m4s78 "crypto_aes_128_gcm_open failed" string m4s79 "crypto_chacha20_poly1305_seal failed" string m4s80 "crypto_chacha20_poly1305_open failed" string m4s81 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m4s82 "crypto_blake2b failed" +string m4s83 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -18430,6 +18440,8 @@ string m5s142 "crypto_aes_128_gcm_open failed" string m5s143 "crypto_chacha20_poly1305_seal failed" string m5s144 "crypto_chacha20_poly1305_open failed" string m5s145 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m5s146 "crypto_blake2b failed" +string m5s147 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -20998,6 +21010,8 @@ string m6s54 "crypto_aes_128_gcm_open failed" string m6s55 "crypto_chacha20_poly1305_seal failed" string m6s56 "crypto_chacha20_poly1305_open failed" string m6s57 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m6s58 "crypto_blake2b failed" +string m6s59 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -22038,6 +22052,8 @@ string m7s59 "crypto_aes_128_gcm_open failed" string m7s60 "crypto_chacha20_poly1305_seal failed" string m7s61 "crypto_chacha20_poly1305_open failed" string m7s62 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m7s63 "crypto_blake2b failed" +string m7s64 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -22647,6 +22663,8 @@ string m8s125 "crypto_aes_128_gcm_open failed" string m8s126 "crypto_chacha20_poly1305_seal failed" string m8s127 "crypto_chacha20_poly1305_open failed" string m8s128 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m8s129 "crypto_blake2b failed" +string m8s130 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -23589,155 +23607,159 @@ string m9s127 "byte_buffer_with_capacity" string m9s128 "byte_buffer_take_bytes" string m9s129 "byte_buffer_free" string m9s130 "byte_buffer_new" -string m9s131 "crypto_sign_rsa_pss_sha256_pkcs8" -string m9s132 "crypto_verify_rsa_pss_sha256" -string m9s133 "crypto_verify_rsa_pkcs1_sha384" -string m9s134 "crypto_verify_rsa_pkcs1_sha256" -string m9s135 "crypto_verify_ecdsa_p384_sha384_asn1" -string m9s136 "crypto_verify_ecdsa_p256_sha256_asn1" -string m9s137 "crypto_verify_ed25519" -string m9s138 "crypto_chacha20_poly1305_open" -string m9s139 "crypto_chacha20_poly1305_seal" -string m9s140 "crypto_aes_128_gcm_open" -string m9s141 "crypto_aes_128_gcm_seal" -string m9s142 "crypto_x25519_close" -string m9s143 "crypto_x25519_shared_secret" -string m9s144 "crypto_x25519_public_key" -string m9s145 "crypto_p256_keygen" -string m9s146 "crypto_x25519_keygen" -string m9s147 "secure_random_bytes" -string m9s148 "crypto_constant_time_eq" -string m9s149 "bytes_substring_utf8" -string m9s150 "bytes_to_string_utf8" -string m9s151 "bytes_slice" -string m9s152 "bytes_get" -string m9s153 "bytes_is_empty" -string m9s154 "bytes_len" -string m9s155 "bytes_concat" -string m9s156 "bytes_eq" -string m9s157 "append_file_bytes" -string m9s158 "write_file_bytes" -string m9s159 "append_file" -string m9s160 "write_file" -string m9s161 "os_set_env" -string m9s162 "rename_file" -string m9s163 "file_open_append" -string m9s164 "file_open_write" -string m9s165 "file_open_read" -string m9s166 "from_hex" -string m9s167 "b64_decode" -string m9s168 "read_file_bytes" -string m9s169 "dns_resolve" -string m9s170 "exec_output" -string m9s171 "read_file" -string m9s172 "bytes_from_string_utf8" -string m9s173 "parse_float" -string m9s174 "parse_int" -string m9s175 "os_unset_env" -string m9s176 "os_chdir" -string m9s177 "os_cert_roots_pem" -string m9s178 "os_home_dir" -string m9s179 "os_temp_dir" -string m9s180 "os_getcwd" -string m9s181 "list_dir" -string m9s182 "fs_file_size" -string m9s183 "env_opt" -string m9s184 "env" -string m9s185 "fs_remove_tree" -string m9s186 "fs_remove_dir" -string m9s187 "remove_file" -string m9s188 "mkdir" -string m9s189 "dir_exists" -string m9s190 "file_exists" -string m9s191 "ord" -string m9s192 "exec" -string m9s193 "skip_test" -string m9s194 "print_err" -string m9s195 "print" -string m9s196 "fmt_float" -string m9s197 "pow" -string m9s198 "round" -string m9s199 "ceil" -string m9s200 "floor" -string m9s201 "sqrt" -string m9s202 "format_time" -string m9s203 "clamp" -string m9s204 "bit_shr" -string m9s205 "bit_shl" -string m9s206 "bit_xor" -string m9s207 "bit_or" -string m9s208 "bit_and" -string m9s209 "random_int" -string m9s210 "max" -string m9s211 "min" -string m9s212 "random_string" -string m9s213 "chr" -string m9s214 "bit_not" -string m9s215 "abs" -string m9s216 "tcp_close" -string m9s217 "random_seed" -string m9s218 "sleep" -string m9s219 "exit" -string m9s220 "assert" -string m9s221 "args" -string m9s222 "input" -string m9s223 "float_to_bits" -string m9s224 "float_from_bits" -string m9s225 "random_float" -string m9s226 "time_nanos" -string m9s227 "time" -string m9s228 "AtomicInt" -string m9s229 "Semaphore" -string m9s230 "WaitGroup" -string m9s231 "Mutex" -string m9s232 "List[String]" -string m9s233 "parse_int failed" -string m9s234 "file_open_read failed" -string m9s235 "file_open_write failed" -string m9s236 "file_open_append failed" -string m9s237 "byte_buffer_write failed" -string m9s238 "byte_buffer_write_string_utf8 failed" -string m9s239 "byte_buffer_write_byte failed" -string m9s240 "file_write failed" -string m9s241 "file_write_bytes failed" -string m9s242 "tcp_connect failed" -string m9s243 "tcp_listen failed" -string m9s244 "tcp_accept failed" -string m9s245 "tcp_write failed" -string m9s246 "tcp_write_bytes failed" -string m9s247 "process_spawn failed" -string m9s248 "process_spawn_argv failed" -string m9s249 "process_output_argv failed" -string m9s250 "process_write failed" -string m9s251 "process_write_bytes failed" -string m9s252 "crypto_x25519_keygen failed" -string m9s253 "write_file failed" -string m9s254 "append_file failed" -string m9s255 "write_file_bytes failed" -string m9s256 "append_file_bytes failed" -string m9s257 "read_file failed" -string m9s258 "exec_output failed" -string m9s259 "dns_resolve failed" -string m9s260 "bytes_to_string_utf8 failed" -string m9s261 "bytes_substring_utf8 failed" -string m9s262 "file_read failed" -string m9s263 "tcp_read failed" -string m9s264 "process_read failed" -string m9s265 "process_read_err failed" -string m9s266 "read_file_bytes failed" -string m9s267 "b64_decode failed" -string m9s268 "from_hex failed" -string m9s269 "file_read_bytes failed" -string m9s270 "tcp_read_bytes failed" -string m9s271 "process_read_bytes failed" -string m9s272 "process_read_err_bytes failed" -string m9s273 "crypto_x25519_public_key failed" -string m9s274 "crypto_x25519_shared_secret failed" -string m9s275 "crypto_aes_128_gcm_seal failed" -string m9s276 "crypto_aes_128_gcm_open failed" -string m9s277 "crypto_chacha20_poly1305_seal failed" -string m9s278 "crypto_chacha20_poly1305_open failed" -string m9s279 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m9s131 "crypto_argon2id" +string m9s132 "crypto_blake2b" +string m9s133 "crypto_sign_rsa_pss_sha256_pkcs8" +string m9s134 "crypto_verify_rsa_pss_sha256" +string m9s135 "crypto_verify_rsa_pkcs1_sha384" +string m9s136 "crypto_verify_rsa_pkcs1_sha256" +string m9s137 "crypto_verify_ecdsa_p384_sha384_asn1" +string m9s138 "crypto_verify_ecdsa_p256_sha256_asn1" +string m9s139 "crypto_verify_ed25519" +string m9s140 "crypto_chacha20_poly1305_open" +string m9s141 "crypto_chacha20_poly1305_seal" +string m9s142 "crypto_aes_128_gcm_open" +string m9s143 "crypto_aes_128_gcm_seal" +string m9s144 "crypto_x25519_close" +string m9s145 "crypto_x25519_shared_secret" +string m9s146 "crypto_x25519_public_key" +string m9s147 "crypto_p256_keygen" +string m9s148 "crypto_x25519_keygen" +string m9s149 "secure_random_bytes" +string m9s150 "crypto_constant_time_eq" +string m9s151 "bytes_substring_utf8" +string m9s152 "bytes_to_string_utf8" +string m9s153 "bytes_slice" +string m9s154 "bytes_get" +string m9s155 "bytes_is_empty" +string m9s156 "bytes_len" +string m9s157 "bytes_concat" +string m9s158 "bytes_eq" +string m9s159 "append_file_bytes" +string m9s160 "write_file_bytes" +string m9s161 "append_file" +string m9s162 "write_file" +string m9s163 "os_set_env" +string m9s164 "rename_file" +string m9s165 "file_open_append" +string m9s166 "file_open_write" +string m9s167 "file_open_read" +string m9s168 "from_hex" +string m9s169 "b64_decode" +string m9s170 "read_file_bytes" +string m9s171 "dns_resolve" +string m9s172 "exec_output" +string m9s173 "read_file" +string m9s174 "bytes_from_string_utf8" +string m9s175 "parse_float" +string m9s176 "parse_int" +string m9s177 "os_unset_env" +string m9s178 "os_chdir" +string m9s179 "os_cert_roots_pem" +string m9s180 "os_home_dir" +string m9s181 "os_temp_dir" +string m9s182 "os_getcwd" +string m9s183 "list_dir" +string m9s184 "fs_file_size" +string m9s185 "env_opt" +string m9s186 "env" +string m9s187 "fs_remove_tree" +string m9s188 "fs_remove_dir" +string m9s189 "remove_file" +string m9s190 "mkdir" +string m9s191 "dir_exists" +string m9s192 "file_exists" +string m9s193 "ord" +string m9s194 "exec" +string m9s195 "skip_test" +string m9s196 "print_err" +string m9s197 "print" +string m9s198 "fmt_float" +string m9s199 "pow" +string m9s200 "round" +string m9s201 "ceil" +string m9s202 "floor" +string m9s203 "sqrt" +string m9s204 "format_time" +string m9s205 "clamp" +string m9s206 "bit_shr" +string m9s207 "bit_shl" +string m9s208 "bit_xor" +string m9s209 "bit_or" +string m9s210 "bit_and" +string m9s211 "random_int" +string m9s212 "max" +string m9s213 "min" +string m9s214 "random_string" +string m9s215 "chr" +string m9s216 "bit_not" +string m9s217 "abs" +string m9s218 "tcp_close" +string m9s219 "random_seed" +string m9s220 "sleep" +string m9s221 "exit" +string m9s222 "assert" +string m9s223 "args" +string m9s224 "input" +string m9s225 "float_to_bits" +string m9s226 "float_from_bits" +string m9s227 "random_float" +string m9s228 "time_nanos" +string m9s229 "time" +string m9s230 "AtomicInt" +string m9s231 "Semaphore" +string m9s232 "WaitGroup" +string m9s233 "Mutex" +string m9s234 "List[String]" +string m9s235 "parse_int failed" +string m9s236 "file_open_read failed" +string m9s237 "file_open_write failed" +string m9s238 "file_open_append failed" +string m9s239 "byte_buffer_write failed" +string m9s240 "byte_buffer_write_string_utf8 failed" +string m9s241 "byte_buffer_write_byte failed" +string m9s242 "file_write failed" +string m9s243 "file_write_bytes failed" +string m9s244 "tcp_connect failed" +string m9s245 "tcp_listen failed" +string m9s246 "tcp_accept failed" +string m9s247 "tcp_write failed" +string m9s248 "tcp_write_bytes failed" +string m9s249 "process_spawn failed" +string m9s250 "process_spawn_argv failed" +string m9s251 "process_output_argv failed" +string m9s252 "process_write failed" +string m9s253 "process_write_bytes failed" +string m9s254 "crypto_x25519_keygen failed" +string m9s255 "write_file failed" +string m9s256 "append_file failed" +string m9s257 "write_file_bytes failed" +string m9s258 "append_file_bytes failed" +string m9s259 "read_file failed" +string m9s260 "exec_output failed" +string m9s261 "dns_resolve failed" +string m9s262 "bytes_to_string_utf8 failed" +string m9s263 "bytes_substring_utf8 failed" +string m9s264 "file_read failed" +string m9s265 "tcp_read failed" +string m9s266 "process_read failed" +string m9s267 "process_read_err failed" +string m9s268 "read_file_bytes failed" +string m9s269 "b64_decode failed" +string m9s270 "from_hex failed" +string m9s271 "file_read_bytes failed" +string m9s272 "tcp_read_bytes failed" +string m9s273 "process_read_bytes failed" +string m9s274 "process_read_err_bytes failed" +string m9s275 "crypto_x25519_public_key failed" +string m9s276 "crypto_x25519_shared_secret failed" +string m9s277 "crypto_aes_128_gcm_seal failed" +string m9s278 "crypto_aes_128_gcm_open failed" +string m9s279 "crypto_chacha20_poly1305_seal failed" +string m9s280 "crypto_chacha20_poly1305_open failed" +string m9s281 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m9s282 "crypto_blake2b failed" +string m9s283 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -23897,7 +23919,7 @@ call 22 pith_cstring_release void 1 20 store tid_err 21 load 23 tid_string call 24 checker_type_intern_intern_list_type int 1 23 -strref 25 m9s232 +strref 25 m9s234 call 26 types_lookup_type_id int 1 25 call 27 pith_cstring_release void 1 25 store list_string 26 @@ -23940,21 +23962,21 @@ call 57 pith_list_new_default list 0 load 58 types_TID_INT call 59 checker_builtins_create_function_type int 2 57 58 store void_to_int 59 -strref 60 m9s227 +strref 60 m9s229 load 61 void_to_int call 62 checker_builtins_define_builtin_function void 2 60 61 call 63 pith_cstring_release void 1 60 -strref 64 m9s226 +strref 64 m9s228 load 65 void_to_int call 66 checker_builtins_define_builtin_function void 2 64 65 call 67 pith_cstring_release void 1 64 -strref 68 m9s225 +strref 68 m9s227 call 69 pith_list_new_default list 0 load 70 types_TID_FLOAT call 71 checker_builtins_create_function_type int 2 69 70 call 72 checker_builtins_define_builtin_function void 2 68 71 call 73 pith_cstring_release void 1 68 -strref 74 m9s224 +strref 74 m9s226 call 75 pith_list_new_default list 0 load 76 types_TID_INT call 77 pith_list_push_value void 2 75 76 @@ -23962,7 +23984,7 @@ load 78 types_TID_FLOAT call 79 checker_builtins_create_function_type int 2 75 78 call 80 checker_builtins_define_builtin_function void 2 74 79 call 81 pith_cstring_release void 1 74 -strref 82 m9s223 +strref 82 m9s225 call 83 pith_list_new_default list 0 load 84 types_TID_FLOAT call 85 pith_list_push_value void 2 83 84 @@ -23970,19 +23992,19 @@ load 86 types_TID_INT call 87 checker_builtins_create_function_type int 2 83 86 call 88 checker_builtins_define_builtin_function void 2 82 87 call 89 pith_cstring_release void 1 82 -strref 90 m9s222 +strref 90 m9s224 call 91 pith_list_new_default list 0 load 92 types_TID_STRING call 93 checker_builtins_create_function_type int 2 91 92 call 94 checker_builtins_define_builtin_function void 2 90 93 call 95 pith_cstring_release void 1 90 -strref 96 m9s221 +strref 96 m9s223 call 97 pith_list_new_default list 0 load 98 list_string call 99 checker_builtins_create_function_type int 2 97 98 call 100 checker_builtins_define_builtin_function void 2 96 99 call 101 pith_cstring_release void 1 96 -strref 102 m9s220 +strref 102 m9s222 call 103 pith_list_new_default list 0 load 104 types_TID_BOOL call 105 pith_list_push_value void 2 103 104 @@ -23996,19 +24018,19 @@ call 112 pith_list_push_value void 2 110 111 load 113 types_TID_VOID call 114 checker_builtins_create_function_type int 2 110 113 store int_to_void 114 -strref 115 m9s219 +strref 115 m9s221 load 116 int_to_void call 117 checker_builtins_define_builtin_function void 2 115 116 call 118 pith_cstring_release void 1 115 -strref 119 m9s218 +strref 119 m9s220 load 120 int_to_void call 121 checker_builtins_define_builtin_function void 2 119 120 call 122 pith_cstring_release void 1 119 -strref 123 m9s217 +strref 123 m9s219 load 124 int_to_void call 125 checker_builtins_define_builtin_function void 2 123 124 call 126 pith_cstring_release void 1 123 -strref 127 m9s216 +strref 127 m9s218 load 128 int_to_void call 129 checker_builtins_define_builtin_function void 2 127 128 call 130 pith_cstring_release void 1 127 @@ -24018,11 +24040,11 @@ call 133 pith_list_push_value void 2 131 132 load 134 types_TID_INT call 135 checker_builtins_create_function_type int 2 131 134 store int_to_int 135 -strref 136 m9s215 +strref 136 m9s217 load 137 int_to_int call 138 checker_builtins_define_builtin_function void 2 136 137 call 139 pith_cstring_release void 1 136 -strref 140 m9s214 +strref 140 m9s216 load 141 int_to_int call 142 checker_builtins_define_builtin_function void 2 140 141 call 143 pith_cstring_release void 1 140 @@ -24032,11 +24054,11 @@ call 146 pith_list_push_value void 2 144 145 load 147 types_TID_STRING call 148 checker_builtins_create_function_type int 2 144 147 store int_to_str 148 -strref 149 m9s213 +strref 149 m9s215 load 150 int_to_str call 151 checker_builtins_define_builtin_function void 2 149 150 call 152 pith_cstring_release void 1 149 -strref 153 m9s212 +strref 153 m9s214 load 154 int_to_str call 155 checker_builtins_define_builtin_function void 2 153 154 call 156 pith_cstring_release void 1 153 @@ -24048,35 +24070,35 @@ call 161 pith_list_push_value void 2 157 160 load 162 types_TID_INT call 163 checker_builtins_create_function_type int 2 157 162 store two_int_to_int 163 -strref 164 m9s211 +strref 164 m9s213 load 165 two_int_to_int call 166 checker_builtins_define_builtin_function void 2 164 165 call 167 pith_cstring_release void 1 164 -strref 168 m9s210 +strref 168 m9s212 load 169 two_int_to_int call 170 checker_builtins_define_builtin_function void 2 168 169 call 171 pith_cstring_release void 1 168 -strref 172 m9s209 +strref 172 m9s211 load 173 two_int_to_int call 174 checker_builtins_define_builtin_function void 2 172 173 call 175 pith_cstring_release void 1 172 -strref 176 m9s208 +strref 176 m9s210 load 177 two_int_to_int call 178 checker_builtins_define_builtin_function void 2 176 177 call 179 pith_cstring_release void 1 176 -strref 180 m9s207 +strref 180 m9s209 load 181 two_int_to_int call 182 checker_builtins_define_builtin_function void 2 180 181 call 183 pith_cstring_release void 1 180 -strref 184 m9s206 +strref 184 m9s208 load 185 two_int_to_int call 186 checker_builtins_define_builtin_function void 2 184 185 call 187 pith_cstring_release void 1 184 -strref 188 m9s205 +strref 188 m9s207 load 189 two_int_to_int call 190 checker_builtins_define_builtin_function void 2 188 189 call 191 pith_cstring_release void 1 188 -strref 192 m9s204 +strref 192 m9s206 load 193 two_int_to_int call 194 checker_builtins_define_builtin_function void 2 192 193 call 195 pith_cstring_release void 1 192 @@ -24152,7 +24174,7 @@ load 264 types_TID_UINT64 call 265 checker_builtins_create_function_type int 2 261 264 call 266 checker_builtins_define_builtin_function void 2 260 265 call 267 pith_cstring_release void 1 260 -strref 268 m9s203 +strref 268 m9s205 call 269 pith_list_new_default list 0 load 270 types_TID_INT call 271 pith_list_push_value void 2 269 270 @@ -24172,7 +24194,7 @@ call 284 pith_list_push_value void 2 280 283 load 285 types_TID_STRING call 286 checker_builtins_create_function_type int 2 280 285 store int_str_to_str 286 -strref 287 m9s202 +strref 287 m9s204 load 288 int_str_to_str call 289 checker_builtins_define_builtin_function void 2 287 288 call 290 pith_cstring_release void 1 287 @@ -24182,23 +24204,23 @@ call 293 pith_list_push_value void 2 291 292 load 294 types_TID_FLOAT call 295 checker_builtins_create_function_type int 2 291 294 store float_to_float 295 -strref 296 m9s201 +strref 296 m9s203 load 297 float_to_float call 298 checker_builtins_define_builtin_function void 2 296 297 call 299 pith_cstring_release void 1 296 -strref 300 m9s200 +strref 300 m9s202 load 301 float_to_float call 302 checker_builtins_define_builtin_function void 2 300 301 call 303 pith_cstring_release void 1 300 -strref 304 m9s199 +strref 304 m9s201 load 305 float_to_float call 306 checker_builtins_define_builtin_function void 2 304 305 call 307 pith_cstring_release void 1 304 -strref 308 m9s198 +strref 308 m9s200 load 309 float_to_float call 310 checker_builtins_define_builtin_function void 2 308 309 call 311 pith_cstring_release void 1 308 -strref 312 m9s197 +strref 312 m9s199 call 313 pith_list_new_default list 0 load 314 types_TID_FLOAT call 315 pith_list_push_value void 2 313 314 @@ -24208,7 +24230,7 @@ load 318 types_TID_FLOAT call 319 checker_builtins_create_function_type int 2 313 318 call 320 checker_builtins_define_builtin_function void 2 312 319 call 321 pith_cstring_release void 1 312 -strref 322 m9s196 +strref 322 m9s198 call 323 pith_list_new_default list 0 load 324 types_TID_FLOAT call 325 pith_list_push_value void 2 323 324 @@ -24224,15 +24246,15 @@ call 334 pith_list_push_value void 2 332 333 load 335 types_TID_VOID call 336 checker_builtins_create_function_type int 2 332 335 store str_to_void 336 -strref 337 m9s195 +strref 337 m9s197 load 338 str_to_void call 339 checker_builtins_define_builtin_function void 2 337 338 call 340 pith_cstring_release void 1 337 -strref 341 m9s194 +strref 341 m9s196 load 342 str_to_void call 343 checker_builtins_define_builtin_function void 2 341 342 call 344 pith_cstring_release void 1 341 -strref 345 m9s193 +strref 345 m9s195 load 346 str_to_void call 347 checker_builtins_define_builtin_function void 2 345 346 call 348 pith_cstring_release void 1 345 @@ -24242,11 +24264,11 @@ call 351 pith_list_push_value void 2 349 350 load 352 types_TID_INT call 353 checker_builtins_create_function_type int 2 349 352 store str_to_int 353 -strref 354 m9s192 +strref 354 m9s194 load 355 str_to_int call 356 checker_builtins_define_builtin_function void 2 354 355 call 357 pith_cstring_release void 1 354 -strref 358 m9s191 +strref 358 m9s193 load 359 str_to_int call 360 checker_builtins_define_builtin_function void 2 358 359 call 361 pith_cstring_release void 1 358 @@ -24256,31 +24278,31 @@ call 364 pith_list_push_value void 2 362 363 load 365 types_TID_BOOL call 366 checker_builtins_create_function_type int 2 362 365 store str_to_bool 366 -strref 367 m9s190 +strref 367 m9s192 load 368 str_to_bool call 369 checker_builtins_define_builtin_function void 2 367 368 call 370 pith_cstring_release void 1 367 -strref 371 m9s189 +strref 371 m9s191 load 372 str_to_bool call 373 checker_builtins_define_builtin_function void 2 371 372 call 374 pith_cstring_release void 1 371 -strref 375 m9s188 +strref 375 m9s190 load 376 str_to_bool call 377 checker_builtins_define_builtin_function void 2 375 376 call 378 pith_cstring_release void 1 375 -strref 379 m9s187 +strref 379 m9s189 load 380 str_to_bool call 381 checker_builtins_define_builtin_function void 2 379 380 call 382 pith_cstring_release void 1 379 -strref 383 m9s186 +strref 383 m9s188 load 384 str_to_bool call 385 checker_builtins_define_builtin_function void 2 383 384 call 386 pith_cstring_release void 1 383 -strref 387 m9s185 +strref 387 m9s187 load 388 str_to_bool call 389 checker_builtins_define_builtin_function void 2 387 388 call 390 pith_cstring_release void 1 387 -strref 391 m9s184 +strref 391 m9s186 call 392 pith_list_new_default list 0 load 393 types_TID_STRING call 394 pith_list_push_value void 2 392 393 @@ -24288,7 +24310,7 @@ load 395 tid_string call 396 checker_builtins_create_function_type int 2 392 395 call 397 checker_builtins_define_builtin_function void 2 391 396 call 398 pith_cstring_release void 1 391 -strref 399 m9s183 +strref 399 m9s185 call 400 pith_list_new_default list 0 load 401 types_TID_STRING call 402 pith_list_push_value void 2 400 401 @@ -24296,11 +24318,11 @@ load 403 opt_string call 404 checker_builtins_create_function_type int 2 400 403 call 405 checker_builtins_define_builtin_function void 2 399 404 call 406 pith_cstring_release void 1 399 -strref 407 m9s182 +strref 407 m9s184 load 408 str_to_int call 409 checker_builtins_define_builtin_function void 2 407 408 call 410 pith_cstring_release void 1 407 -strref 411 m9s181 +strref 411 m9s183 call 412 pith_list_new_default list 0 load 413 types_TID_STRING call 414 pith_list_push_value void 2 412 413 @@ -24308,39 +24330,39 @@ load 415 list_string call 416 checker_builtins_create_function_type int 2 412 415 call 417 checker_builtins_define_builtin_function void 2 411 416 call 418 pith_cstring_release void 1 411 -strref 419 m9s180 +strref 419 m9s182 call 420 pith_list_new_default list 0 load 421 tid_string call 422 checker_builtins_create_function_type int 2 420 421 call 423 checker_builtins_define_builtin_function void 2 419 422 call 424 pith_cstring_release void 1 419 -strref 425 m9s179 +strref 425 m9s181 call 426 pith_list_new_default list 0 load 427 tid_string call 428 checker_builtins_create_function_type int 2 426 427 call 429 checker_builtins_define_builtin_function void 2 425 428 call 430 pith_cstring_release void 1 425 -strref 431 m9s178 +strref 431 m9s180 call 432 pith_list_new_default list 0 load 433 tid_string call 434 checker_builtins_create_function_type int 2 432 433 call 435 checker_builtins_define_builtin_function void 2 431 434 call 436 pith_cstring_release void 1 431 -strref 437 m9s177 +strref 437 m9s179 call 438 pith_list_new_default list 0 load 439 tid_string call 440 checker_builtins_create_function_type int 2 438 439 call 441 checker_builtins_define_builtin_function void 2 437 440 call 442 pith_cstring_release void 1 437 -strref 443 m9s176 +strref 443 m9s178 load 444 str_to_bool call 445 checker_builtins_define_builtin_function void 2 443 444 call 446 pith_cstring_release void 1 443 -strref 447 m9s175 +strref 447 m9s177 load 448 str_to_bool call 449 checker_builtins_define_builtin_function void 2 447 448 call 450 pith_cstring_release void 1 447 -strref 451 m9s174 +strref 451 m9s176 call 452 pith_list_new_default list 0 load 453 types_TID_STRING call 454 pith_list_push_value void 2 452 453 @@ -24348,7 +24370,7 @@ load 455 int_result call 456 checker_builtins_create_function_type int 2 452 455 call 457 checker_builtins_define_builtin_function void 2 451 456 call 458 pith_cstring_release void 1 451 -strref 459 m9s173 +strref 459 m9s175 call 460 pith_list_new_default list 0 load 461 types_TID_STRING call 462 pith_list_push_value void 2 460 461 @@ -24356,7 +24378,7 @@ load 463 float_result call 464 checker_builtins_create_function_type int 2 460 463 call 465 checker_builtins_define_builtin_function void 2 459 464 call 466 pith_cstring_release void 1 459 -strref 467 m9s172 +strref 467 m9s174 call 468 pith_list_new_default list 0 load 469 types_TID_STRING call 470 pith_list_push_value void 2 468 469 @@ -24370,19 +24392,19 @@ call 477 pith_list_push_value void 2 475 476 load 478 str_result call 479 checker_builtins_create_function_type int 2 475 478 store str_to_str_result 479 -strref 480 m9s171 +strref 480 m9s173 load 481 str_to_str_result call 482 checker_builtins_define_builtin_function void 2 480 481 call 483 pith_cstring_release void 1 480 -strref 484 m9s170 +strref 484 m9s172 load 485 str_to_str_result call 486 checker_builtins_define_builtin_function void 2 484 485 call 487 pith_cstring_release void 1 484 -strref 488 m9s169 +strref 488 m9s171 load 489 str_to_str_result call 490 checker_builtins_define_builtin_function void 2 488 489 call 491 pith_cstring_release void 1 488 -strref 492 m9s168 +strref 492 m9s170 call 493 pith_list_new_default list 0 load 494 types_TID_STRING call 495 pith_list_push_value void 2 493 494 @@ -24390,7 +24412,7 @@ load 496 bytes_result call 497 checker_builtins_create_function_type int 2 493 496 call 498 checker_builtins_define_builtin_function void 2 492 497 call 499 pith_cstring_release void 1 492 -strref 500 m9s167 +strref 500 m9s169 call 501 pith_list_new_default list 0 load 502 types_TID_STRING call 503 pith_list_push_value void 2 501 502 @@ -24398,7 +24420,7 @@ load 504 bytes_result call 505 checker_builtins_create_function_type int 2 501 504 call 506 checker_builtins_define_builtin_function void 2 500 505 call 507 pith_cstring_release void 1 500 -strref 508 m9s166 +strref 508 m9s168 call 509 pith_list_new_default list 0 load 510 types_TID_STRING call 511 pith_list_push_value void 2 509 510 @@ -24406,7 +24428,7 @@ load 512 bytes_result call 513 checker_builtins_create_function_type int 2 509 512 call 514 checker_builtins_define_builtin_function void 2 508 513 call 515 pith_cstring_release void 1 508 -strref 516 m9s165 +strref 516 m9s167 call 517 pith_list_new_default list 0 load 518 types_TID_STRING call 519 pith_list_push_value void 2 517 518 @@ -24414,7 +24436,7 @@ load 520 int_result call 521 checker_builtins_create_function_type int 2 517 520 call 522 checker_builtins_define_builtin_function void 2 516 521 call 523 pith_cstring_release void 1 516 -strref 524 m9s164 +strref 524 m9s166 call 525 pith_list_new_default list 0 load 526 types_TID_STRING call 527 pith_list_push_value void 2 525 526 @@ -24422,7 +24444,7 @@ load 528 int_result call 529 checker_builtins_create_function_type int 2 525 528 call 530 checker_builtins_define_builtin_function void 2 524 529 call 531 pith_cstring_release void 1 524 -strref 532 m9s163 +strref 532 m9s165 call 533 pith_list_new_default list 0 load 534 types_TID_STRING call 535 pith_list_push_value void 2 533 534 @@ -24430,7 +24452,7 @@ load 536 int_result call 537 checker_builtins_create_function_type int 2 533 536 call 538 checker_builtins_define_builtin_function void 2 532 537 call 539 pith_cstring_release void 1 532 -strref 540 m9s162 +strref 540 m9s164 call 541 pith_list_new_default list 0 load 542 types_TID_STRING call 543 pith_list_push_value void 2 541 542 @@ -24440,7 +24462,7 @@ load 546 types_TID_BOOL call 547 checker_builtins_create_function_type int 2 541 546 call 548 checker_builtins_define_builtin_function void 2 540 547 call 549 pith_cstring_release void 1 540 -strref 550 m9s161 +strref 550 m9s163 call 551 pith_list_new_default list 0 load 552 types_TID_STRING call 553 pith_list_push_value void 2 551 552 @@ -24458,15 +24480,15 @@ call 564 pith_list_push_value void 2 560 563 load 565 bool_result call 566 checker_builtins_create_function_type int 2 560 565 store two_str_to_bool_result 566 -strref 567 m9s160 +strref 567 m9s162 load 568 two_str_to_bool_result call 569 checker_builtins_define_builtin_function void 2 567 568 call 570 pith_cstring_release void 1 567 -strref 571 m9s159 +strref 571 m9s161 load 572 two_str_to_bool_result call 573 checker_builtins_define_builtin_function void 2 571 572 call 574 pith_cstring_release void 1 571 -strref 575 m9s158 +strref 575 m9s160 call 576 pith_list_new_default list 0 load 577 types_TID_STRING call 578 pith_list_push_value void 2 576 577 @@ -24476,7 +24498,7 @@ load 581 bool_result call 582 checker_builtins_create_function_type int 2 576 581 call 583 checker_builtins_define_builtin_function void 2 575 582 call 584 pith_cstring_release void 1 575 -strref 585 m9s157 +strref 585 m9s159 call 586 pith_list_new_default list 0 load 587 types_TID_STRING call 588 pith_list_push_value void 2 586 587 @@ -24486,7 +24508,7 @@ load 591 bool_result call 592 checker_builtins_create_function_type int 2 586 591 call 593 checker_builtins_define_builtin_function void 2 585 592 call 594 pith_cstring_release void 1 585 -strref 595 m9s156 +strref 595 m9s158 call 596 pith_list_new_default list 0 load 597 tid_bytes call 598 pith_list_push_value void 2 596 597 @@ -24496,7 +24518,7 @@ load 601 types_TID_BOOL call 602 checker_builtins_create_function_type int 2 596 601 call 603 checker_builtins_define_builtin_function void 2 595 602 call 604 pith_cstring_release void 1 595 -strref 605 m9s155 +strref 605 m9s157 call 606 pith_list_new_default list 0 load 607 tid_bytes call 608 pith_list_push_value void 2 606 607 @@ -24506,7 +24528,7 @@ load 611 tid_bytes call 612 checker_builtins_create_function_type int 2 606 611 call 613 checker_builtins_define_builtin_function void 2 605 612 call 614 pith_cstring_release void 1 605 -strref 615 m9s154 +strref 615 m9s156 call 616 pith_list_new_default list 0 load 617 tid_bytes call 618 pith_list_push_value void 2 616 617 @@ -24514,7 +24536,7 @@ load 619 types_TID_INT call 620 checker_builtins_create_function_type int 2 616 619 call 621 checker_builtins_define_builtin_function void 2 615 620 call 622 pith_cstring_release void 1 615 -strref 623 m9s153 +strref 623 m9s155 call 624 pith_list_new_default list 0 load 625 tid_bytes call 626 pith_list_push_value void 2 624 625 @@ -24522,7 +24544,7 @@ load 627 types_TID_BOOL call 628 checker_builtins_create_function_type int 2 624 627 call 629 checker_builtins_define_builtin_function void 2 623 628 call 630 pith_cstring_release void 1 623 -strref 631 m9s152 +strref 631 m9s154 call 632 pith_list_new_default list 0 load 633 tid_bytes call 634 pith_list_push_value void 2 632 633 @@ -24532,7 +24554,7 @@ load 637 types_TID_INT call 638 checker_builtins_create_function_type int 2 632 637 call 639 checker_builtins_define_builtin_function void 2 631 638 call 640 pith_cstring_release void 1 631 -strref 641 m9s151 +strref 641 m9s153 call 642 pith_list_new_default list 0 load 643 tid_bytes call 644 pith_list_push_value void 2 642 643 @@ -24544,7 +24566,7 @@ load 649 tid_bytes call 650 checker_builtins_create_function_type int 2 642 649 call 651 checker_builtins_define_builtin_function void 2 641 650 call 652 pith_cstring_release void 1 641 -strref 653 m9s150 +strref 653 m9s152 call 654 pith_list_new_default list 0 load 655 tid_bytes call 656 pith_list_push_value void 2 654 655 @@ -24552,7 +24574,7 @@ load 657 str_result call 658 checker_builtins_create_function_type int 2 654 657 call 659 checker_builtins_define_builtin_function void 2 653 658 call 660 pith_cstring_release void 1 653 -strref 661 m9s149 +strref 661 m9s151 call 662 pith_list_new_default list 0 load 663 tid_bytes call 664 pith_list_push_value void 2 662 663 @@ -24564,7 +24586,7 @@ load 669 str_result call 670 checker_builtins_create_function_type int 2 662 669 call 671 checker_builtins_define_builtin_function void 2 661 670 call 672 pith_cstring_release void 1 661 -strref 673 m9s148 +strref 673 m9s150 call 674 pith_list_new_default list 0 load 675 tid_bytes call 676 pith_list_push_value void 2 674 675 @@ -24574,7 +24596,7 @@ load 679 types_TID_BOOL call 680 checker_builtins_create_function_type int 2 674 679 call 681 checker_builtins_define_builtin_function void 2 673 680 call 682 pith_cstring_release void 1 673 -strref 683 m9s147 +strref 683 m9s149 call 684 pith_list_new_default list 0 load 685 types_TID_INT call 686 pith_list_push_value void 2 684 685 @@ -24582,19 +24604,19 @@ load 687 tid_bytes call 688 checker_builtins_create_function_type int 2 684 687 call 689 checker_builtins_define_builtin_function void 2 683 688 call 690 pith_cstring_release void 1 683 -strref 691 m9s146 +strref 691 m9s148 call 692 pith_list_new_default list 0 load 693 int_result call 694 checker_builtins_create_function_type int 2 692 693 call 695 checker_builtins_define_builtin_function void 2 691 694 call 696 pith_cstring_release void 1 691 -strref 697 m9s145 +strref 697 m9s147 call 698 pith_list_new_default list 0 load 699 int_result call 700 checker_builtins_create_function_type int 2 698 699 call 701 checker_builtins_define_builtin_function void 2 697 700 call 702 pith_cstring_release void 1 697 -strref 703 m9s144 +strref 703 m9s146 call 704 pith_list_new_default list 0 load 705 types_TID_INT call 706 pith_list_push_value void 2 704 705 @@ -24602,7 +24624,7 @@ load 707 bytes_result call 708 checker_builtins_create_function_type int 2 704 707 call 709 checker_builtins_define_builtin_function void 2 703 708 call 710 pith_cstring_release void 1 703 -strref 711 m9s143 +strref 711 m9s145 call 712 pith_list_new_default list 0 load 713 types_TID_INT call 714 pith_list_push_value void 2 712 713 @@ -24612,7 +24634,7 @@ load 717 bytes_result call 718 checker_builtins_create_function_type int 2 712 717 call 719 checker_builtins_define_builtin_function void 2 711 718 call 720 pith_cstring_release void 1 711 -strref 721 m9s142 +strref 721 m9s144 call 722 pith_list_new_default list 0 load 723 types_TID_INT call 724 pith_list_push_value void 2 722 723 @@ -24620,7 +24642,7 @@ load 725 types_TID_VOID call 726 checker_builtins_create_function_type int 2 722 725 call 727 checker_builtins_define_builtin_function void 2 721 726 call 728 pith_cstring_release void 1 721 -strref 729 m9s141 +strref 729 m9s143 call 730 pith_list_new_default list 0 load 731 tid_bytes call 732 pith_list_push_value void 2 730 731 @@ -24634,7 +24656,7 @@ load 739 bytes_result call 740 checker_builtins_create_function_type int 2 730 739 call 741 checker_builtins_define_builtin_function void 2 729 740 call 742 pith_cstring_release void 1 729 -strref 743 m9s140 +strref 743 m9s142 call 744 pith_list_new_default list 0 load 745 tid_bytes call 746 pith_list_push_value void 2 744 745 @@ -24648,7 +24670,7 @@ load 753 bytes_result call 754 checker_builtins_create_function_type int 2 744 753 call 755 checker_builtins_define_builtin_function void 2 743 754 call 756 pith_cstring_release void 1 743 -strref 757 m9s139 +strref 757 m9s141 call 758 pith_list_new_default list 0 load 759 tid_bytes call 760 pith_list_push_value void 2 758 759 @@ -24662,7 +24684,7 @@ load 767 bytes_result call 768 checker_builtins_create_function_type int 2 758 767 call 769 checker_builtins_define_builtin_function void 2 757 768 call 770 pith_cstring_release void 1 757 -strref 771 m9s138 +strref 771 m9s140 call 772 pith_list_new_default list 0 load 773 tid_bytes call 774 pith_list_push_value void 2 772 773 @@ -24676,7 +24698,7 @@ load 781 bytes_result call 782 checker_builtins_create_function_type int 2 772 781 call 783 checker_builtins_define_builtin_function void 2 771 782 call 784 pith_cstring_release void 1 771 -strref 785 m9s137 +strref 785 m9s139 call 786 pith_list_new_default list 0 load 787 tid_bytes call 788 pith_list_push_value void 2 786 787 @@ -24688,7 +24710,7 @@ load 793 types_TID_BOOL call 794 checker_builtins_create_function_type int 2 786 793 call 795 checker_builtins_define_builtin_function void 2 785 794 call 796 pith_cstring_release void 1 785 -strref 797 m9s136 +strref 797 m9s138 call 798 pith_list_new_default list 0 load 799 tid_bytes call 800 pith_list_push_value void 2 798 799 @@ -24700,7 +24722,7 @@ load 805 types_TID_BOOL call 806 checker_builtins_create_function_type int 2 798 805 call 807 checker_builtins_define_builtin_function void 2 797 806 call 808 pith_cstring_release void 1 797 -strref 809 m9s135 +strref 809 m9s137 call 810 pith_list_new_default list 0 load 811 tid_bytes call 812 pith_list_push_value void 2 810 811 @@ -24712,7 +24734,7 @@ load 817 types_TID_BOOL call 818 checker_builtins_create_function_type int 2 810 817 call 819 checker_builtins_define_builtin_function void 2 809 818 call 820 pith_cstring_release void 1 809 -strref 821 m9s134 +strref 821 m9s136 call 822 pith_list_new_default list 0 load 823 tid_bytes call 824 pith_list_push_value void 2 822 823 @@ -24724,7 +24746,7 @@ load 829 types_TID_BOOL call 830 checker_builtins_create_function_type int 2 822 829 call 831 checker_builtins_define_builtin_function void 2 821 830 call 832 pith_cstring_release void 1 821 -strref 833 m9s133 +strref 833 m9s135 call 834 pith_list_new_default list 0 load 835 tid_bytes call 836 pith_list_push_value void 2 834 835 @@ -24736,7 +24758,7 @@ load 841 types_TID_BOOL call 842 checker_builtins_create_function_type int 2 834 841 call 843 checker_builtins_define_builtin_function void 2 833 842 call 844 pith_cstring_release void 1 833 -strref 845 m9s132 +strref 845 m9s134 call 846 pith_list_new_default list 0 load 847 tid_bytes call 848 pith_list_push_value void 2 846 847 @@ -24748,7 +24770,7 @@ load 853 types_TID_BOOL call 854 checker_builtins_create_function_type int 2 846 853 call 855 checker_builtins_define_builtin_function void 2 845 854 call 856 pith_cstring_release void 1 845 -strref 857 m9s131 +strref 857 m9s133 call 858 pith_list_new_default list 0 load 859 tid_bytes call 860 pith_list_push_value void 2 858 859 @@ -24758,1621 +24780,1679 @@ load 863 bytes_result call 864 checker_builtins_create_function_type int 2 858 863 call 865 checker_builtins_define_builtin_function void 2 857 864 call 866 pith_cstring_release void 1 857 -strref 867 m9s130 +strref 867 m9s132 call 868 pith_list_new_default list 0 -load 869 types_TID_INT -call 870 checker_builtins_create_function_type int 2 868 869 -call 871 checker_builtins_define_builtin_function void 2 867 870 -call 872 pith_cstring_release void 1 867 -strref 873 m9s129 -call 874 pith_list_new_default list 0 -load 875 types_TID_INT -call 876 pith_list_push_value void 2 874 875 -load 877 types_TID_VOID -call 878 checker_builtins_create_function_type int 2 874 877 -call 879 checker_builtins_define_builtin_function void 2 873 878 -call 880 pith_cstring_release void 1 873 -strref 881 m9s128 -call 882 pith_list_new_default list 0 -load 883 types_TID_INT -call 884 pith_list_push_value void 2 882 883 -load 885 tid_bytes -call 886 checker_builtins_create_function_type int 2 882 885 -call 887 checker_builtins_define_builtin_function void 2 881 886 -call 888 pith_cstring_release void 1 881 -strref 889 m9s127 -call 890 pith_list_new_default list 0 +load 869 tid_bytes +call 870 pith_list_push_value void 2 868 869 +load 871 tid_bytes +call 872 pith_list_push_value void 2 868 871 +load 873 types_TID_INT +call 874 pith_list_push_value void 2 868 873 +load 875 bytes_result +call 876 checker_builtins_create_function_type int 2 868 875 +call 877 checker_builtins_define_builtin_function void 2 867 876 +call 878 pith_cstring_release void 1 867 +strref 879 m9s131 +call 880 pith_list_new_default list 0 +load 881 tid_bytes +call 882 pith_list_push_value void 2 880 881 +load 883 tid_bytes +call 884 pith_list_push_value void 2 880 883 +load 885 types_TID_INT +call 886 pith_list_push_value void 2 880 885 +load 887 types_TID_INT +call 888 pith_list_push_value void 2 880 887 +load 889 types_TID_INT +call 890 pith_list_push_value void 2 880 889 load 891 types_TID_INT -call 892 pith_list_push_value void 2 890 891 -load 893 types_TID_INT -call 894 checker_builtins_create_function_type int 2 890 893 -call 895 checker_builtins_define_builtin_function void 2 889 894 -call 896 pith_cstring_release void 1 889 -strref 897 m9s126 +call 892 pith_list_push_value void 2 880 891 +load 893 bytes_result +call 894 checker_builtins_create_function_type int 2 880 893 +call 895 checker_builtins_define_builtin_function void 2 879 894 +call 896 pith_cstring_release void 1 879 +strref 897 m9s130 call 898 pith_list_new_default list 0 load 899 types_TID_INT -call 900 pith_list_push_value void 2 898 899 -load 901 tid_bytes -call 902 pith_list_push_value void 2 898 901 -load 903 int_result -call 904 checker_builtins_create_function_type int 2 898 903 -call 905 checker_builtins_define_builtin_function void 2 897 904 -call 906 pith_cstring_release void 1 897 -strref 907 m9s125 -call 908 pith_list_new_default list 0 -load 909 types_TID_INT -call 910 pith_list_push_value void 2 908 909 -load 911 types_TID_STRING -call 912 pith_list_push_value void 2 908 911 -load 913 int_result -call 914 checker_builtins_create_function_type int 2 908 913 -call 915 checker_builtins_define_builtin_function void 2 907 914 -call 916 pith_cstring_release void 1 907 -strref 917 m9s124 -call 918 pith_list_new_default list 0 -load 919 types_TID_INT -call 920 pith_list_push_value void 2 918 919 +call 900 checker_builtins_create_function_type int 2 898 899 +call 901 checker_builtins_define_builtin_function void 2 897 900 +call 902 pith_cstring_release void 1 897 +strref 903 m9s129 +call 904 pith_list_new_default list 0 +load 905 types_TID_INT +call 906 pith_list_push_value void 2 904 905 +load 907 types_TID_VOID +call 908 checker_builtins_create_function_type int 2 904 907 +call 909 checker_builtins_define_builtin_function void 2 903 908 +call 910 pith_cstring_release void 1 903 +strref 911 m9s128 +call 912 pith_list_new_default list 0 +load 913 types_TID_INT +call 914 pith_list_push_value void 2 912 913 +load 915 tid_bytes +call 916 checker_builtins_create_function_type int 2 912 915 +call 917 checker_builtins_define_builtin_function void 2 911 916 +call 918 pith_cstring_release void 1 911 +strref 919 m9s127 +call 920 pith_list_new_default list 0 load 921 types_TID_INT -call 922 pith_list_push_value void 2 918 921 -load 923 int_result -call 924 checker_builtins_create_function_type int 2 918 923 -call 925 checker_builtins_define_builtin_function void 2 917 924 -call 926 pith_cstring_release void 1 917 -strref 927 m9s123 +call 922 pith_list_push_value void 2 920 921 +load 923 types_TID_INT +call 924 checker_builtins_create_function_type int 2 920 923 +call 925 checker_builtins_define_builtin_function void 2 919 924 +call 926 pith_cstring_release void 1 919 +strref 927 m9s126 call 928 pith_list_new_default list 0 load 929 types_TID_INT call 930 pith_list_push_value void 2 928 929 load 931 tid_bytes -call 932 checker_builtins_create_function_type int 2 928 931 -call 933 checker_builtins_define_builtin_function void 2 927 932 -call 934 pith_cstring_release void 1 927 -strref 935 m9s122 -call 936 pith_list_new_default list 0 -load 937 types_TID_INT -call 938 pith_list_push_value void 2 936 937 +call 932 pith_list_push_value void 2 928 931 +load 933 int_result +call 934 checker_builtins_create_function_type int 2 928 933 +call 935 checker_builtins_define_builtin_function void 2 927 934 +call 936 pith_cstring_release void 1 927 +strref 937 m9s125 +call 938 pith_list_new_default list 0 load 939 types_TID_INT -call 940 checker_builtins_create_function_type int 2 936 939 -call 941 checker_builtins_define_builtin_function void 2 935 940 -call 942 pith_cstring_release void 1 935 -strref 943 m9s121 -call 944 pith_list_new_default list 0 -load 945 types_TID_INT -call 946 pith_list_push_value void 2 944 945 -load 947 types_TID_INT -call 948 pith_list_push_value void 2 944 947 +call 940 pith_list_push_value void 2 938 939 +load 941 types_TID_STRING +call 942 pith_list_push_value void 2 938 941 +load 943 int_result +call 944 checker_builtins_create_function_type int 2 938 943 +call 945 checker_builtins_define_builtin_function void 2 937 944 +call 946 pith_cstring_release void 1 937 +strref 947 m9s124 +call 948 pith_list_new_default list 0 load 949 types_TID_INT -call 950 checker_builtins_create_function_type int 2 944 949 -call 951 checker_builtins_define_builtin_function void 2 943 950 -call 952 pith_cstring_release void 1 943 -strref 953 m9s120 -call 954 pith_list_new_default list 0 -load 955 types_TID_INT -call 956 pith_list_push_value void 2 954 955 -load 957 types_TID_INT -call 958 pith_list_push_value void 2 954 957 +call 950 pith_list_push_value void 2 948 949 +load 951 types_TID_INT +call 952 pith_list_push_value void 2 948 951 +load 953 int_result +call 954 checker_builtins_create_function_type int 2 948 953 +call 955 checker_builtins_define_builtin_function void 2 947 954 +call 956 pith_cstring_release void 1 947 +strref 957 m9s123 +call 958 pith_list_new_default list 0 load 959 types_TID_INT -call 960 pith_list_push_value void 2 954 959 -load 961 types_TID_BOOL -call 962 checker_builtins_create_function_type int 2 954 961 -call 963 checker_builtins_define_builtin_function void 2 953 962 -call 964 pith_cstring_release void 1 953 -strref 965 m9s119 +call 960 pith_list_push_value void 2 958 959 +load 961 tid_bytes +call 962 checker_builtins_create_function_type int 2 958 961 +call 963 checker_builtins_define_builtin_function void 2 957 962 +call 964 pith_cstring_release void 1 957 +strref 965 m9s122 call 966 pith_list_new_default list 0 load 967 types_TID_INT call 968 pith_list_push_value void 2 966 967 -load 969 types_TID_VOID +load 969 types_TID_INT call 970 checker_builtins_create_function_type int 2 966 969 call 971 checker_builtins_define_builtin_function void 2 965 970 call 972 pith_cstring_release void 1 965 -strref 973 m9s118 +strref 973 m9s121 call 974 pith_list_new_default list 0 load 975 types_TID_INT call 976 pith_list_push_value void 2 974 975 load 977 types_TID_INT call 978 pith_list_push_value void 2 974 977 -load 979 str_result +load 979 types_TID_INT call 980 checker_builtins_create_function_type int 2 974 979 call 981 checker_builtins_define_builtin_function void 2 973 980 call 982 pith_cstring_release void 1 973 -strref 983 m9s117 +strref 983 m9s120 call 984 pith_list_new_default list 0 load 985 types_TID_INT call 986 pith_list_push_value void 2 984 985 -load 987 types_TID_STRING +load 987 types_TID_INT call 988 pith_list_push_value void 2 984 987 -load 989 int_result -call 990 checker_builtins_create_function_type int 2 984 989 -call 991 checker_builtins_define_builtin_function void 2 983 990 -call 992 pith_cstring_release void 1 983 -strref 993 m9s116 -call 994 pith_list_new_default list 0 -load 995 types_TID_INT -call 996 pith_list_push_value void 2 994 995 +load 989 types_TID_INT +call 990 pith_list_push_value void 2 984 989 +load 991 types_TID_BOOL +call 992 checker_builtins_create_function_type int 2 984 991 +call 993 checker_builtins_define_builtin_function void 2 983 992 +call 994 pith_cstring_release void 1 983 +strref 995 m9s119 +call 996 pith_list_new_default list 0 load 997 types_TID_INT -call 998 pith_list_push_value void 2 994 997 -load 999 bytes_result -call 1000 checker_builtins_create_function_type int 2 994 999 -call 1001 checker_builtins_define_builtin_function void 2 993 1000 -call 1002 pith_cstring_release void 1 993 -strref 1003 m9s115 +call 998 pith_list_push_value void 2 996 997 +load 999 types_TID_VOID +call 1000 checker_builtins_create_function_type int 2 996 999 +call 1001 checker_builtins_define_builtin_function void 2 995 1000 +call 1002 pith_cstring_release void 1 995 +strref 1003 m9s118 call 1004 pith_list_new_default list 0 load 1005 types_TID_INT call 1006 pith_list_push_value void 2 1004 1005 -load 1007 tid_bytes +load 1007 types_TID_INT call 1008 pith_list_push_value void 2 1004 1007 -load 1009 int_result +load 1009 str_result call 1010 checker_builtins_create_function_type int 2 1004 1009 call 1011 checker_builtins_define_builtin_function void 2 1003 1010 call 1012 pith_cstring_release void 1 1003 -strref 1013 m9s114 -load 1014 int_to_void -call 1015 checker_builtins_define_builtin_function void 2 1013 1014 -call 1016 pith_cstring_release void 1 1013 -call 1017 pith_list_new_default list 0 -load 1018 types_TID_STRING -call 1019 pith_list_push_value void 2 1017 1018 -load 1020 types_TID_INT -call 1021 pith_list_push_value void 2 1017 1020 -load 1022 int_result -call 1023 checker_builtins_create_function_type int 2 1017 1022 -store str_int_to_int_result 1023 -strref 1024 m9s113 -load 1025 str_int_to_int_result -call 1026 checker_builtins_define_builtin_function void 2 1024 1025 -call 1027 pith_cstring_release void 1 1024 -strref 1028 m9s112 -load 1029 str_int_to_int_result -call 1030 checker_builtins_define_builtin_function void 2 1028 1029 -call 1031 pith_cstring_release void 1 1028 -strref 1032 m9s111 -call 1033 pith_list_new_default list 0 -load 1034 types_TID_INT -call 1035 pith_list_push_value void 2 1033 1034 -load 1036 int_result -call 1037 checker_builtins_create_function_type int 2 1033 1036 -call 1038 checker_builtins_define_builtin_function void 2 1032 1037 -call 1039 pith_cstring_release void 1 1032 -strref 1040 m9s110 -call 1041 pith_list_new_default list 0 -load 1042 types_TID_INT -call 1043 pith_list_push_value void 2 1041 1042 -load 1044 types_TID_INT -call 1045 pith_list_push_value void 2 1041 1044 -load 1046 str_result -call 1047 checker_builtins_create_function_type int 2 1041 1046 -call 1048 checker_builtins_define_builtin_function void 2 1040 1047 -call 1049 pith_cstring_release void 1 1040 -strref 1050 m9s109 -call 1051 pith_list_new_default list 0 -load 1052 types_TID_INT -call 1053 pith_list_push_value void 2 1051 1052 -load 1054 types_TID_STRING -call 1055 pith_list_push_value void 2 1051 1054 -load 1056 int_result -call 1057 checker_builtins_create_function_type int 2 1051 1056 -call 1058 checker_builtins_define_builtin_function void 2 1050 1057 -call 1059 pith_cstring_release void 1 1050 -strref 1060 m9s108 -call 1061 pith_list_new_default list 0 -load 1062 types_TID_INT -call 1063 pith_list_push_value void 2 1061 1062 +strref 1013 m9s117 +call 1014 pith_list_new_default list 0 +load 1015 types_TID_INT +call 1016 pith_list_push_value void 2 1014 1015 +load 1017 types_TID_STRING +call 1018 pith_list_push_value void 2 1014 1017 +load 1019 int_result +call 1020 checker_builtins_create_function_type int 2 1014 1019 +call 1021 checker_builtins_define_builtin_function void 2 1013 1020 +call 1022 pith_cstring_release void 1 1013 +strref 1023 m9s116 +call 1024 pith_list_new_default list 0 +load 1025 types_TID_INT +call 1026 pith_list_push_value void 2 1024 1025 +load 1027 types_TID_INT +call 1028 pith_list_push_value void 2 1024 1027 +load 1029 bytes_result +call 1030 checker_builtins_create_function_type int 2 1024 1029 +call 1031 checker_builtins_define_builtin_function void 2 1023 1030 +call 1032 pith_cstring_release void 1 1023 +strref 1033 m9s115 +call 1034 pith_list_new_default list 0 +load 1035 types_TID_INT +call 1036 pith_list_push_value void 2 1034 1035 +load 1037 tid_bytes +call 1038 pith_list_push_value void 2 1034 1037 +load 1039 int_result +call 1040 checker_builtins_create_function_type int 2 1034 1039 +call 1041 checker_builtins_define_builtin_function void 2 1033 1040 +call 1042 pith_cstring_release void 1 1033 +strref 1043 m9s114 +load 1044 int_to_void +call 1045 checker_builtins_define_builtin_function void 2 1043 1044 +call 1046 pith_cstring_release void 1 1043 +call 1047 pith_list_new_default list 0 +load 1048 types_TID_STRING +call 1049 pith_list_push_value void 2 1047 1048 +load 1050 types_TID_INT +call 1051 pith_list_push_value void 2 1047 1050 +load 1052 int_result +call 1053 checker_builtins_create_function_type int 2 1047 1052 +store str_int_to_int_result 1053 +strref 1054 m9s113 +load 1055 str_int_to_int_result +call 1056 checker_builtins_define_builtin_function void 2 1054 1055 +call 1057 pith_cstring_release void 1 1054 +strref 1058 m9s112 +load 1059 str_int_to_int_result +call 1060 checker_builtins_define_builtin_function void 2 1058 1059 +call 1061 pith_cstring_release void 1 1058 +strref 1062 m9s111 +call 1063 pith_list_new_default list 0 load 1064 types_TID_INT -call 1065 pith_list_push_value void 2 1061 1064 -load 1066 bytes_result -call 1067 checker_builtins_create_function_type int 2 1061 1066 -call 1068 checker_builtins_define_builtin_function void 2 1060 1067 -call 1069 pith_cstring_release void 1 1060 -strref 1070 m9s107 +call 1065 pith_list_push_value void 2 1063 1064 +load 1066 int_result +call 1067 checker_builtins_create_function_type int 2 1063 1066 +call 1068 checker_builtins_define_builtin_function void 2 1062 1067 +call 1069 pith_cstring_release void 1 1062 +strref 1070 m9s110 call 1071 pith_list_new_default list 0 load 1072 types_TID_INT call 1073 pith_list_push_value void 2 1071 1072 -load 1074 tid_bytes +load 1074 types_TID_INT call 1075 pith_list_push_value void 2 1071 1074 -load 1076 int_result +load 1076 str_result call 1077 checker_builtins_create_function_type int 2 1071 1076 call 1078 checker_builtins_define_builtin_function void 2 1070 1077 call 1079 pith_cstring_release void 1 1070 -strref 1080 m9s106 +strref 1080 m9s109 call 1081 pith_list_new_default list 0 load 1082 types_TID_INT call 1083 pith_list_push_value void 2 1081 1082 -load 1084 types_TID_INT +load 1084 types_TID_STRING call 1085 pith_list_push_value void 2 1081 1084 -load 1086 types_TID_INT +load 1086 int_result call 1087 checker_builtins_create_function_type int 2 1081 1086 call 1088 checker_builtins_define_builtin_function void 2 1080 1087 call 1089 pith_cstring_release void 1 1080 -strref 1090 m9s105 +strref 1090 m9s108 call 1091 pith_list_new_default list 0 load 1092 types_TID_INT call 1093 pith_list_push_value void 2 1091 1092 load 1094 types_TID_INT call 1095 pith_list_push_value void 2 1091 1094 -load 1096 types_TID_INT +load 1096 bytes_result call 1097 checker_builtins_create_function_type int 2 1091 1096 call 1098 checker_builtins_define_builtin_function void 2 1090 1097 call 1099 pith_cstring_release void 1 1090 -strref 1100 m9s104 +strref 1100 m9s107 call 1101 pith_list_new_default list 0 load 1102 types_TID_INT call 1103 pith_list_push_value void 2 1101 1102 -load 1104 types_TID_INT +load 1104 tid_bytes call 1105 pith_list_push_value void 2 1101 1104 -load 1106 types_TID_VOID +load 1106 int_result call 1107 checker_builtins_create_function_type int 2 1101 1106 call 1108 checker_builtins_define_builtin_function void 2 1100 1107 call 1109 pith_cstring_release void 1 1100 -strref 1110 m9s103 +strref 1110 m9s106 call 1111 pith_list_new_default list 0 -load 1112 types_TID_STRING +load 1112 types_TID_INT call 1113 pith_list_push_value void 2 1111 1112 -load 1114 int_result -call 1115 checker_builtins_create_function_type int 2 1111 1114 -call 1116 checker_builtins_define_builtin_function void 2 1110 1115 -call 1117 pith_cstring_release void 1 1110 -strref 1118 m9s102 -call 1119 pith_list_new_default list 0 -load 1120 types_TID_STRING -call 1121 pith_list_push_value void 2 1119 1120 -load 1122 list_string -call 1123 pith_list_push_value void 2 1119 1122 -load 1124 types_TID_STRING -call 1125 pith_list_push_value void 2 1119 1124 -load 1126 list_string -call 1127 pith_list_push_value void 2 1119 1126 -load 1128 list_string -call 1129 pith_list_push_value void 2 1119 1128 -load 1130 int_result -call 1131 checker_builtins_create_function_type int 2 1119 1130 -call 1132 checker_builtins_define_builtin_function void 2 1118 1131 -call 1133 pith_cstring_release void 1 1118 -strref 1134 m9s101 -call 1135 pith_list_new_default list 0 -load 1136 types_TID_STRING -call 1137 pith_list_push_value void 2 1135 1136 -load 1138 list_string -call 1139 pith_list_push_value void 2 1135 1138 -load 1140 types_TID_STRING -call 1141 pith_list_push_value void 2 1135 1140 -load 1142 list_string -call 1143 pith_list_push_value void 2 1135 1142 -load 1144 list_string -call 1145 pith_list_push_value void 2 1135 1144 -load 1146 int_result -call 1147 checker_builtins_create_function_type int 2 1135 1146 -call 1148 checker_builtins_define_builtin_function void 2 1134 1147 -call 1149 pith_cstring_release void 1 1134 -strref 1150 m9s100 -call 1151 pith_list_new_default list 0 -load 1152 types_TID_INT -call 1153 pith_list_push_value void 2 1151 1152 +load 1114 types_TID_INT +call 1115 pith_list_push_value void 2 1111 1114 +load 1116 types_TID_INT +call 1117 checker_builtins_create_function_type int 2 1111 1116 +call 1118 checker_builtins_define_builtin_function void 2 1110 1117 +call 1119 pith_cstring_release void 1 1110 +strref 1120 m9s105 +call 1121 pith_list_new_default list 0 +load 1122 types_TID_INT +call 1123 pith_list_push_value void 2 1121 1122 +load 1124 types_TID_INT +call 1125 pith_list_push_value void 2 1121 1124 +load 1126 types_TID_INT +call 1127 checker_builtins_create_function_type int 2 1121 1126 +call 1128 checker_builtins_define_builtin_function void 2 1120 1127 +call 1129 pith_cstring_release void 1 1120 +strref 1130 m9s104 +call 1131 pith_list_new_default list 0 +load 1132 types_TID_INT +call 1133 pith_list_push_value void 2 1131 1132 +load 1134 types_TID_INT +call 1135 pith_list_push_value void 2 1131 1134 +load 1136 types_TID_VOID +call 1137 checker_builtins_create_function_type int 2 1131 1136 +call 1138 checker_builtins_define_builtin_function void 2 1130 1137 +call 1139 pith_cstring_release void 1 1130 +strref 1140 m9s103 +call 1141 pith_list_new_default list 0 +load 1142 types_TID_STRING +call 1143 pith_list_push_value void 2 1141 1142 +load 1144 int_result +call 1145 checker_builtins_create_function_type int 2 1141 1144 +call 1146 checker_builtins_define_builtin_function void 2 1140 1145 +call 1147 pith_cstring_release void 1 1140 +strref 1148 m9s102 +call 1149 pith_list_new_default list 0 +load 1150 types_TID_STRING +call 1151 pith_list_push_value void 2 1149 1150 +load 1152 list_string +call 1153 pith_list_push_value void 2 1149 1152 load 1154 types_TID_STRING -call 1155 pith_list_push_value void 2 1151 1154 -load 1156 int_result -call 1157 checker_builtins_create_function_type int 2 1151 1156 -call 1158 checker_builtins_define_builtin_function void 2 1150 1157 -call 1159 pith_cstring_release void 1 1150 -strref 1160 m9s99 -call 1161 pith_list_new_default list 0 -load 1162 types_TID_INT -call 1163 pith_list_push_value void 2 1161 1162 -load 1164 types_TID_INT -call 1165 pith_list_push_value void 2 1161 1164 -load 1166 str_result -call 1167 checker_builtins_create_function_type int 2 1161 1166 -call 1168 checker_builtins_define_builtin_function void 2 1160 1167 -call 1169 pith_cstring_release void 1 1160 -strref 1170 m9s98 -call 1171 pith_list_new_default list 0 -load 1172 types_TID_INT -call 1173 pith_list_push_value void 2 1171 1172 -load 1174 types_TID_INT -call 1175 pith_list_push_value void 2 1171 1174 -load 1176 str_result -call 1177 checker_builtins_create_function_type int 2 1171 1176 -call 1178 checker_builtins_define_builtin_function void 2 1170 1177 -call 1179 pith_cstring_release void 1 1170 -strref 1180 m9s97 +call 1155 pith_list_push_value void 2 1149 1154 +load 1156 list_string +call 1157 pith_list_push_value void 2 1149 1156 +load 1158 list_string +call 1159 pith_list_push_value void 2 1149 1158 +load 1160 int_result +call 1161 checker_builtins_create_function_type int 2 1149 1160 +call 1162 checker_builtins_define_builtin_function void 2 1148 1161 +call 1163 pith_cstring_release void 1 1148 +strref 1164 m9s101 +call 1165 pith_list_new_default list 0 +load 1166 types_TID_STRING +call 1167 pith_list_push_value void 2 1165 1166 +load 1168 list_string +call 1169 pith_list_push_value void 2 1165 1168 +load 1170 types_TID_STRING +call 1171 pith_list_push_value void 2 1165 1170 +load 1172 list_string +call 1173 pith_list_push_value void 2 1165 1172 +load 1174 list_string +call 1175 pith_list_push_value void 2 1165 1174 +load 1176 int_result +call 1177 checker_builtins_create_function_type int 2 1165 1176 +call 1178 checker_builtins_define_builtin_function void 2 1164 1177 +call 1179 pith_cstring_release void 1 1164 +strref 1180 m9s100 call 1181 pith_list_new_default list 0 load 1182 types_TID_INT call 1183 pith_list_push_value void 2 1181 1182 -load 1184 tid_bytes +load 1184 types_TID_STRING call 1185 pith_list_push_value void 2 1181 1184 load 1186 int_result call 1187 checker_builtins_create_function_type int 2 1181 1186 call 1188 checker_builtins_define_builtin_function void 2 1180 1187 call 1189 pith_cstring_release void 1 1180 -strref 1190 m9s96 +strref 1190 m9s99 call 1191 pith_list_new_default list 0 load 1192 types_TID_INT call 1193 pith_list_push_value void 2 1191 1192 load 1194 types_TID_INT call 1195 pith_list_push_value void 2 1191 1194 -load 1196 bytes_result +load 1196 str_result call 1197 checker_builtins_create_function_type int 2 1191 1196 call 1198 checker_builtins_define_builtin_function void 2 1190 1197 call 1199 pith_cstring_release void 1 1190 -strref 1200 m9s95 +strref 1200 m9s98 call 1201 pith_list_new_default list 0 load 1202 types_TID_INT call 1203 pith_list_push_value void 2 1201 1202 load 1204 types_TID_INT call 1205 pith_list_push_value void 2 1201 1204 -load 1206 bytes_result +load 1206 str_result call 1207 checker_builtins_create_function_type int 2 1201 1206 call 1208 checker_builtins_define_builtin_function void 2 1200 1207 call 1209 pith_cstring_release void 1 1200 -strref 1210 m9s94 -load 1211 int_to_int -call 1212 checker_builtins_define_builtin_function void 2 1210 1211 -call 1213 pith_cstring_release void 1 1210 -strref 1214 m9s93 -call 1215 pith_list_new_default list 0 -load 1216 types_TID_INT -call 1217 pith_list_push_value void 2 1215 1216 -load 1218 types_TID_BOOL -call 1219 checker_builtins_create_function_type int 2 1215 1218 -call 1220 checker_builtins_define_builtin_function void 2 1214 1219 -call 1221 pith_cstring_release void 1 1214 -strref 1222 m9s92 -load 1223 int_to_void -call 1224 checker_builtins_define_builtin_function void 2 1222 1223 -call 1225 pith_cstring_release void 1 1222 -strref 1226 m9s91 -load 1227 int_to_int -call 1228 checker_builtins_define_builtin_function void 2 1226 1227 -call 1229 pith_cstring_release void 1 1226 -strref 1230 m9s90 +strref 1210 m9s97 +call 1211 pith_list_new_default list 0 +load 1212 types_TID_INT +call 1213 pith_list_push_value void 2 1211 1212 +load 1214 tid_bytes +call 1215 pith_list_push_value void 2 1211 1214 +load 1216 int_result +call 1217 checker_builtins_create_function_type int 2 1211 1216 +call 1218 checker_builtins_define_builtin_function void 2 1210 1217 +call 1219 pith_cstring_release void 1 1210 +strref 1220 m9s96 +call 1221 pith_list_new_default list 0 +load 1222 types_TID_INT +call 1223 pith_list_push_value void 2 1221 1222 +load 1224 types_TID_INT +call 1225 pith_list_push_value void 2 1221 1224 +load 1226 bytes_result +call 1227 checker_builtins_create_function_type int 2 1221 1226 +call 1228 checker_builtins_define_builtin_function void 2 1220 1227 +call 1229 pith_cstring_release void 1 1220 +strref 1230 m9s95 call 1231 pith_list_new_default list 0 load 1232 types_TID_INT call 1233 pith_list_push_value void 2 1231 1232 -load 1234 types_TID_STRING -call 1235 checker_builtins_create_function_type int 2 1231 1234 -call 1236 checker_builtins_define_builtin_function void 2 1230 1235 -call 1237 pith_cstring_release void 1 1230 -strref 1238 m9s89 -call 1239 pith_list_new_default list 0 -load 1240 types_TID_INT -call 1241 pith_list_push_value void 2 1239 1240 -load 1242 types_TID_STRING -call 1243 checker_builtins_create_function_type int 2 1239 1242 -call 1244 checker_builtins_define_builtin_function void 2 1238 1243 -call 1245 pith_cstring_release void 1 1238 -strref 1246 m9s88 -load 1247 int_to_void -call 1248 checker_builtins_define_builtin_function void 2 1246 1247 -call 1249 pith_cstring_release void 1 1246 -strref 1250 m9s231 -call 1251 pith_list_new_default list 0 -call 1252 checker_builtins_register_sync_primitive_type void 2 1250 1251 -call 1253 pith_cstring_release void 1 1250 -strref 1254 m9s230 -call 1255 pith_list_new_default list 0 -call 1256 checker_builtins_register_sync_primitive_type void 2 1254 1255 -call 1257 pith_cstring_release void 1 1254 -strref 1258 m9s229 -call 1259 pith_list_new_default list 0 -load 1260 tid_int -call 1261 pith_list_push_value void 2 1259 1260 -call 1262 checker_builtins_register_sync_primitive_type void 2 1258 1259 -call 1263 pith_cstring_release void 1 1258 -strref 1264 m9s228 -call 1265 pith_list_new_default list 0 -load 1266 tid_int -call 1267 pith_list_push_value void 2 1265 1266 -call 1268 checker_builtins_register_sync_primitive_type void 2 1264 1265 -call 1269 pith_cstring_release void 1 1264 -strref 1270 m9s227 -call 1271 pith_list_new_default list 0 -load 1272 tid_int -call 1273 checker_builtins_fix_builtin_binding void 3 1270 1271 1272 -call 1274 pith_cstring_release void 1 1270 -strref 1275 m9s226 -call 1276 pith_list_new_default list 0 -load 1277 tid_int -call 1278 checker_builtins_fix_builtin_binding void 3 1275 1276 1277 -call 1279 pith_cstring_release void 1 1275 -strref 1280 m9s225 +load 1234 types_TID_INT +call 1235 pith_list_push_value void 2 1231 1234 +load 1236 bytes_result +call 1237 checker_builtins_create_function_type int 2 1231 1236 +call 1238 checker_builtins_define_builtin_function void 2 1230 1237 +call 1239 pith_cstring_release void 1 1230 +strref 1240 m9s94 +load 1241 int_to_int +call 1242 checker_builtins_define_builtin_function void 2 1240 1241 +call 1243 pith_cstring_release void 1 1240 +strref 1244 m9s93 +call 1245 pith_list_new_default list 0 +load 1246 types_TID_INT +call 1247 pith_list_push_value void 2 1245 1246 +load 1248 types_TID_BOOL +call 1249 checker_builtins_create_function_type int 2 1245 1248 +call 1250 checker_builtins_define_builtin_function void 2 1244 1249 +call 1251 pith_cstring_release void 1 1244 +strref 1252 m9s92 +load 1253 int_to_void +call 1254 checker_builtins_define_builtin_function void 2 1252 1253 +call 1255 pith_cstring_release void 1 1252 +strref 1256 m9s91 +load 1257 int_to_int +call 1258 checker_builtins_define_builtin_function void 2 1256 1257 +call 1259 pith_cstring_release void 1 1256 +strref 1260 m9s90 +call 1261 pith_list_new_default list 0 +load 1262 types_TID_INT +call 1263 pith_list_push_value void 2 1261 1262 +load 1264 types_TID_STRING +call 1265 checker_builtins_create_function_type int 2 1261 1264 +call 1266 checker_builtins_define_builtin_function void 2 1260 1265 +call 1267 pith_cstring_release void 1 1260 +strref 1268 m9s89 +call 1269 pith_list_new_default list 0 +load 1270 types_TID_INT +call 1271 pith_list_push_value void 2 1269 1270 +load 1272 types_TID_STRING +call 1273 checker_builtins_create_function_type int 2 1269 1272 +call 1274 checker_builtins_define_builtin_function void 2 1268 1273 +call 1275 pith_cstring_release void 1 1268 +strref 1276 m9s88 +load 1277 int_to_void +call 1278 checker_builtins_define_builtin_function void 2 1276 1277 +call 1279 pith_cstring_release void 1 1276 +strref 1280 m9s233 call 1281 pith_list_new_default list 0 -load 1282 tid_float -call 1283 checker_builtins_fix_builtin_binding void 3 1280 1281 1282 -call 1284 pith_cstring_release void 1 1280 -strref 1285 m9s224 -call 1286 pith_list_new_default list 0 -load 1287 tid_int -call 1288 pith_list_push_value void 2 1286 1287 -load 1289 tid_float -call 1290 checker_builtins_fix_builtin_binding void 3 1285 1286 1289 -call 1291 pith_cstring_release void 1 1285 -strref 1292 m9s223 -call 1293 pith_list_new_default list 0 -load 1294 tid_float -call 1295 pith_list_push_value void 2 1293 1294 +call 1282 checker_builtins_register_sync_primitive_type void 2 1280 1281 +call 1283 pith_cstring_release void 1 1280 +strref 1284 m9s232 +call 1285 pith_list_new_default list 0 +call 1286 checker_builtins_register_sync_primitive_type void 2 1284 1285 +call 1287 pith_cstring_release void 1 1284 +strref 1288 m9s231 +call 1289 pith_list_new_default list 0 +load 1290 tid_int +call 1291 pith_list_push_value void 2 1289 1290 +call 1292 checker_builtins_register_sync_primitive_type void 2 1288 1289 +call 1293 pith_cstring_release void 1 1288 +strref 1294 m9s230 +call 1295 pith_list_new_default list 0 load 1296 tid_int -call 1297 checker_builtins_fix_builtin_binding void 3 1292 1293 1296 -call 1298 pith_cstring_release void 1 1292 -strref 1299 m9s222 -call 1300 pith_list_new_default list 0 -load 1301 tid_string -call 1302 checker_builtins_fix_builtin_binding void 3 1299 1300 1301 -call 1303 pith_cstring_release void 1 1299 -strref 1304 m9s221 -call 1305 pith_list_new_default list 0 -load 1306 list_string -call 1307 checker_builtins_fix_builtin_binding void 3 1304 1305 1306 -call 1308 pith_cstring_release void 1 1304 -strref 1309 m9s220 -call 1310 pith_list_new_default list 0 -load 1311 tid_bool -call 1312 pith_list_push_value void 2 1310 1311 -load 1313 tid_void -call 1314 checker_builtins_fix_builtin_binding void 3 1309 1310 1313 -call 1315 pith_cstring_release void 1 1309 -strref 1316 m9s219 -call 1317 pith_list_new_default list 0 -load 1318 tid_int -call 1319 pith_list_push_value void 2 1317 1318 -load 1320 tid_void -call 1321 checker_builtins_fix_builtin_binding void 3 1316 1317 1320 -call 1322 pith_cstring_release void 1 1316 -strref 1323 m9s218 -call 1324 pith_list_new_default list 0 -load 1325 tid_int -call 1326 pith_list_push_value void 2 1324 1325 -load 1327 tid_void -call 1328 checker_builtins_fix_builtin_binding void 3 1323 1324 1327 -call 1329 pith_cstring_release void 1 1323 -strref 1330 m9s217 -call 1331 pith_list_new_default list 0 -load 1332 tid_int -call 1333 pith_list_push_value void 2 1331 1332 -load 1334 tid_void -call 1335 checker_builtins_fix_builtin_binding void 3 1330 1331 1334 -call 1336 pith_cstring_release void 1 1330 -strref 1337 m9s216 -call 1338 pith_list_new_default list 0 -load 1339 tid_int -call 1340 pith_list_push_value void 2 1338 1339 -load 1341 tid_void -call 1342 checker_builtins_fix_builtin_binding void 3 1337 1338 1341 -call 1343 pith_cstring_release void 1 1337 -strref 1344 m9s215 -call 1345 pith_list_new_default list 0 -load 1346 tid_int -call 1347 pith_list_push_value void 2 1345 1346 +call 1297 pith_list_push_value void 2 1295 1296 +call 1298 checker_builtins_register_sync_primitive_type void 2 1294 1295 +call 1299 pith_cstring_release void 1 1294 +strref 1300 m9s229 +call 1301 pith_list_new_default list 0 +load 1302 tid_int +call 1303 checker_builtins_fix_builtin_binding void 3 1300 1301 1302 +call 1304 pith_cstring_release void 1 1300 +strref 1305 m9s228 +call 1306 pith_list_new_default list 0 +load 1307 tid_int +call 1308 checker_builtins_fix_builtin_binding void 3 1305 1306 1307 +call 1309 pith_cstring_release void 1 1305 +strref 1310 m9s227 +call 1311 pith_list_new_default list 0 +load 1312 tid_float +call 1313 checker_builtins_fix_builtin_binding void 3 1310 1311 1312 +call 1314 pith_cstring_release void 1 1310 +strref 1315 m9s226 +call 1316 pith_list_new_default list 0 +load 1317 tid_int +call 1318 pith_list_push_value void 2 1316 1317 +load 1319 tid_float +call 1320 checker_builtins_fix_builtin_binding void 3 1315 1316 1319 +call 1321 pith_cstring_release void 1 1315 +strref 1322 m9s225 +call 1323 pith_list_new_default list 0 +load 1324 tid_float +call 1325 pith_list_push_value void 2 1323 1324 +load 1326 tid_int +call 1327 checker_builtins_fix_builtin_binding void 3 1322 1323 1326 +call 1328 pith_cstring_release void 1 1322 +strref 1329 m9s224 +call 1330 pith_list_new_default list 0 +load 1331 tid_string +call 1332 checker_builtins_fix_builtin_binding void 3 1329 1330 1331 +call 1333 pith_cstring_release void 1 1329 +strref 1334 m9s223 +call 1335 pith_list_new_default list 0 +load 1336 list_string +call 1337 checker_builtins_fix_builtin_binding void 3 1334 1335 1336 +call 1338 pith_cstring_release void 1 1334 +strref 1339 m9s222 +call 1340 pith_list_new_default list 0 +load 1341 tid_bool +call 1342 pith_list_push_value void 2 1340 1341 +load 1343 tid_void +call 1344 checker_builtins_fix_builtin_binding void 3 1339 1340 1343 +call 1345 pith_cstring_release void 1 1339 +strref 1346 m9s221 +call 1347 pith_list_new_default list 0 load 1348 tid_int -call 1349 checker_builtins_fix_builtin_binding void 3 1344 1345 1348 -call 1350 pith_cstring_release void 1 1344 -strref 1351 m9s214 -call 1352 pith_list_new_default list 0 -load 1353 tid_int -call 1354 pith_list_push_value void 2 1352 1353 +call 1349 pith_list_push_value void 2 1347 1348 +load 1350 tid_void +call 1351 checker_builtins_fix_builtin_binding void 3 1346 1347 1350 +call 1352 pith_cstring_release void 1 1346 +strref 1353 m9s220 +call 1354 pith_list_new_default list 0 load 1355 tid_int -call 1356 checker_builtins_fix_builtin_binding void 3 1351 1352 1355 -call 1357 pith_cstring_release void 1 1351 -strref 1358 m9s213 -call 1359 pith_list_new_default list 0 -load 1360 tid_int -call 1361 pith_list_push_value void 2 1359 1360 -load 1362 tid_string -call 1363 checker_builtins_fix_builtin_binding void 3 1358 1359 1362 -call 1364 pith_cstring_release void 1 1358 -strref 1365 m9s212 -call 1366 pith_list_new_default list 0 -load 1367 tid_int -call 1368 pith_list_push_value void 2 1366 1367 -load 1369 tid_string -call 1370 checker_builtins_fix_builtin_binding void 3 1365 1366 1369 -call 1371 pith_cstring_release void 1 1365 -strref 1372 m9s211 -call 1373 pith_list_new_default list 0 -load 1374 tid_int -call 1375 pith_list_push_value void 2 1373 1374 +call 1356 pith_list_push_value void 2 1354 1355 +load 1357 tid_void +call 1358 checker_builtins_fix_builtin_binding void 3 1353 1354 1357 +call 1359 pith_cstring_release void 1 1353 +strref 1360 m9s219 +call 1361 pith_list_new_default list 0 +load 1362 tid_int +call 1363 pith_list_push_value void 2 1361 1362 +load 1364 tid_void +call 1365 checker_builtins_fix_builtin_binding void 3 1360 1361 1364 +call 1366 pith_cstring_release void 1 1360 +strref 1367 m9s218 +call 1368 pith_list_new_default list 0 +load 1369 tid_int +call 1370 pith_list_push_value void 2 1368 1369 +load 1371 tid_void +call 1372 checker_builtins_fix_builtin_binding void 3 1367 1368 1371 +call 1373 pith_cstring_release void 1 1367 +strref 1374 m9s217 +call 1375 pith_list_new_default list 0 load 1376 tid_int -call 1377 pith_list_push_value void 2 1373 1376 +call 1377 pith_list_push_value void 2 1375 1376 load 1378 tid_int -call 1379 checker_builtins_fix_builtin_binding void 3 1372 1373 1378 -call 1380 pith_cstring_release void 1 1372 -strref 1381 m9s210 +call 1379 checker_builtins_fix_builtin_binding void 3 1374 1375 1378 +call 1380 pith_cstring_release void 1 1374 +strref 1381 m9s216 call 1382 pith_list_new_default list 0 load 1383 tid_int call 1384 pith_list_push_value void 2 1382 1383 load 1385 tid_int -call 1386 pith_list_push_value void 2 1382 1385 -load 1387 tid_int -call 1388 checker_builtins_fix_builtin_binding void 3 1381 1382 1387 -call 1389 pith_cstring_release void 1 1381 -strref 1390 m9s209 -call 1391 pith_list_new_default list 0 -load 1392 tid_int -call 1393 pith_list_push_value void 2 1391 1392 -load 1394 tid_int -call 1395 pith_list_push_value void 2 1391 1394 -load 1396 tid_int -call 1397 checker_builtins_fix_builtin_binding void 3 1390 1391 1396 -call 1398 pith_cstring_release void 1 1390 -strref 1399 m9s208 -call 1400 pith_list_new_default list 0 -load 1401 tid_int -call 1402 pith_list_push_value void 2 1400 1401 -load 1403 tid_int -call 1404 pith_list_push_value void 2 1400 1403 -load 1405 tid_int -call 1406 checker_builtins_fix_builtin_binding void 3 1399 1400 1405 -call 1407 pith_cstring_release void 1 1399 -strref 1408 m9s207 -call 1409 pith_list_new_default list 0 -load 1410 tid_int -call 1411 pith_list_push_value void 2 1409 1410 -load 1412 tid_int -call 1413 pith_list_push_value void 2 1409 1412 -load 1414 tid_int -call 1415 checker_builtins_fix_builtin_binding void 3 1408 1409 1414 -call 1416 pith_cstring_release void 1 1408 -strref 1417 m9s206 -call 1418 pith_list_new_default list 0 -load 1419 tid_int -call 1420 pith_list_push_value void 2 1418 1419 -load 1421 tid_int -call 1422 pith_list_push_value void 2 1418 1421 -load 1423 tid_int -call 1424 checker_builtins_fix_builtin_binding void 3 1417 1418 1423 -call 1425 pith_cstring_release void 1 1417 -strref 1426 m9s205 -call 1427 pith_list_new_default list 0 -load 1428 tid_int -call 1429 pith_list_push_value void 2 1427 1428 -load 1430 tid_int -call 1431 pith_list_push_value void 2 1427 1430 -load 1432 tid_int -call 1433 checker_builtins_fix_builtin_binding void 3 1426 1427 1432 -call 1434 pith_cstring_release void 1 1426 -strref 1435 m9s204 -call 1436 pith_list_new_default list 0 -load 1437 tid_int -call 1438 pith_list_push_value void 2 1436 1437 -load 1439 tid_int -call 1440 pith_list_push_value void 2 1436 1439 -load 1441 tid_int -call 1442 checker_builtins_fix_builtin_binding void 3 1435 1436 1441 -call 1443 pith_cstring_release void 1 1435 -strref 1444 m9s14 -call 1445 pith_list_new_default list 0 -load 1446 tid_int -call 1447 pith_list_push_value void 2 1445 1446 -strref 1448 m9s14 -call 1449 types_lookup_type_id int 1 1448 -call 1450 pith_cstring_release void 1 1448 -call 1451 checker_builtins_fix_builtin_binding void 3 1444 1445 1449 -call 1452 pith_cstring_release void 1 1444 -strref 1453 m9s8 -call 1454 pith_list_new_default list 0 -load 1455 tid_int -call 1456 pith_list_push_value void 2 1454 1455 -strref 1457 m9s8 -call 1458 types_lookup_type_id int 1 1457 -call 1459 pith_cstring_release void 1 1457 -call 1460 checker_builtins_fix_builtin_binding void 3 1453 1454 1458 -call 1461 pith_cstring_release void 1 1453 -strref 1462 m9s7 -call 1463 pith_list_new_default list 0 -load 1464 tid_int -call 1465 pith_list_push_value void 2 1463 1464 -strref 1466 m9s7 -call 1467 types_lookup_type_id int 1 1466 -call 1468 pith_cstring_release void 1 1466 -call 1469 checker_builtins_fix_builtin_binding void 3 1462 1463 1467 -call 1470 pith_cstring_release void 1 1462 -strref 1471 m9s6 -call 1472 pith_list_new_default list 0 -load 1473 tid_int -call 1474 pith_list_push_value void 2 1472 1473 -strref 1475 m9s6 -call 1476 types_lookup_type_id int 1 1475 -call 1477 pith_cstring_release void 1 1475 -call 1478 checker_builtins_fix_builtin_binding void 3 1471 1472 1476 -call 1479 pith_cstring_release void 1 1471 -strref 1480 m9s5 -call 1481 pith_list_new_default list 0 -load 1482 tid_int -call 1483 pith_list_push_value void 2 1481 1482 -strref 1484 m9s5 -call 1485 types_lookup_type_id int 1 1484 -call 1486 pith_cstring_release void 1 1484 -call 1487 checker_builtins_fix_builtin_binding void 3 1480 1481 1485 -call 1488 pith_cstring_release void 1 1480 -strref 1489 m9s4 -call 1490 pith_list_new_default list 0 -load 1491 tid_int -call 1492 pith_list_push_value void 2 1490 1491 -strref 1493 m9s4 -call 1494 types_lookup_type_id int 1 1493 -call 1495 pith_cstring_release void 1 1493 -call 1496 checker_builtins_fix_builtin_binding void 3 1489 1490 1494 -call 1497 pith_cstring_release void 1 1489 -strref 1498 m9s3 -call 1499 pith_list_new_default list 0 -load 1500 tid_int -call 1501 pith_list_push_value void 2 1499 1500 -strref 1502 m9s3 -call 1503 types_lookup_type_id int 1 1502 -call 1504 pith_cstring_release void 1 1502 -call 1505 checker_builtins_fix_builtin_binding void 3 1498 1499 1503 -call 1506 pith_cstring_release void 1 1498 -strref 1507 m9s2 -call 1508 pith_list_new_default list 0 -load 1509 tid_int -call 1510 pith_list_push_value void 2 1508 1509 -strref 1511 m9s2 -call 1512 types_lookup_type_id int 1 1511 -call 1513 pith_cstring_release void 1 1511 -call 1514 checker_builtins_fix_builtin_binding void 3 1507 1508 1512 -call 1515 pith_cstring_release void 1 1507 -strref 1516 m9s1 -call 1517 pith_list_new_default list 0 -load 1518 tid_int -call 1519 pith_list_push_value void 2 1517 1518 -strref 1520 m9s1 -call 1521 types_lookup_type_id int 1 1520 -call 1522 pith_cstring_release void 1 1520 -call 1523 checker_builtins_fix_builtin_binding void 3 1516 1517 1521 -call 1524 pith_cstring_release void 1 1516 -strref 1525 m9s203 -call 1526 pith_list_new_default list 0 -load 1527 tid_int -call 1528 pith_list_push_value void 2 1526 1527 -load 1529 tid_int -call 1530 pith_list_push_value void 2 1526 1529 -load 1531 tid_int -call 1532 pith_list_push_value void 2 1526 1531 -load 1533 tid_int -call 1534 checker_builtins_fix_builtin_binding void 3 1525 1526 1533 -call 1535 pith_cstring_release void 1 1525 -strref 1536 m9s202 -call 1537 pith_list_new_default list 0 -load 1538 tid_int -call 1539 pith_list_push_value void 2 1537 1538 -load 1540 tid_string -call 1541 pith_list_push_value void 2 1537 1540 -load 1542 tid_string -call 1543 checker_builtins_fix_builtin_binding void 3 1536 1537 1542 -call 1544 pith_cstring_release void 1 1536 -strref 1545 m9s201 -call 1546 pith_list_new_default list 0 -load 1547 tid_float -call 1548 pith_list_push_value void 2 1546 1547 -load 1549 tid_float -call 1550 checker_builtins_fix_builtin_binding void 3 1545 1546 1549 -call 1551 pith_cstring_release void 1 1545 -strref 1552 m9s200 -call 1553 pith_list_new_default list 0 -load 1554 tid_float -call 1555 pith_list_push_value void 2 1553 1554 -load 1556 tid_float -call 1557 checker_builtins_fix_builtin_binding void 3 1552 1553 1556 -call 1558 pith_cstring_release void 1 1552 -strref 1559 m9s199 -call 1560 pith_list_new_default list 0 -load 1561 tid_float -call 1562 pith_list_push_value void 2 1560 1561 -load 1563 tid_float -call 1564 checker_builtins_fix_builtin_binding void 3 1559 1560 1563 -call 1565 pith_cstring_release void 1 1559 -strref 1566 m9s198 +call 1386 checker_builtins_fix_builtin_binding void 3 1381 1382 1385 +call 1387 pith_cstring_release void 1 1381 +strref 1388 m9s215 +call 1389 pith_list_new_default list 0 +load 1390 tid_int +call 1391 pith_list_push_value void 2 1389 1390 +load 1392 tid_string +call 1393 checker_builtins_fix_builtin_binding void 3 1388 1389 1392 +call 1394 pith_cstring_release void 1 1388 +strref 1395 m9s214 +call 1396 pith_list_new_default list 0 +load 1397 tid_int +call 1398 pith_list_push_value void 2 1396 1397 +load 1399 tid_string +call 1400 checker_builtins_fix_builtin_binding void 3 1395 1396 1399 +call 1401 pith_cstring_release void 1 1395 +strref 1402 m9s213 +call 1403 pith_list_new_default list 0 +load 1404 tid_int +call 1405 pith_list_push_value void 2 1403 1404 +load 1406 tid_int +call 1407 pith_list_push_value void 2 1403 1406 +load 1408 tid_int +call 1409 checker_builtins_fix_builtin_binding void 3 1402 1403 1408 +call 1410 pith_cstring_release void 1 1402 +strref 1411 m9s212 +call 1412 pith_list_new_default list 0 +load 1413 tid_int +call 1414 pith_list_push_value void 2 1412 1413 +load 1415 tid_int +call 1416 pith_list_push_value void 2 1412 1415 +load 1417 tid_int +call 1418 checker_builtins_fix_builtin_binding void 3 1411 1412 1417 +call 1419 pith_cstring_release void 1 1411 +strref 1420 m9s211 +call 1421 pith_list_new_default list 0 +load 1422 tid_int +call 1423 pith_list_push_value void 2 1421 1422 +load 1424 tid_int +call 1425 pith_list_push_value void 2 1421 1424 +load 1426 tid_int +call 1427 checker_builtins_fix_builtin_binding void 3 1420 1421 1426 +call 1428 pith_cstring_release void 1 1420 +strref 1429 m9s210 +call 1430 pith_list_new_default list 0 +load 1431 tid_int +call 1432 pith_list_push_value void 2 1430 1431 +load 1433 tid_int +call 1434 pith_list_push_value void 2 1430 1433 +load 1435 tid_int +call 1436 checker_builtins_fix_builtin_binding void 3 1429 1430 1435 +call 1437 pith_cstring_release void 1 1429 +strref 1438 m9s209 +call 1439 pith_list_new_default list 0 +load 1440 tid_int +call 1441 pith_list_push_value void 2 1439 1440 +load 1442 tid_int +call 1443 pith_list_push_value void 2 1439 1442 +load 1444 tid_int +call 1445 checker_builtins_fix_builtin_binding void 3 1438 1439 1444 +call 1446 pith_cstring_release void 1 1438 +strref 1447 m9s208 +call 1448 pith_list_new_default list 0 +load 1449 tid_int +call 1450 pith_list_push_value void 2 1448 1449 +load 1451 tid_int +call 1452 pith_list_push_value void 2 1448 1451 +load 1453 tid_int +call 1454 checker_builtins_fix_builtin_binding void 3 1447 1448 1453 +call 1455 pith_cstring_release void 1 1447 +strref 1456 m9s207 +call 1457 pith_list_new_default list 0 +load 1458 tid_int +call 1459 pith_list_push_value void 2 1457 1458 +load 1460 tid_int +call 1461 pith_list_push_value void 2 1457 1460 +load 1462 tid_int +call 1463 checker_builtins_fix_builtin_binding void 3 1456 1457 1462 +call 1464 pith_cstring_release void 1 1456 +strref 1465 m9s206 +call 1466 pith_list_new_default list 0 +load 1467 tid_int +call 1468 pith_list_push_value void 2 1466 1467 +load 1469 tid_int +call 1470 pith_list_push_value void 2 1466 1469 +load 1471 tid_int +call 1472 checker_builtins_fix_builtin_binding void 3 1465 1466 1471 +call 1473 pith_cstring_release void 1 1465 +strref 1474 m9s14 +call 1475 pith_list_new_default list 0 +load 1476 tid_int +call 1477 pith_list_push_value void 2 1475 1476 +strref 1478 m9s14 +call 1479 types_lookup_type_id int 1 1478 +call 1480 pith_cstring_release void 1 1478 +call 1481 checker_builtins_fix_builtin_binding void 3 1474 1475 1479 +call 1482 pith_cstring_release void 1 1474 +strref 1483 m9s8 +call 1484 pith_list_new_default list 0 +load 1485 tid_int +call 1486 pith_list_push_value void 2 1484 1485 +strref 1487 m9s8 +call 1488 types_lookup_type_id int 1 1487 +call 1489 pith_cstring_release void 1 1487 +call 1490 checker_builtins_fix_builtin_binding void 3 1483 1484 1488 +call 1491 pith_cstring_release void 1 1483 +strref 1492 m9s7 +call 1493 pith_list_new_default list 0 +load 1494 tid_int +call 1495 pith_list_push_value void 2 1493 1494 +strref 1496 m9s7 +call 1497 types_lookup_type_id int 1 1496 +call 1498 pith_cstring_release void 1 1496 +call 1499 checker_builtins_fix_builtin_binding void 3 1492 1493 1497 +call 1500 pith_cstring_release void 1 1492 +strref 1501 m9s6 +call 1502 pith_list_new_default list 0 +load 1503 tid_int +call 1504 pith_list_push_value void 2 1502 1503 +strref 1505 m9s6 +call 1506 types_lookup_type_id int 1 1505 +call 1507 pith_cstring_release void 1 1505 +call 1508 checker_builtins_fix_builtin_binding void 3 1501 1502 1506 +call 1509 pith_cstring_release void 1 1501 +strref 1510 m9s5 +call 1511 pith_list_new_default list 0 +load 1512 tid_int +call 1513 pith_list_push_value void 2 1511 1512 +strref 1514 m9s5 +call 1515 types_lookup_type_id int 1 1514 +call 1516 pith_cstring_release void 1 1514 +call 1517 checker_builtins_fix_builtin_binding void 3 1510 1511 1515 +call 1518 pith_cstring_release void 1 1510 +strref 1519 m9s4 +call 1520 pith_list_new_default list 0 +load 1521 tid_int +call 1522 pith_list_push_value void 2 1520 1521 +strref 1523 m9s4 +call 1524 types_lookup_type_id int 1 1523 +call 1525 pith_cstring_release void 1 1523 +call 1526 checker_builtins_fix_builtin_binding void 3 1519 1520 1524 +call 1527 pith_cstring_release void 1 1519 +strref 1528 m9s3 +call 1529 pith_list_new_default list 0 +load 1530 tid_int +call 1531 pith_list_push_value void 2 1529 1530 +strref 1532 m9s3 +call 1533 types_lookup_type_id int 1 1532 +call 1534 pith_cstring_release void 1 1532 +call 1535 checker_builtins_fix_builtin_binding void 3 1528 1529 1533 +call 1536 pith_cstring_release void 1 1528 +strref 1537 m9s2 +call 1538 pith_list_new_default list 0 +load 1539 tid_int +call 1540 pith_list_push_value void 2 1538 1539 +strref 1541 m9s2 +call 1542 types_lookup_type_id int 1 1541 +call 1543 pith_cstring_release void 1 1541 +call 1544 checker_builtins_fix_builtin_binding void 3 1537 1538 1542 +call 1545 pith_cstring_release void 1 1537 +strref 1546 m9s1 +call 1547 pith_list_new_default list 0 +load 1548 tid_int +call 1549 pith_list_push_value void 2 1547 1548 +strref 1550 m9s1 +call 1551 types_lookup_type_id int 1 1550 +call 1552 pith_cstring_release void 1 1550 +call 1553 checker_builtins_fix_builtin_binding void 3 1546 1547 1551 +call 1554 pith_cstring_release void 1 1546 +strref 1555 m9s205 +call 1556 pith_list_new_default list 0 +load 1557 tid_int +call 1558 pith_list_push_value void 2 1556 1557 +load 1559 tid_int +call 1560 pith_list_push_value void 2 1556 1559 +load 1561 tid_int +call 1562 pith_list_push_value void 2 1556 1561 +load 1563 tid_int +call 1564 checker_builtins_fix_builtin_binding void 3 1555 1556 1563 +call 1565 pith_cstring_release void 1 1555 +strref 1566 m9s204 call 1567 pith_list_new_default list 0 -load 1568 tid_float +load 1568 tid_int call 1569 pith_list_push_value void 2 1567 1568 -load 1570 tid_float -call 1571 checker_builtins_fix_builtin_binding void 3 1566 1567 1570 -call 1572 pith_cstring_release void 1 1566 -strref 1573 m9s197 -call 1574 pith_list_new_default list 0 -load 1575 tid_float -call 1576 pith_list_push_value void 2 1574 1575 +load 1570 tid_string +call 1571 pith_list_push_value void 2 1567 1570 +load 1572 tid_string +call 1573 checker_builtins_fix_builtin_binding void 3 1566 1567 1572 +call 1574 pith_cstring_release void 1 1566 +strref 1575 m9s203 +call 1576 pith_list_new_default list 0 load 1577 tid_float -call 1578 pith_list_push_value void 2 1574 1577 +call 1578 pith_list_push_value void 2 1576 1577 load 1579 tid_float -call 1580 checker_builtins_fix_builtin_binding void 3 1573 1574 1579 -call 1581 pith_cstring_release void 1 1573 -strref 1582 m9s196 +call 1580 checker_builtins_fix_builtin_binding void 3 1575 1576 1579 +call 1581 pith_cstring_release void 1 1575 +strref 1582 m9s202 call 1583 pith_list_new_default list 0 load 1584 tid_float call 1585 pith_list_push_value void 2 1583 1584 -load 1586 tid_int -call 1587 pith_list_push_value void 2 1583 1586 -load 1588 tid_string -call 1589 checker_builtins_fix_builtin_binding void 3 1582 1583 1588 -call 1590 pith_cstring_release void 1 1582 -strref 1591 m9s195 -call 1592 pith_list_new_default list 0 -load 1593 tid_string -call 1594 pith_list_push_value void 2 1592 1593 -load 1595 tid_void -call 1596 checker_builtins_fix_builtin_binding void 3 1591 1592 1595 -call 1597 pith_cstring_release void 1 1591 -strref 1598 m9s194 -call 1599 pith_list_new_default list 0 -load 1600 tid_string -call 1601 pith_list_push_value void 2 1599 1600 -load 1602 tid_void -call 1603 checker_builtins_fix_builtin_binding void 3 1598 1599 1602 -call 1604 pith_cstring_release void 1 1598 -strref 1605 m9s193 -call 1606 pith_list_new_default list 0 -load 1607 tid_string -call 1608 pith_list_push_value void 2 1606 1607 -load 1609 tid_void -call 1610 checker_builtins_fix_builtin_binding void 3 1605 1606 1609 -call 1611 pith_cstring_release void 1 1605 -strref 1612 m9s192 +load 1586 tid_float +call 1587 checker_builtins_fix_builtin_binding void 3 1582 1583 1586 +call 1588 pith_cstring_release void 1 1582 +strref 1589 m9s201 +call 1590 pith_list_new_default list 0 +load 1591 tid_float +call 1592 pith_list_push_value void 2 1590 1591 +load 1593 tid_float +call 1594 checker_builtins_fix_builtin_binding void 3 1589 1590 1593 +call 1595 pith_cstring_release void 1 1589 +strref 1596 m9s200 +call 1597 pith_list_new_default list 0 +load 1598 tid_float +call 1599 pith_list_push_value void 2 1597 1598 +load 1600 tid_float +call 1601 checker_builtins_fix_builtin_binding void 3 1596 1597 1600 +call 1602 pith_cstring_release void 1 1596 +strref 1603 m9s199 +call 1604 pith_list_new_default list 0 +load 1605 tid_float +call 1606 pith_list_push_value void 2 1604 1605 +load 1607 tid_float +call 1608 pith_list_push_value void 2 1604 1607 +load 1609 tid_float +call 1610 checker_builtins_fix_builtin_binding void 3 1603 1604 1609 +call 1611 pith_cstring_release void 1 1603 +strref 1612 m9s198 call 1613 pith_list_new_default list 0 -load 1614 tid_string +load 1614 tid_float call 1615 pith_list_push_value void 2 1613 1614 load 1616 tid_int -call 1617 checker_builtins_fix_builtin_binding void 3 1612 1613 1616 -call 1618 pith_cstring_release void 1 1612 -strref 1619 m9s191 -call 1620 pith_list_new_default list 0 -load 1621 tid_string -call 1622 pith_list_push_value void 2 1620 1621 -load 1623 tid_int -call 1624 checker_builtins_fix_builtin_binding void 3 1619 1620 1623 -call 1625 pith_cstring_release void 1 1619 -strref 1626 m9s190 -call 1627 pith_list_new_default list 0 -load 1628 tid_string -call 1629 pith_list_push_value void 2 1627 1628 -load 1630 tid_bool -call 1631 checker_builtins_fix_builtin_binding void 3 1626 1627 1630 -call 1632 pith_cstring_release void 1 1626 -strref 1633 m9s189 -call 1634 pith_list_new_default list 0 -load 1635 tid_string -call 1636 pith_list_push_value void 2 1634 1635 -load 1637 tid_bool -call 1638 checker_builtins_fix_builtin_binding void 3 1633 1634 1637 -call 1639 pith_cstring_release void 1 1633 -strref 1640 m9s188 -call 1641 pith_list_new_default list 0 -load 1642 tid_string -call 1643 pith_list_push_value void 2 1641 1642 -load 1644 tid_bool -call 1645 checker_builtins_fix_builtin_binding void 3 1640 1641 1644 -call 1646 pith_cstring_release void 1 1640 -strref 1647 m9s187 -call 1648 pith_list_new_default list 0 -load 1649 tid_string -call 1650 pith_list_push_value void 2 1648 1649 -load 1651 tid_bool -call 1652 checker_builtins_fix_builtin_binding void 3 1647 1648 1651 -call 1653 pith_cstring_release void 1 1647 -strref 1654 m9s186 -call 1655 pith_list_new_default list 0 -load 1656 tid_string -call 1657 pith_list_push_value void 2 1655 1656 -load 1658 tid_bool -call 1659 checker_builtins_fix_builtin_binding void 3 1654 1655 1658 -call 1660 pith_cstring_release void 1 1654 -strref 1661 m9s185 -call 1662 pith_list_new_default list 0 -load 1663 tid_string -call 1664 pith_list_push_value void 2 1662 1663 -load 1665 tid_bool -call 1666 checker_builtins_fix_builtin_binding void 3 1661 1662 1665 -call 1667 pith_cstring_release void 1 1661 -strref 1668 m9s184 -call 1669 pith_list_new_default list 0 -load 1670 tid_string -call 1671 pith_list_push_value void 2 1669 1670 +call 1617 pith_list_push_value void 2 1613 1616 +load 1618 tid_string +call 1619 checker_builtins_fix_builtin_binding void 3 1612 1613 1618 +call 1620 pith_cstring_release void 1 1612 +strref 1621 m9s197 +call 1622 pith_list_new_default list 0 +load 1623 tid_string +call 1624 pith_list_push_value void 2 1622 1623 +load 1625 tid_void +call 1626 checker_builtins_fix_builtin_binding void 3 1621 1622 1625 +call 1627 pith_cstring_release void 1 1621 +strref 1628 m9s196 +call 1629 pith_list_new_default list 0 +load 1630 tid_string +call 1631 pith_list_push_value void 2 1629 1630 +load 1632 tid_void +call 1633 checker_builtins_fix_builtin_binding void 3 1628 1629 1632 +call 1634 pith_cstring_release void 1 1628 +strref 1635 m9s195 +call 1636 pith_list_new_default list 0 +load 1637 tid_string +call 1638 pith_list_push_value void 2 1636 1637 +load 1639 tid_void +call 1640 checker_builtins_fix_builtin_binding void 3 1635 1636 1639 +call 1641 pith_cstring_release void 1 1635 +strref 1642 m9s194 +call 1643 pith_list_new_default list 0 +load 1644 tid_string +call 1645 pith_list_push_value void 2 1643 1644 +load 1646 tid_int +call 1647 checker_builtins_fix_builtin_binding void 3 1642 1643 1646 +call 1648 pith_cstring_release void 1 1642 +strref 1649 m9s193 +call 1650 pith_list_new_default list 0 +load 1651 tid_string +call 1652 pith_list_push_value void 2 1650 1651 +load 1653 tid_int +call 1654 checker_builtins_fix_builtin_binding void 3 1649 1650 1653 +call 1655 pith_cstring_release void 1 1649 +strref 1656 m9s192 +call 1657 pith_list_new_default list 0 +load 1658 tid_string +call 1659 pith_list_push_value void 2 1657 1658 +load 1660 tid_bool +call 1661 checker_builtins_fix_builtin_binding void 3 1656 1657 1660 +call 1662 pith_cstring_release void 1 1656 +strref 1663 m9s191 +call 1664 pith_list_new_default list 0 +load 1665 tid_string +call 1666 pith_list_push_value void 2 1664 1665 +load 1667 tid_bool +call 1668 checker_builtins_fix_builtin_binding void 3 1663 1664 1667 +call 1669 pith_cstring_release void 1 1663 +strref 1670 m9s190 +call 1671 pith_list_new_default list 0 load 1672 tid_string -call 1673 checker_builtins_fix_builtin_binding void 3 1668 1669 1672 -call 1674 pith_cstring_release void 1 1668 -strref 1675 m9s183 -call 1676 pith_list_new_default list 0 -load 1677 tid_string -call 1678 pith_list_push_value void 2 1676 1677 -load 1679 opt_string -call 1680 checker_builtins_fix_builtin_binding void 3 1675 1676 1679 -call 1681 pith_cstring_release void 1 1675 -strref 1682 m9s182 -call 1683 pith_list_new_default list 0 -load 1684 tid_string -call 1685 pith_list_push_value void 2 1683 1684 -load 1686 tid_int -call 1687 checker_builtins_fix_builtin_binding void 3 1682 1683 1686 -call 1688 pith_cstring_release void 1 1682 -strref 1689 m9s181 -call 1690 pith_list_new_default list 0 -load 1691 tid_string -call 1692 pith_list_push_value void 2 1690 1691 -load 1693 list_string -call 1694 checker_builtins_fix_builtin_binding void 3 1689 1690 1693 -call 1695 pith_cstring_release void 1 1689 -strref 1696 m9s180 -call 1697 pith_list_new_default list 0 -load 1698 tid_string -call 1699 checker_builtins_fix_builtin_binding void 3 1696 1697 1698 -call 1700 pith_cstring_release void 1 1696 -strref 1701 m9s179 -call 1702 pith_list_new_default list 0 -load 1703 tid_string -call 1704 checker_builtins_fix_builtin_binding void 3 1701 1702 1703 -call 1705 pith_cstring_release void 1 1701 -strref 1706 m9s178 -call 1707 pith_list_new_default list 0 -load 1708 tid_string -call 1709 checker_builtins_fix_builtin_binding void 3 1706 1707 1708 -call 1710 pith_cstring_release void 1 1706 -strref 1711 m9s177 -call 1712 pith_list_new_default list 0 -load 1713 tid_string -call 1714 checker_builtins_fix_builtin_binding void 3 1711 1712 1713 -call 1715 pith_cstring_release void 1 1711 -strref 1716 m9s176 -call 1717 pith_list_new_default list 0 -load 1718 tid_string -call 1719 pith_list_push_value void 2 1717 1718 -load 1720 tid_bool -call 1721 checker_builtins_fix_builtin_binding void 3 1716 1717 1720 -call 1722 pith_cstring_release void 1 1716 -strref 1723 m9s175 -call 1724 pith_list_new_default list 0 -load 1725 tid_string -call 1726 pith_list_push_value void 2 1724 1725 -load 1727 tid_bool -call 1728 checker_builtins_fix_builtin_binding void 3 1723 1724 1727 -call 1729 pith_cstring_release void 1 1723 -strref 1730 m9s174 -call 1731 pith_list_new_default list 0 -load 1732 tid_string -call 1733 pith_list_push_value void 2 1731 1732 -load 1734 int_result -call 1735 checker_builtins_fix_builtin_binding void 3 1730 1731 1734 -call 1736 pith_cstring_release void 1 1730 -strref 1737 m9s173 -call 1738 pith_list_new_default list 0 -load 1739 tid_string -call 1740 pith_list_push_value void 2 1738 1739 -load 1741 float_result -call 1742 checker_builtins_fix_builtin_binding void 3 1737 1738 1741 -call 1743 pith_cstring_release void 1 1737 -strref 1744 m9s172 -call 1745 pith_list_new_default list 0 -load 1746 tid_string -call 1747 pith_list_push_value void 2 1745 1746 -load 1748 tid_bytes -call 1749 checker_builtins_fix_builtin_binding void 3 1744 1745 1748 -call 1750 pith_cstring_release void 1 1744 -strref 1751 m9s171 -call 1752 pith_list_new_default list 0 -load 1753 tid_string -call 1754 pith_list_push_value void 2 1752 1753 -load 1755 str_result -call 1756 checker_builtins_fix_builtin_binding void 3 1751 1752 1755 -call 1757 pith_cstring_release void 1 1751 -strref 1758 m9s170 -call 1759 pith_list_new_default list 0 -load 1760 tid_string -call 1761 pith_list_push_value void 2 1759 1760 -load 1762 str_result -call 1763 checker_builtins_fix_builtin_binding void 3 1758 1759 1762 -call 1764 pith_cstring_release void 1 1758 -strref 1765 m9s169 -call 1766 pith_list_new_default list 0 -load 1767 tid_string -call 1768 pith_list_push_value void 2 1766 1767 -load 1769 str_result -call 1770 checker_builtins_fix_builtin_binding void 3 1765 1766 1769 -call 1771 pith_cstring_release void 1 1765 -strref 1772 m9s168 -call 1773 pith_list_new_default list 0 -load 1774 tid_string -call 1775 pith_list_push_value void 2 1773 1774 -load 1776 bytes_result -call 1777 checker_builtins_fix_builtin_binding void 3 1772 1773 1776 -call 1778 pith_cstring_release void 1 1772 -strref 1779 m9s167 -call 1780 pith_list_new_default list 0 -load 1781 tid_string -call 1782 pith_list_push_value void 2 1780 1781 -load 1783 bytes_result -call 1784 checker_builtins_fix_builtin_binding void 3 1779 1780 1783 -call 1785 pith_cstring_release void 1 1779 -strref 1786 m9s166 -call 1787 pith_list_new_default list 0 -load 1788 tid_string -call 1789 pith_list_push_value void 2 1787 1788 -load 1790 bytes_result -call 1791 checker_builtins_fix_builtin_binding void 3 1786 1787 1790 -call 1792 pith_cstring_release void 1 1786 -strref 1793 m9s165 -call 1794 pith_list_new_default list 0 -load 1795 tid_string -call 1796 pith_list_push_value void 2 1794 1795 -load 1797 int_result -call 1798 checker_builtins_fix_builtin_binding void 3 1793 1794 1797 -call 1799 pith_cstring_release void 1 1793 -strref 1800 m9s164 -call 1801 pith_list_new_default list 0 -load 1802 tid_string -call 1803 pith_list_push_value void 2 1801 1802 -load 1804 int_result -call 1805 checker_builtins_fix_builtin_binding void 3 1800 1801 1804 -call 1806 pith_cstring_release void 1 1800 -strref 1807 m9s163 -call 1808 pith_list_new_default list 0 -load 1809 tid_string -call 1810 pith_list_push_value void 2 1808 1809 -load 1811 int_result -call 1812 checker_builtins_fix_builtin_binding void 3 1807 1808 1811 -call 1813 pith_cstring_release void 1 1807 -strref 1814 m9s162 -call 1815 pith_list_new_default list 0 -load 1816 tid_string -call 1817 pith_list_push_value void 2 1815 1816 +call 1673 pith_list_push_value void 2 1671 1672 +load 1674 tid_bool +call 1675 checker_builtins_fix_builtin_binding void 3 1670 1671 1674 +call 1676 pith_cstring_release void 1 1670 +strref 1677 m9s189 +call 1678 pith_list_new_default list 0 +load 1679 tid_string +call 1680 pith_list_push_value void 2 1678 1679 +load 1681 tid_bool +call 1682 checker_builtins_fix_builtin_binding void 3 1677 1678 1681 +call 1683 pith_cstring_release void 1 1677 +strref 1684 m9s188 +call 1685 pith_list_new_default list 0 +load 1686 tid_string +call 1687 pith_list_push_value void 2 1685 1686 +load 1688 tid_bool +call 1689 checker_builtins_fix_builtin_binding void 3 1684 1685 1688 +call 1690 pith_cstring_release void 1 1684 +strref 1691 m9s187 +call 1692 pith_list_new_default list 0 +load 1693 tid_string +call 1694 pith_list_push_value void 2 1692 1693 +load 1695 tid_bool +call 1696 checker_builtins_fix_builtin_binding void 3 1691 1692 1695 +call 1697 pith_cstring_release void 1 1691 +strref 1698 m9s186 +call 1699 pith_list_new_default list 0 +load 1700 tid_string +call 1701 pith_list_push_value void 2 1699 1700 +load 1702 tid_string +call 1703 checker_builtins_fix_builtin_binding void 3 1698 1699 1702 +call 1704 pith_cstring_release void 1 1698 +strref 1705 m9s185 +call 1706 pith_list_new_default list 0 +load 1707 tid_string +call 1708 pith_list_push_value void 2 1706 1707 +load 1709 opt_string +call 1710 checker_builtins_fix_builtin_binding void 3 1705 1706 1709 +call 1711 pith_cstring_release void 1 1705 +strref 1712 m9s184 +call 1713 pith_list_new_default list 0 +load 1714 tid_string +call 1715 pith_list_push_value void 2 1713 1714 +load 1716 tid_int +call 1717 checker_builtins_fix_builtin_binding void 3 1712 1713 1716 +call 1718 pith_cstring_release void 1 1712 +strref 1719 m9s183 +call 1720 pith_list_new_default list 0 +load 1721 tid_string +call 1722 pith_list_push_value void 2 1720 1721 +load 1723 list_string +call 1724 checker_builtins_fix_builtin_binding void 3 1719 1720 1723 +call 1725 pith_cstring_release void 1 1719 +strref 1726 m9s182 +call 1727 pith_list_new_default list 0 +load 1728 tid_string +call 1729 checker_builtins_fix_builtin_binding void 3 1726 1727 1728 +call 1730 pith_cstring_release void 1 1726 +strref 1731 m9s181 +call 1732 pith_list_new_default list 0 +load 1733 tid_string +call 1734 checker_builtins_fix_builtin_binding void 3 1731 1732 1733 +call 1735 pith_cstring_release void 1 1731 +strref 1736 m9s180 +call 1737 pith_list_new_default list 0 +load 1738 tid_string +call 1739 checker_builtins_fix_builtin_binding void 3 1736 1737 1738 +call 1740 pith_cstring_release void 1 1736 +strref 1741 m9s179 +call 1742 pith_list_new_default list 0 +load 1743 tid_string +call 1744 checker_builtins_fix_builtin_binding void 3 1741 1742 1743 +call 1745 pith_cstring_release void 1 1741 +strref 1746 m9s178 +call 1747 pith_list_new_default list 0 +load 1748 tid_string +call 1749 pith_list_push_value void 2 1747 1748 +load 1750 tid_bool +call 1751 checker_builtins_fix_builtin_binding void 3 1746 1747 1750 +call 1752 pith_cstring_release void 1 1746 +strref 1753 m9s177 +call 1754 pith_list_new_default list 0 +load 1755 tid_string +call 1756 pith_list_push_value void 2 1754 1755 +load 1757 tid_bool +call 1758 checker_builtins_fix_builtin_binding void 3 1753 1754 1757 +call 1759 pith_cstring_release void 1 1753 +strref 1760 m9s176 +call 1761 pith_list_new_default list 0 +load 1762 tid_string +call 1763 pith_list_push_value void 2 1761 1762 +load 1764 int_result +call 1765 checker_builtins_fix_builtin_binding void 3 1760 1761 1764 +call 1766 pith_cstring_release void 1 1760 +strref 1767 m9s175 +call 1768 pith_list_new_default list 0 +load 1769 tid_string +call 1770 pith_list_push_value void 2 1768 1769 +load 1771 float_result +call 1772 checker_builtins_fix_builtin_binding void 3 1767 1768 1771 +call 1773 pith_cstring_release void 1 1767 +strref 1774 m9s174 +call 1775 pith_list_new_default list 0 +load 1776 tid_string +call 1777 pith_list_push_value void 2 1775 1776 +load 1778 tid_bytes +call 1779 checker_builtins_fix_builtin_binding void 3 1774 1775 1778 +call 1780 pith_cstring_release void 1 1774 +strref 1781 m9s173 +call 1782 pith_list_new_default list 0 +load 1783 tid_string +call 1784 pith_list_push_value void 2 1782 1783 +load 1785 str_result +call 1786 checker_builtins_fix_builtin_binding void 3 1781 1782 1785 +call 1787 pith_cstring_release void 1 1781 +strref 1788 m9s172 +call 1789 pith_list_new_default list 0 +load 1790 tid_string +call 1791 pith_list_push_value void 2 1789 1790 +load 1792 str_result +call 1793 checker_builtins_fix_builtin_binding void 3 1788 1789 1792 +call 1794 pith_cstring_release void 1 1788 +strref 1795 m9s171 +call 1796 pith_list_new_default list 0 +load 1797 tid_string +call 1798 pith_list_push_value void 2 1796 1797 +load 1799 str_result +call 1800 checker_builtins_fix_builtin_binding void 3 1795 1796 1799 +call 1801 pith_cstring_release void 1 1795 +strref 1802 m9s170 +call 1803 pith_list_new_default list 0 +load 1804 tid_string +call 1805 pith_list_push_value void 2 1803 1804 +load 1806 bytes_result +call 1807 checker_builtins_fix_builtin_binding void 3 1802 1803 1806 +call 1808 pith_cstring_release void 1 1802 +strref 1809 m9s169 +call 1810 pith_list_new_default list 0 +load 1811 tid_string +call 1812 pith_list_push_value void 2 1810 1811 +load 1813 bytes_result +call 1814 checker_builtins_fix_builtin_binding void 3 1809 1810 1813 +call 1815 pith_cstring_release void 1 1809 +strref 1816 m9s168 +call 1817 pith_list_new_default list 0 load 1818 tid_string -call 1819 pith_list_push_value void 2 1815 1818 -load 1820 tid_bool -call 1821 checker_builtins_fix_builtin_binding void 3 1814 1815 1820 -call 1822 pith_cstring_release void 1 1814 -strref 1823 m9s161 +call 1819 pith_list_push_value void 2 1817 1818 +load 1820 bytes_result +call 1821 checker_builtins_fix_builtin_binding void 3 1816 1817 1820 +call 1822 pith_cstring_release void 1 1816 +strref 1823 m9s167 call 1824 pith_list_new_default list 0 load 1825 tid_string call 1826 pith_list_push_value void 2 1824 1825 -load 1827 tid_string -call 1828 pith_list_push_value void 2 1824 1827 -load 1829 tid_bool -call 1830 checker_builtins_fix_builtin_binding void 3 1823 1824 1829 -call 1831 pith_cstring_release void 1 1823 -strref 1832 m9s160 -call 1833 pith_list_new_default list 0 -load 1834 tid_string -call 1835 pith_list_push_value void 2 1833 1834 -load 1836 tid_string -call 1837 pith_list_push_value void 2 1833 1836 -load 1838 bool_result -call 1839 checker_builtins_fix_builtin_binding void 3 1832 1833 1838 -call 1840 pith_cstring_release void 1 1832 -strref 1841 m9s159 -call 1842 pith_list_new_default list 0 -load 1843 tid_string -call 1844 pith_list_push_value void 2 1842 1843 -load 1845 tid_string -call 1846 pith_list_push_value void 2 1842 1845 -load 1847 bool_result -call 1848 checker_builtins_fix_builtin_binding void 3 1841 1842 1847 -call 1849 pith_cstring_release void 1 1841 -strref 1850 m9s158 -call 1851 pith_list_new_default list 0 -load 1852 tid_string -call 1853 pith_list_push_value void 2 1851 1852 -load 1854 tid_bytes -call 1855 pith_list_push_value void 2 1851 1854 -load 1856 bool_result -call 1857 checker_builtins_fix_builtin_binding void 3 1850 1851 1856 -call 1858 pith_cstring_release void 1 1850 -strref 1859 m9s157 -call 1860 pith_list_new_default list 0 -load 1861 tid_string -call 1862 pith_list_push_value void 2 1860 1861 -load 1863 tid_bytes -call 1864 pith_list_push_value void 2 1860 1863 -load 1865 bool_result -call 1866 checker_builtins_fix_builtin_binding void 3 1859 1860 1865 -call 1867 pith_cstring_release void 1 1859 -strref 1868 m9s156 -call 1869 pith_list_new_default list 0 -load 1870 tid_bytes -call 1871 pith_list_push_value void 2 1869 1870 -load 1872 tid_bytes -call 1873 pith_list_push_value void 2 1869 1872 -load 1874 tid_bool -call 1875 checker_builtins_fix_builtin_binding void 3 1868 1869 1874 -call 1876 pith_cstring_release void 1 1868 -strref 1877 m9s155 -call 1878 pith_list_new_default list 0 -load 1879 tid_bytes -call 1880 pith_list_push_value void 2 1878 1879 -load 1881 tid_bytes -call 1882 pith_list_push_value void 2 1878 1881 -load 1883 tid_bytes -call 1884 checker_builtins_fix_builtin_binding void 3 1877 1878 1883 -call 1885 pith_cstring_release void 1 1877 -strref 1886 m9s154 -call 1887 pith_list_new_default list 0 -load 1888 tid_bytes -call 1889 pith_list_push_value void 2 1887 1888 -load 1890 tid_int -call 1891 checker_builtins_fix_builtin_binding void 3 1886 1887 1890 -call 1892 pith_cstring_release void 1 1886 -strref 1893 m9s153 -call 1894 pith_list_new_default list 0 -load 1895 tid_bytes -call 1896 pith_list_push_value void 2 1894 1895 -load 1897 tid_bool -call 1898 checker_builtins_fix_builtin_binding void 3 1893 1894 1897 -call 1899 pith_cstring_release void 1 1893 -strref 1900 m9s152 -call 1901 pith_list_new_default list 0 +load 1827 int_result +call 1828 checker_builtins_fix_builtin_binding void 3 1823 1824 1827 +call 1829 pith_cstring_release void 1 1823 +strref 1830 m9s166 +call 1831 pith_list_new_default list 0 +load 1832 tid_string +call 1833 pith_list_push_value void 2 1831 1832 +load 1834 int_result +call 1835 checker_builtins_fix_builtin_binding void 3 1830 1831 1834 +call 1836 pith_cstring_release void 1 1830 +strref 1837 m9s165 +call 1838 pith_list_new_default list 0 +load 1839 tid_string +call 1840 pith_list_push_value void 2 1838 1839 +load 1841 int_result +call 1842 checker_builtins_fix_builtin_binding void 3 1837 1838 1841 +call 1843 pith_cstring_release void 1 1837 +strref 1844 m9s164 +call 1845 pith_list_new_default list 0 +load 1846 tid_string +call 1847 pith_list_push_value void 2 1845 1846 +load 1848 tid_string +call 1849 pith_list_push_value void 2 1845 1848 +load 1850 tid_bool +call 1851 checker_builtins_fix_builtin_binding void 3 1844 1845 1850 +call 1852 pith_cstring_release void 1 1844 +strref 1853 m9s163 +call 1854 pith_list_new_default list 0 +load 1855 tid_string +call 1856 pith_list_push_value void 2 1854 1855 +load 1857 tid_string +call 1858 pith_list_push_value void 2 1854 1857 +load 1859 tid_bool +call 1860 checker_builtins_fix_builtin_binding void 3 1853 1854 1859 +call 1861 pith_cstring_release void 1 1853 +strref 1862 m9s162 +call 1863 pith_list_new_default list 0 +load 1864 tid_string +call 1865 pith_list_push_value void 2 1863 1864 +load 1866 tid_string +call 1867 pith_list_push_value void 2 1863 1866 +load 1868 bool_result +call 1869 checker_builtins_fix_builtin_binding void 3 1862 1863 1868 +call 1870 pith_cstring_release void 1 1862 +strref 1871 m9s161 +call 1872 pith_list_new_default list 0 +load 1873 tid_string +call 1874 pith_list_push_value void 2 1872 1873 +load 1875 tid_string +call 1876 pith_list_push_value void 2 1872 1875 +load 1877 bool_result +call 1878 checker_builtins_fix_builtin_binding void 3 1871 1872 1877 +call 1879 pith_cstring_release void 1 1871 +strref 1880 m9s160 +call 1881 pith_list_new_default list 0 +load 1882 tid_string +call 1883 pith_list_push_value void 2 1881 1882 +load 1884 tid_bytes +call 1885 pith_list_push_value void 2 1881 1884 +load 1886 bool_result +call 1887 checker_builtins_fix_builtin_binding void 3 1880 1881 1886 +call 1888 pith_cstring_release void 1 1880 +strref 1889 m9s159 +call 1890 pith_list_new_default list 0 +load 1891 tid_string +call 1892 pith_list_push_value void 2 1890 1891 +load 1893 tid_bytes +call 1894 pith_list_push_value void 2 1890 1893 +load 1895 bool_result +call 1896 checker_builtins_fix_builtin_binding void 3 1889 1890 1895 +call 1897 pith_cstring_release void 1 1889 +strref 1898 m9s158 +call 1899 pith_list_new_default list 0 +load 1900 tid_bytes +call 1901 pith_list_push_value void 2 1899 1900 load 1902 tid_bytes -call 1903 pith_list_push_value void 2 1901 1902 -load 1904 tid_int -call 1905 pith_list_push_value void 2 1901 1904 -load 1906 tid_int -call 1907 checker_builtins_fix_builtin_binding void 3 1900 1901 1906 -call 1908 pith_cstring_release void 1 1900 -strref 1909 m9s151 -call 1910 pith_list_new_default list 0 +call 1903 pith_list_push_value void 2 1899 1902 +load 1904 tid_bool +call 1905 checker_builtins_fix_builtin_binding void 3 1898 1899 1904 +call 1906 pith_cstring_release void 1 1898 +strref 1907 m9s157 +call 1908 pith_list_new_default list 0 +load 1909 tid_bytes +call 1910 pith_list_push_value void 2 1908 1909 load 1911 tid_bytes -call 1912 pith_list_push_value void 2 1910 1911 -load 1913 tid_int -call 1914 pith_list_push_value void 2 1910 1913 -load 1915 tid_int -call 1916 pith_list_push_value void 2 1910 1915 -load 1917 tid_bytes -call 1918 checker_builtins_fix_builtin_binding void 3 1909 1910 1917 -call 1919 pith_cstring_release void 1 1909 -strref 1920 m9s150 -call 1921 pith_list_new_default list 0 -load 1922 tid_bytes -call 1923 pith_list_push_value void 2 1921 1922 -load 1924 str_result -call 1925 checker_builtins_fix_builtin_binding void 3 1920 1921 1924 -call 1926 pith_cstring_release void 1 1920 -strref 1927 m9s149 -call 1928 pith_list_new_default list 0 -load 1929 tid_bytes -call 1930 pith_list_push_value void 2 1928 1929 -load 1931 tid_int -call 1932 pith_list_push_value void 2 1928 1931 -load 1933 tid_int -call 1934 pith_list_push_value void 2 1928 1933 -load 1935 str_result -call 1936 checker_builtins_fix_builtin_binding void 3 1927 1928 1935 -call 1937 pith_cstring_release void 1 1927 -strref 1938 m9s148 -call 1939 pith_list_new_default list 0 -load 1940 tid_bytes -call 1941 pith_list_push_value void 2 1939 1940 -load 1942 tid_bytes -call 1943 pith_list_push_value void 2 1939 1942 -load 1944 tid_bool -call 1945 checker_builtins_fix_builtin_binding void 3 1938 1939 1944 -call 1946 pith_cstring_release void 1 1938 -strref 1947 m9s147 -call 1948 pith_list_new_default list 0 -load 1949 tid_int -call 1950 pith_list_push_value void 2 1948 1949 -load 1951 tid_bytes -call 1952 checker_builtins_fix_builtin_binding void 3 1947 1948 1951 -call 1953 pith_cstring_release void 1 1947 -strref 1954 m9s146 -call 1955 pith_list_new_default list 0 -load 1956 int_result -call 1957 checker_builtins_fix_builtin_binding void 3 1954 1955 1956 -call 1958 pith_cstring_release void 1 1954 -strref 1959 m9s145 -call 1960 pith_list_new_default list 0 -load 1961 int_result -call 1962 checker_builtins_fix_builtin_binding void 3 1959 1960 1961 -call 1963 pith_cstring_release void 1 1959 -strref 1964 m9s144 -call 1965 pith_list_new_default list 0 -load 1966 tid_int -call 1967 pith_list_push_value void 2 1965 1966 -load 1968 bytes_result -call 1969 checker_builtins_fix_builtin_binding void 3 1964 1965 1968 -call 1970 pith_cstring_release void 1 1964 -strref 1971 m9s143 -call 1972 pith_list_new_default list 0 -load 1973 tid_int -call 1974 pith_list_push_value void 2 1972 1973 -load 1975 tid_bytes -call 1976 pith_list_push_value void 2 1972 1975 -load 1977 bytes_result -call 1978 checker_builtins_fix_builtin_binding void 3 1971 1972 1977 -call 1979 pith_cstring_release void 1 1971 -strref 1980 m9s142 -call 1981 pith_list_new_default list 0 -load 1982 tid_int -call 1983 pith_list_push_value void 2 1981 1982 -load 1984 tid_void -call 1985 checker_builtins_fix_builtin_binding void 3 1980 1981 1984 -call 1986 pith_cstring_release void 1 1980 -strref 1987 m9s141 -call 1988 pith_list_new_default list 0 -load 1989 tid_bytes -call 1990 pith_list_push_value void 2 1988 1989 -load 1991 tid_bytes -call 1992 pith_list_push_value void 2 1988 1991 -load 1993 tid_bytes -call 1994 pith_list_push_value void 2 1988 1993 -load 1995 tid_bytes -call 1996 pith_list_push_value void 2 1988 1995 -load 1997 bytes_result -call 1998 checker_builtins_fix_builtin_binding void 3 1987 1988 1997 -call 1999 pith_cstring_release void 1 1987 -strref 2000 m9s140 -call 2001 pith_list_new_default list 0 -load 2002 tid_bytes -call 2003 pith_list_push_value void 2 2001 2002 -load 2004 tid_bytes -call 2005 pith_list_push_value void 2 2001 2004 -load 2006 tid_bytes -call 2007 pith_list_push_value void 2 2001 2006 -load 2008 tid_bytes -call 2009 pith_list_push_value void 2 2001 2008 -load 2010 bytes_result -call 2011 checker_builtins_fix_builtin_binding void 3 2000 2001 2010 -call 2012 pith_cstring_release void 1 2000 -strref 2013 m9s139 -call 2014 pith_list_new_default list 0 -load 2015 tid_bytes -call 2016 pith_list_push_value void 2 2014 2015 -load 2017 tid_bytes -call 2018 pith_list_push_value void 2 2014 2017 +call 1912 pith_list_push_value void 2 1908 1911 +load 1913 tid_bytes +call 1914 checker_builtins_fix_builtin_binding void 3 1907 1908 1913 +call 1915 pith_cstring_release void 1 1907 +strref 1916 m9s156 +call 1917 pith_list_new_default list 0 +load 1918 tid_bytes +call 1919 pith_list_push_value void 2 1917 1918 +load 1920 tid_int +call 1921 checker_builtins_fix_builtin_binding void 3 1916 1917 1920 +call 1922 pith_cstring_release void 1 1916 +strref 1923 m9s155 +call 1924 pith_list_new_default list 0 +load 1925 tid_bytes +call 1926 pith_list_push_value void 2 1924 1925 +load 1927 tid_bool +call 1928 checker_builtins_fix_builtin_binding void 3 1923 1924 1927 +call 1929 pith_cstring_release void 1 1923 +strref 1930 m9s154 +call 1931 pith_list_new_default list 0 +load 1932 tid_bytes +call 1933 pith_list_push_value void 2 1931 1932 +load 1934 tid_int +call 1935 pith_list_push_value void 2 1931 1934 +load 1936 tid_int +call 1937 checker_builtins_fix_builtin_binding void 3 1930 1931 1936 +call 1938 pith_cstring_release void 1 1930 +strref 1939 m9s153 +call 1940 pith_list_new_default list 0 +load 1941 tid_bytes +call 1942 pith_list_push_value void 2 1940 1941 +load 1943 tid_int +call 1944 pith_list_push_value void 2 1940 1943 +load 1945 tid_int +call 1946 pith_list_push_value void 2 1940 1945 +load 1947 tid_bytes +call 1948 checker_builtins_fix_builtin_binding void 3 1939 1940 1947 +call 1949 pith_cstring_release void 1 1939 +strref 1950 m9s152 +call 1951 pith_list_new_default list 0 +load 1952 tid_bytes +call 1953 pith_list_push_value void 2 1951 1952 +load 1954 str_result +call 1955 checker_builtins_fix_builtin_binding void 3 1950 1951 1954 +call 1956 pith_cstring_release void 1 1950 +strref 1957 m9s151 +call 1958 pith_list_new_default list 0 +load 1959 tid_bytes +call 1960 pith_list_push_value void 2 1958 1959 +load 1961 tid_int +call 1962 pith_list_push_value void 2 1958 1961 +load 1963 tid_int +call 1964 pith_list_push_value void 2 1958 1963 +load 1965 str_result +call 1966 checker_builtins_fix_builtin_binding void 3 1957 1958 1965 +call 1967 pith_cstring_release void 1 1957 +strref 1968 m9s150 +call 1969 pith_list_new_default list 0 +load 1970 tid_bytes +call 1971 pith_list_push_value void 2 1969 1970 +load 1972 tid_bytes +call 1973 pith_list_push_value void 2 1969 1972 +load 1974 tid_bool +call 1975 checker_builtins_fix_builtin_binding void 3 1968 1969 1974 +call 1976 pith_cstring_release void 1 1968 +strref 1977 m9s149 +call 1978 pith_list_new_default list 0 +load 1979 tid_int +call 1980 pith_list_push_value void 2 1978 1979 +load 1981 tid_bytes +call 1982 checker_builtins_fix_builtin_binding void 3 1977 1978 1981 +call 1983 pith_cstring_release void 1 1977 +strref 1984 m9s148 +call 1985 pith_list_new_default list 0 +load 1986 int_result +call 1987 checker_builtins_fix_builtin_binding void 3 1984 1985 1986 +call 1988 pith_cstring_release void 1 1984 +strref 1989 m9s147 +call 1990 pith_list_new_default list 0 +load 1991 int_result +call 1992 checker_builtins_fix_builtin_binding void 3 1989 1990 1991 +call 1993 pith_cstring_release void 1 1989 +strref 1994 m9s146 +call 1995 pith_list_new_default list 0 +load 1996 tid_int +call 1997 pith_list_push_value void 2 1995 1996 +load 1998 bytes_result +call 1999 checker_builtins_fix_builtin_binding void 3 1994 1995 1998 +call 2000 pith_cstring_release void 1 1994 +strref 2001 m9s145 +call 2002 pith_list_new_default list 0 +load 2003 tid_int +call 2004 pith_list_push_value void 2 2002 2003 +load 2005 tid_bytes +call 2006 pith_list_push_value void 2 2002 2005 +load 2007 bytes_result +call 2008 checker_builtins_fix_builtin_binding void 3 2001 2002 2007 +call 2009 pith_cstring_release void 1 2001 +strref 2010 m9s144 +call 2011 pith_list_new_default list 0 +load 2012 tid_int +call 2013 pith_list_push_value void 2 2011 2012 +load 2014 tid_void +call 2015 checker_builtins_fix_builtin_binding void 3 2010 2011 2014 +call 2016 pith_cstring_release void 1 2010 +strref 2017 m9s143 +call 2018 pith_list_new_default list 0 load 2019 tid_bytes -call 2020 pith_list_push_value void 2 2014 2019 +call 2020 pith_list_push_value void 2 2018 2019 load 2021 tid_bytes -call 2022 pith_list_push_value void 2 2014 2021 -load 2023 bytes_result -call 2024 checker_builtins_fix_builtin_binding void 3 2013 2014 2023 -call 2025 pith_cstring_release void 1 2013 -strref 2026 m9s138 -call 2027 pith_list_new_default list 0 -load 2028 tid_bytes -call 2029 pith_list_push_value void 2 2027 2028 -load 2030 tid_bytes -call 2031 pith_list_push_value void 2 2027 2030 +call 2022 pith_list_push_value void 2 2018 2021 +load 2023 tid_bytes +call 2024 pith_list_push_value void 2 2018 2023 +load 2025 tid_bytes +call 2026 pith_list_push_value void 2 2018 2025 +load 2027 bytes_result +call 2028 checker_builtins_fix_builtin_binding void 3 2017 2018 2027 +call 2029 pith_cstring_release void 1 2017 +strref 2030 m9s142 +call 2031 pith_list_new_default list 0 load 2032 tid_bytes -call 2033 pith_list_push_value void 2 2027 2032 +call 2033 pith_list_push_value void 2 2031 2032 load 2034 tid_bytes -call 2035 pith_list_push_value void 2 2027 2034 -load 2036 bytes_result -call 2037 checker_builtins_fix_builtin_binding void 3 2026 2027 2036 -call 2038 pith_cstring_release void 1 2026 -strref 2039 m9s137 -call 2040 pith_list_new_default list 0 -load 2041 tid_bytes -call 2042 pith_list_push_value void 2 2040 2041 -load 2043 tid_bytes -call 2044 pith_list_push_value void 2 2040 2043 +call 2035 pith_list_push_value void 2 2031 2034 +load 2036 tid_bytes +call 2037 pith_list_push_value void 2 2031 2036 +load 2038 tid_bytes +call 2039 pith_list_push_value void 2 2031 2038 +load 2040 bytes_result +call 2041 checker_builtins_fix_builtin_binding void 3 2030 2031 2040 +call 2042 pith_cstring_release void 1 2030 +strref 2043 m9s141 +call 2044 pith_list_new_default list 0 load 2045 tid_bytes -call 2046 pith_list_push_value void 2 2040 2045 -load 2047 tid_bool -call 2048 checker_builtins_fix_builtin_binding void 3 2039 2040 2047 -call 2049 pith_cstring_release void 1 2039 -strref 2050 m9s136 -call 2051 pith_list_new_default list 0 -load 2052 tid_bytes -call 2053 pith_list_push_value void 2 2051 2052 -load 2054 tid_bytes -call 2055 pith_list_push_value void 2 2051 2054 -load 2056 tid_bytes -call 2057 pith_list_push_value void 2 2051 2056 -load 2058 tid_bool -call 2059 checker_builtins_fix_builtin_binding void 3 2050 2051 2058 -call 2060 pith_cstring_release void 1 2050 -strref 2061 m9s135 -call 2062 pith_list_new_default list 0 -load 2063 tid_bytes -call 2064 pith_list_push_value void 2 2062 2063 -load 2065 tid_bytes -call 2066 pith_list_push_value void 2 2062 2065 -load 2067 tid_bytes -call 2068 pith_list_push_value void 2 2062 2067 -load 2069 tid_bool -call 2070 checker_builtins_fix_builtin_binding void 3 2061 2062 2069 -call 2071 pith_cstring_release void 1 2061 -strref 2072 m9s134 -call 2073 pith_list_new_default list 0 -load 2074 tid_bytes -call 2075 pith_list_push_value void 2 2073 2074 -load 2076 tid_bytes -call 2077 pith_list_push_value void 2 2073 2076 -load 2078 tid_bytes -call 2079 pith_list_push_value void 2 2073 2078 -load 2080 tid_bool -call 2081 checker_builtins_fix_builtin_binding void 3 2072 2073 2080 -call 2082 pith_cstring_release void 1 2072 -strref 2083 m9s133 -call 2084 pith_list_new_default list 0 -load 2085 tid_bytes -call 2086 pith_list_push_value void 2 2084 2085 -load 2087 tid_bytes -call 2088 pith_list_push_value void 2 2084 2087 -load 2089 tid_bytes -call 2090 pith_list_push_value void 2 2084 2089 -load 2091 tid_bool -call 2092 checker_builtins_fix_builtin_binding void 3 2083 2084 2091 -call 2093 pith_cstring_release void 1 2083 -strref 2094 m9s132 -call 2095 pith_list_new_default list 0 -load 2096 tid_bytes -call 2097 pith_list_push_value void 2 2095 2096 -load 2098 tid_bytes -call 2099 pith_list_push_value void 2 2095 2098 -load 2100 tid_bytes -call 2101 pith_list_push_value void 2 2095 2100 -load 2102 tid_bool -call 2103 checker_builtins_fix_builtin_binding void 3 2094 2095 2102 -call 2104 pith_cstring_release void 1 2094 -strref 2105 m9s131 -call 2106 pith_list_new_default list 0 -load 2107 tid_bytes -call 2108 pith_list_push_value void 2 2106 2107 -load 2109 tid_bytes -call 2110 pith_list_push_value void 2 2106 2109 -load 2111 bytes_result -call 2112 checker_builtins_fix_builtin_binding void 3 2105 2106 2111 -call 2113 pith_cstring_release void 1 2105 -strref 2114 m9s130 -call 2115 pith_list_new_default list 0 -load 2116 tid_int -call 2117 checker_builtins_fix_builtin_binding void 3 2114 2115 2116 -call 2118 pith_cstring_release void 1 2114 -strref 2119 m9s129 -call 2120 pith_list_new_default list 0 -load 2121 tid_int -call 2122 pith_list_push_value void 2 2120 2121 -load 2123 tid_void -call 2124 checker_builtins_fix_builtin_binding void 3 2119 2120 2123 -call 2125 pith_cstring_release void 1 2119 -strref 2126 m9s128 -call 2127 pith_list_new_default list 0 -load 2128 tid_int -call 2129 pith_list_push_value void 2 2127 2128 +call 2046 pith_list_push_value void 2 2044 2045 +load 2047 tid_bytes +call 2048 pith_list_push_value void 2 2044 2047 +load 2049 tid_bytes +call 2050 pith_list_push_value void 2 2044 2049 +load 2051 tid_bytes +call 2052 pith_list_push_value void 2 2044 2051 +load 2053 bytes_result +call 2054 checker_builtins_fix_builtin_binding void 3 2043 2044 2053 +call 2055 pith_cstring_release void 1 2043 +strref 2056 m9s140 +call 2057 pith_list_new_default list 0 +load 2058 tid_bytes +call 2059 pith_list_push_value void 2 2057 2058 +load 2060 tid_bytes +call 2061 pith_list_push_value void 2 2057 2060 +load 2062 tid_bytes +call 2063 pith_list_push_value void 2 2057 2062 +load 2064 tid_bytes +call 2065 pith_list_push_value void 2 2057 2064 +load 2066 bytes_result +call 2067 checker_builtins_fix_builtin_binding void 3 2056 2057 2066 +call 2068 pith_cstring_release void 1 2056 +strref 2069 m9s139 +call 2070 pith_list_new_default list 0 +load 2071 tid_bytes +call 2072 pith_list_push_value void 2 2070 2071 +load 2073 tid_bytes +call 2074 pith_list_push_value void 2 2070 2073 +load 2075 tid_bytes +call 2076 pith_list_push_value void 2 2070 2075 +load 2077 tid_bool +call 2078 checker_builtins_fix_builtin_binding void 3 2069 2070 2077 +call 2079 pith_cstring_release void 1 2069 +strref 2080 m9s138 +call 2081 pith_list_new_default list 0 +load 2082 tid_bytes +call 2083 pith_list_push_value void 2 2081 2082 +load 2084 tid_bytes +call 2085 pith_list_push_value void 2 2081 2084 +load 2086 tid_bytes +call 2087 pith_list_push_value void 2 2081 2086 +load 2088 tid_bool +call 2089 checker_builtins_fix_builtin_binding void 3 2080 2081 2088 +call 2090 pith_cstring_release void 1 2080 +strref 2091 m9s137 +call 2092 pith_list_new_default list 0 +load 2093 tid_bytes +call 2094 pith_list_push_value void 2 2092 2093 +load 2095 tid_bytes +call 2096 pith_list_push_value void 2 2092 2095 +load 2097 tid_bytes +call 2098 pith_list_push_value void 2 2092 2097 +load 2099 tid_bool +call 2100 checker_builtins_fix_builtin_binding void 3 2091 2092 2099 +call 2101 pith_cstring_release void 1 2091 +strref 2102 m9s136 +call 2103 pith_list_new_default list 0 +load 2104 tid_bytes +call 2105 pith_list_push_value void 2 2103 2104 +load 2106 tid_bytes +call 2107 pith_list_push_value void 2 2103 2106 +load 2108 tid_bytes +call 2109 pith_list_push_value void 2 2103 2108 +load 2110 tid_bool +call 2111 checker_builtins_fix_builtin_binding void 3 2102 2103 2110 +call 2112 pith_cstring_release void 1 2102 +strref 2113 m9s135 +call 2114 pith_list_new_default list 0 +load 2115 tid_bytes +call 2116 pith_list_push_value void 2 2114 2115 +load 2117 tid_bytes +call 2118 pith_list_push_value void 2 2114 2117 +load 2119 tid_bytes +call 2120 pith_list_push_value void 2 2114 2119 +load 2121 tid_bool +call 2122 checker_builtins_fix_builtin_binding void 3 2113 2114 2121 +call 2123 pith_cstring_release void 1 2113 +strref 2124 m9s134 +call 2125 pith_list_new_default list 0 +load 2126 tid_bytes +call 2127 pith_list_push_value void 2 2125 2126 +load 2128 tid_bytes +call 2129 pith_list_push_value void 2 2125 2128 load 2130 tid_bytes -call 2131 checker_builtins_fix_builtin_binding void 3 2126 2127 2130 -call 2132 pith_cstring_release void 1 2126 -strref 2133 m9s127 -call 2134 pith_list_new_default list 0 -load 2135 tid_int -call 2136 pith_list_push_value void 2 2134 2135 -load 2137 tid_int -call 2138 checker_builtins_fix_builtin_binding void 3 2133 2134 2137 -call 2139 pith_cstring_release void 1 2133 -strref 2140 m9s126 -call 2141 pith_list_new_default list 0 -load 2142 tid_int -call 2143 pith_list_push_value void 2 2141 2142 -load 2144 tid_bytes -call 2145 pith_list_push_value void 2 2141 2144 -load 2146 int_result -call 2147 checker_builtins_fix_builtin_binding void 3 2140 2141 2146 -call 2148 pith_cstring_release void 1 2140 -strref 2149 m9s125 -call 2150 pith_list_new_default list 0 -load 2151 tid_int -call 2152 pith_list_push_value void 2 2150 2151 -load 2153 tid_string -call 2154 pith_list_push_value void 2 2150 2153 -load 2155 int_result -call 2156 checker_builtins_fix_builtin_binding void 3 2149 2150 2155 -call 2157 pith_cstring_release void 1 2149 -strref 2158 m9s124 -call 2159 pith_list_new_default list 0 -load 2160 tid_int -call 2161 pith_list_push_value void 2 2159 2160 -load 2162 tid_int -call 2163 pith_list_push_value void 2 2159 2162 -load 2164 int_result -call 2165 checker_builtins_fix_builtin_binding void 3 2158 2159 2164 -call 2166 pith_cstring_release void 1 2158 -strref 2167 m9s123 -call 2168 pith_list_new_default list 0 -load 2169 tid_int -call 2170 pith_list_push_value void 2 2168 2169 -load 2171 tid_bytes -call 2172 checker_builtins_fix_builtin_binding void 3 2167 2168 2171 -call 2173 pith_cstring_release void 1 2167 -strref 2174 m9s122 -call 2175 pith_list_new_default list 0 -load 2176 tid_int -call 2177 pith_list_push_value void 2 2175 2176 -load 2178 tid_int -call 2179 checker_builtins_fix_builtin_binding void 3 2174 2175 2178 -call 2180 pith_cstring_release void 1 2174 -strref 2181 m9s121 -call 2182 pith_list_new_default list 0 -load 2183 tid_int -call 2184 pith_list_push_value void 2 2182 2183 -load 2185 tid_int -call 2186 pith_list_push_value void 2 2182 2185 -load 2187 tid_int -call 2188 checker_builtins_fix_builtin_binding void 3 2181 2182 2187 -call 2189 pith_cstring_release void 1 2181 -strref 2190 m9s120 -call 2191 pith_list_new_default list 0 -load 2192 tid_int -call 2193 pith_list_push_value void 2 2191 2192 -load 2194 tid_int -call 2195 pith_list_push_value void 2 2191 2194 -load 2196 tid_int -call 2197 pith_list_push_value void 2 2191 2196 -load 2198 tid_bool -call 2199 checker_builtins_fix_builtin_binding void 3 2190 2191 2198 -call 2200 pith_cstring_release void 1 2190 -strref 2201 m9s119 -call 2202 pith_list_new_default list 0 -load 2203 tid_int -call 2204 pith_list_push_value void 2 2202 2203 -load 2205 tid_void -call 2206 checker_builtins_fix_builtin_binding void 3 2201 2202 2205 -call 2207 pith_cstring_release void 1 2201 -strref 2208 m9s118 -call 2209 pith_list_new_default list 0 -load 2210 tid_int -call 2211 pith_list_push_value void 2 2209 2210 -load 2212 tid_int -call 2213 pith_list_push_value void 2 2209 2212 -load 2214 str_result -call 2215 checker_builtins_fix_builtin_binding void 3 2208 2209 2214 -call 2216 pith_cstring_release void 1 2208 -strref 2217 m9s117 -call 2218 pith_list_new_default list 0 -load 2219 tid_int -call 2220 pith_list_push_value void 2 2218 2219 -load 2221 tid_string -call 2222 pith_list_push_value void 2 2218 2221 -load 2223 int_result -call 2224 checker_builtins_fix_builtin_binding void 3 2217 2218 2223 -call 2225 pith_cstring_release void 1 2217 -strref 2226 m9s116 -call 2227 pith_list_new_default list 0 -load 2228 tid_int -call 2229 pith_list_push_value void 2 2227 2228 -load 2230 tid_int -call 2231 pith_list_push_value void 2 2227 2230 -load 2232 bytes_result -call 2233 checker_builtins_fix_builtin_binding void 3 2226 2227 2232 -call 2234 pith_cstring_release void 1 2226 -strref 2235 m9s115 -call 2236 pith_list_new_default list 0 -load 2237 tid_int -call 2238 pith_list_push_value void 2 2236 2237 -load 2239 tid_bytes -call 2240 pith_list_push_value void 2 2236 2239 -load 2241 int_result -call 2242 checker_builtins_fix_builtin_binding void 3 2235 2236 2241 -call 2243 pith_cstring_release void 1 2235 -strref 2244 m9s114 -call 2245 pith_list_new_default list 0 -load 2246 tid_int -call 2247 pith_list_push_value void 2 2245 2246 -load 2248 tid_void -call 2249 checker_builtins_fix_builtin_binding void 3 2244 2245 2248 -call 2250 pith_cstring_release void 1 2244 -strref 2251 m9s113 -call 2252 pith_list_new_default list 0 -load 2253 tid_string -call 2254 pith_list_push_value void 2 2252 2253 -load 2255 tid_int -call 2256 pith_list_push_value void 2 2252 2255 -load 2257 int_result -call 2258 checker_builtins_fix_builtin_binding void 3 2251 2252 2257 -call 2259 pith_cstring_release void 1 2251 -strref 2260 m9s112 -call 2261 pith_list_new_default list 0 -load 2262 tid_string -call 2263 pith_list_push_value void 2 2261 2262 -load 2264 tid_int -call 2265 pith_list_push_value void 2 2261 2264 -load 2266 int_result -call 2267 checker_builtins_fix_builtin_binding void 3 2260 2261 2266 -call 2268 pith_cstring_release void 1 2260 -strref 2269 m9s111 -call 2270 pith_list_new_default list 0 -load 2271 tid_int -call 2272 pith_list_push_value void 2 2270 2271 -load 2273 int_result -call 2274 checker_builtins_fix_builtin_binding void 3 2269 2270 2273 -call 2275 pith_cstring_release void 1 2269 -strref 2276 m9s110 -call 2277 pith_list_new_default list 0 -load 2278 tid_int -call 2279 pith_list_push_value void 2 2277 2278 -load 2280 tid_int -call 2281 pith_list_push_value void 2 2277 2280 -load 2282 str_result -call 2283 checker_builtins_fix_builtin_binding void 3 2276 2277 2282 -call 2284 pith_cstring_release void 1 2276 -strref 2285 m9s109 -call 2286 pith_list_new_default list 0 -load 2287 tid_int -call 2288 pith_list_push_value void 2 2286 2287 -load 2289 tid_string -call 2290 pith_list_push_value void 2 2286 2289 -load 2291 int_result -call 2292 checker_builtins_fix_builtin_binding void 3 2285 2286 2291 -call 2293 pith_cstring_release void 1 2285 -strref 2294 m9s108 -call 2295 pith_list_new_default list 0 -load 2296 tid_int -call 2297 pith_list_push_value void 2 2295 2296 -load 2298 tid_int -call 2299 pith_list_push_value void 2 2295 2298 -load 2300 bytes_result -call 2301 checker_builtins_fix_builtin_binding void 3 2294 2295 2300 -call 2302 pith_cstring_release void 1 2294 -strref 2303 m9s107 -call 2304 pith_list_new_default list 0 -load 2305 tid_int -call 2306 pith_list_push_value void 2 2304 2305 -load 2307 tid_bytes -call 2308 pith_list_push_value void 2 2304 2307 -load 2309 int_result -call 2310 checker_builtins_fix_builtin_binding void 3 2303 2304 2309 -call 2311 pith_cstring_release void 1 2303 -strref 2312 m9s106 -call 2313 pith_list_new_default list 0 -load 2314 tid_int -call 2315 pith_list_push_value void 2 2313 2314 -load 2316 tid_int -call 2317 pith_list_push_value void 2 2313 2316 -load 2318 tid_int -call 2319 checker_builtins_fix_builtin_binding void 3 2312 2313 2318 -call 2320 pith_cstring_release void 1 2312 -strref 2321 m9s105 -call 2322 pith_list_new_default list 0 -load 2323 tid_int -call 2324 pith_list_push_value void 2 2322 2323 -load 2325 tid_int -call 2326 pith_list_push_value void 2 2322 2325 -load 2327 tid_int -call 2328 checker_builtins_fix_builtin_binding void 3 2321 2322 2327 -call 2329 pith_cstring_release void 1 2321 -strref 2330 m9s104 -call 2331 pith_list_new_default list 0 -load 2332 tid_int -call 2333 pith_list_push_value void 2 2331 2332 -load 2334 tid_int -call 2335 pith_list_push_value void 2 2331 2334 -load 2336 tid_void -call 2337 checker_builtins_fix_builtin_binding void 3 2330 2331 2336 -call 2338 pith_cstring_release void 1 2330 -strref 2339 m9s103 -call 2340 pith_list_new_default list 0 -load 2341 tid_string -call 2342 pith_list_push_value void 2 2340 2341 -load 2343 int_result -call 2344 checker_builtins_fix_builtin_binding void 3 2339 2340 2343 -call 2345 pith_cstring_release void 1 2339 -strref 2346 m9s102 -call 2347 pith_list_new_default list 0 -load 2348 tid_string -call 2349 pith_list_push_value void 2 2347 2348 -load 2350 list_string -call 2351 pith_list_push_value void 2 2347 2350 -load 2352 tid_string -call 2353 pith_list_push_value void 2 2347 2352 -load 2354 list_string -call 2355 pith_list_push_value void 2 2347 2354 -load 2356 list_string -call 2357 pith_list_push_value void 2 2347 2356 -load 2358 int_result -call 2359 checker_builtins_fix_builtin_binding void 3 2346 2347 2358 -call 2360 pith_cstring_release void 1 2346 -strref 2361 m9s101 +call 2131 pith_list_push_value void 2 2125 2130 +load 2132 tid_bool +call 2133 checker_builtins_fix_builtin_binding void 3 2124 2125 2132 +call 2134 pith_cstring_release void 1 2124 +strref 2135 m9s133 +call 2136 pith_list_new_default list 0 +load 2137 tid_bytes +call 2138 pith_list_push_value void 2 2136 2137 +load 2139 tid_bytes +call 2140 pith_list_push_value void 2 2136 2139 +load 2141 bytes_result +call 2142 checker_builtins_fix_builtin_binding void 3 2135 2136 2141 +call 2143 pith_cstring_release void 1 2135 +strref 2144 m9s132 +call 2145 pith_list_new_default list 0 +load 2146 tid_bytes +call 2147 pith_list_push_value void 2 2145 2146 +load 2148 tid_bytes +call 2149 pith_list_push_value void 2 2145 2148 +load 2150 tid_int +call 2151 pith_list_push_value void 2 2145 2150 +load 2152 bytes_result +call 2153 checker_builtins_fix_builtin_binding void 3 2144 2145 2152 +call 2154 pith_cstring_release void 1 2144 +strref 2155 m9s131 +call 2156 pith_list_new_default list 0 +load 2157 tid_bytes +call 2158 pith_list_push_value void 2 2156 2157 +load 2159 tid_bytes +call 2160 pith_list_push_value void 2 2156 2159 +load 2161 tid_int +call 2162 pith_list_push_value void 2 2156 2161 +load 2163 tid_int +call 2164 pith_list_push_value void 2 2156 2163 +load 2165 tid_int +call 2166 pith_list_push_value void 2 2156 2165 +load 2167 tid_int +call 2168 pith_list_push_value void 2 2156 2167 +load 2169 bytes_result +call 2170 checker_builtins_fix_builtin_binding void 3 2155 2156 2169 +call 2171 pith_cstring_release void 1 2155 +strref 2172 m9s130 +call 2173 pith_list_new_default list 0 +load 2174 tid_int +call 2175 checker_builtins_fix_builtin_binding void 3 2172 2173 2174 +call 2176 pith_cstring_release void 1 2172 +strref 2177 m9s129 +call 2178 pith_list_new_default list 0 +load 2179 tid_int +call 2180 pith_list_push_value void 2 2178 2179 +load 2181 tid_void +call 2182 checker_builtins_fix_builtin_binding void 3 2177 2178 2181 +call 2183 pith_cstring_release void 1 2177 +strref 2184 m9s128 +call 2185 pith_list_new_default list 0 +load 2186 tid_int +call 2187 pith_list_push_value void 2 2185 2186 +load 2188 tid_bytes +call 2189 checker_builtins_fix_builtin_binding void 3 2184 2185 2188 +call 2190 pith_cstring_release void 1 2184 +strref 2191 m9s127 +call 2192 pith_list_new_default list 0 +load 2193 tid_int +call 2194 pith_list_push_value void 2 2192 2193 +load 2195 tid_int +call 2196 checker_builtins_fix_builtin_binding void 3 2191 2192 2195 +call 2197 pith_cstring_release void 1 2191 +strref 2198 m9s126 +call 2199 pith_list_new_default list 0 +load 2200 tid_int +call 2201 pith_list_push_value void 2 2199 2200 +load 2202 tid_bytes +call 2203 pith_list_push_value void 2 2199 2202 +load 2204 int_result +call 2205 checker_builtins_fix_builtin_binding void 3 2198 2199 2204 +call 2206 pith_cstring_release void 1 2198 +strref 2207 m9s125 +call 2208 pith_list_new_default list 0 +load 2209 tid_int +call 2210 pith_list_push_value void 2 2208 2209 +load 2211 tid_string +call 2212 pith_list_push_value void 2 2208 2211 +load 2213 int_result +call 2214 checker_builtins_fix_builtin_binding void 3 2207 2208 2213 +call 2215 pith_cstring_release void 1 2207 +strref 2216 m9s124 +call 2217 pith_list_new_default list 0 +load 2218 tid_int +call 2219 pith_list_push_value void 2 2217 2218 +load 2220 tid_int +call 2221 pith_list_push_value void 2 2217 2220 +load 2222 int_result +call 2223 checker_builtins_fix_builtin_binding void 3 2216 2217 2222 +call 2224 pith_cstring_release void 1 2216 +strref 2225 m9s123 +call 2226 pith_list_new_default list 0 +load 2227 tid_int +call 2228 pith_list_push_value void 2 2226 2227 +load 2229 tid_bytes +call 2230 checker_builtins_fix_builtin_binding void 3 2225 2226 2229 +call 2231 pith_cstring_release void 1 2225 +strref 2232 m9s122 +call 2233 pith_list_new_default list 0 +load 2234 tid_int +call 2235 pith_list_push_value void 2 2233 2234 +load 2236 tid_int +call 2237 checker_builtins_fix_builtin_binding void 3 2232 2233 2236 +call 2238 pith_cstring_release void 1 2232 +strref 2239 m9s121 +call 2240 pith_list_new_default list 0 +load 2241 tid_int +call 2242 pith_list_push_value void 2 2240 2241 +load 2243 tid_int +call 2244 pith_list_push_value void 2 2240 2243 +load 2245 tid_int +call 2246 checker_builtins_fix_builtin_binding void 3 2239 2240 2245 +call 2247 pith_cstring_release void 1 2239 +strref 2248 m9s120 +call 2249 pith_list_new_default list 0 +load 2250 tid_int +call 2251 pith_list_push_value void 2 2249 2250 +load 2252 tid_int +call 2253 pith_list_push_value void 2 2249 2252 +load 2254 tid_int +call 2255 pith_list_push_value void 2 2249 2254 +load 2256 tid_bool +call 2257 checker_builtins_fix_builtin_binding void 3 2248 2249 2256 +call 2258 pith_cstring_release void 1 2248 +strref 2259 m9s119 +call 2260 pith_list_new_default list 0 +load 2261 tid_int +call 2262 pith_list_push_value void 2 2260 2261 +load 2263 tid_void +call 2264 checker_builtins_fix_builtin_binding void 3 2259 2260 2263 +call 2265 pith_cstring_release void 1 2259 +strref 2266 m9s118 +call 2267 pith_list_new_default list 0 +load 2268 tid_int +call 2269 pith_list_push_value void 2 2267 2268 +load 2270 tid_int +call 2271 pith_list_push_value void 2 2267 2270 +load 2272 str_result +call 2273 checker_builtins_fix_builtin_binding void 3 2266 2267 2272 +call 2274 pith_cstring_release void 1 2266 +strref 2275 m9s117 +call 2276 pith_list_new_default list 0 +load 2277 tid_int +call 2278 pith_list_push_value void 2 2276 2277 +load 2279 tid_string +call 2280 pith_list_push_value void 2 2276 2279 +load 2281 int_result +call 2282 checker_builtins_fix_builtin_binding void 3 2275 2276 2281 +call 2283 pith_cstring_release void 1 2275 +strref 2284 m9s116 +call 2285 pith_list_new_default list 0 +load 2286 tid_int +call 2287 pith_list_push_value void 2 2285 2286 +load 2288 tid_int +call 2289 pith_list_push_value void 2 2285 2288 +load 2290 bytes_result +call 2291 checker_builtins_fix_builtin_binding void 3 2284 2285 2290 +call 2292 pith_cstring_release void 1 2284 +strref 2293 m9s115 +call 2294 pith_list_new_default list 0 +load 2295 tid_int +call 2296 pith_list_push_value void 2 2294 2295 +load 2297 tid_bytes +call 2298 pith_list_push_value void 2 2294 2297 +load 2299 int_result +call 2300 checker_builtins_fix_builtin_binding void 3 2293 2294 2299 +call 2301 pith_cstring_release void 1 2293 +strref 2302 m9s114 +call 2303 pith_list_new_default list 0 +load 2304 tid_int +call 2305 pith_list_push_value void 2 2303 2304 +load 2306 tid_void +call 2307 checker_builtins_fix_builtin_binding void 3 2302 2303 2306 +call 2308 pith_cstring_release void 1 2302 +strref 2309 m9s113 +call 2310 pith_list_new_default list 0 +load 2311 tid_string +call 2312 pith_list_push_value void 2 2310 2311 +load 2313 tid_int +call 2314 pith_list_push_value void 2 2310 2313 +load 2315 int_result +call 2316 checker_builtins_fix_builtin_binding void 3 2309 2310 2315 +call 2317 pith_cstring_release void 1 2309 +strref 2318 m9s112 +call 2319 pith_list_new_default list 0 +load 2320 tid_string +call 2321 pith_list_push_value void 2 2319 2320 +load 2322 tid_int +call 2323 pith_list_push_value void 2 2319 2322 +load 2324 int_result +call 2325 checker_builtins_fix_builtin_binding void 3 2318 2319 2324 +call 2326 pith_cstring_release void 1 2318 +strref 2327 m9s111 +call 2328 pith_list_new_default list 0 +load 2329 tid_int +call 2330 pith_list_push_value void 2 2328 2329 +load 2331 int_result +call 2332 checker_builtins_fix_builtin_binding void 3 2327 2328 2331 +call 2333 pith_cstring_release void 1 2327 +strref 2334 m9s110 +call 2335 pith_list_new_default list 0 +load 2336 tid_int +call 2337 pith_list_push_value void 2 2335 2336 +load 2338 tid_int +call 2339 pith_list_push_value void 2 2335 2338 +load 2340 str_result +call 2341 checker_builtins_fix_builtin_binding void 3 2334 2335 2340 +call 2342 pith_cstring_release void 1 2334 +strref 2343 m9s109 +call 2344 pith_list_new_default list 0 +load 2345 tid_int +call 2346 pith_list_push_value void 2 2344 2345 +load 2347 tid_string +call 2348 pith_list_push_value void 2 2344 2347 +load 2349 int_result +call 2350 checker_builtins_fix_builtin_binding void 3 2343 2344 2349 +call 2351 pith_cstring_release void 1 2343 +strref 2352 m9s108 +call 2353 pith_list_new_default list 0 +load 2354 tid_int +call 2355 pith_list_push_value void 2 2353 2354 +load 2356 tid_int +call 2357 pith_list_push_value void 2 2353 2356 +load 2358 bytes_result +call 2359 checker_builtins_fix_builtin_binding void 3 2352 2353 2358 +call 2360 pith_cstring_release void 1 2352 +strref 2361 m9s107 call 2362 pith_list_new_default list 0 -load 2363 tid_string +load 2363 tid_int call 2364 pith_list_push_value void 2 2362 2363 -load 2365 list_string +load 2365 tid_bytes call 2366 pith_list_push_value void 2 2362 2365 -load 2367 tid_string -call 2368 pith_list_push_value void 2 2362 2367 -load 2369 list_string -call 2370 pith_list_push_value void 2 2362 2369 -load 2371 list_string -call 2372 pith_list_push_value void 2 2362 2371 -load 2373 int_result -call 2374 checker_builtins_fix_builtin_binding void 3 2361 2362 2373 -call 2375 pith_cstring_release void 1 2361 -strref 2376 m9s100 -call 2377 pith_list_new_default list 0 -load 2378 tid_int -call 2379 pith_list_push_value void 2 2377 2378 -load 2380 tid_string -call 2381 pith_list_push_value void 2 2377 2380 -load 2382 int_result -call 2383 checker_builtins_fix_builtin_binding void 3 2376 2377 2382 -call 2384 pith_cstring_release void 1 2376 -strref 2385 m9s99 -call 2386 pith_list_new_default list 0 -load 2387 tid_int -call 2388 pith_list_push_value void 2 2386 2387 -load 2389 tid_int -call 2390 pith_list_push_value void 2 2386 2389 -load 2391 str_result -call 2392 checker_builtins_fix_builtin_binding void 3 2385 2386 2391 -call 2393 pith_cstring_release void 1 2385 -strref 2394 m9s98 -call 2395 pith_list_new_default list 0 -load 2396 tid_int -call 2397 pith_list_push_value void 2 2395 2396 -load 2398 tid_int -call 2399 pith_list_push_value void 2 2395 2398 -load 2400 str_result -call 2401 checker_builtins_fix_builtin_binding void 3 2394 2395 2400 -call 2402 pith_cstring_release void 1 2394 -strref 2403 m9s97 -call 2404 pith_list_new_default list 0 -load 2405 tid_int -call 2406 pith_list_push_value void 2 2404 2405 -load 2407 tid_bytes -call 2408 pith_list_push_value void 2 2404 2407 -load 2409 int_result -call 2410 checker_builtins_fix_builtin_binding void 3 2403 2404 2409 -call 2411 pith_cstring_release void 1 2403 -strref 2412 m9s96 -call 2413 pith_list_new_default list 0 -load 2414 tid_int -call 2415 pith_list_push_value void 2 2413 2414 -load 2416 tid_int -call 2417 pith_list_push_value void 2 2413 2416 -load 2418 bytes_result -call 2419 checker_builtins_fix_builtin_binding void 3 2412 2413 2418 -call 2420 pith_cstring_release void 1 2412 -strref 2421 m9s95 -call 2422 pith_list_new_default list 0 -load 2423 tid_int -call 2424 pith_list_push_value void 2 2422 2423 -load 2425 tid_int -call 2426 pith_list_push_value void 2 2422 2425 -load 2427 bytes_result -call 2428 checker_builtins_fix_builtin_binding void 3 2421 2422 2427 -call 2429 pith_cstring_release void 1 2421 -strref 2430 m9s94 -call 2431 pith_list_new_default list 0 -load 2432 tid_int -call 2433 pith_list_push_value void 2 2431 2432 -load 2434 tid_int -call 2435 checker_builtins_fix_builtin_binding void 3 2430 2431 2434 -call 2436 pith_cstring_release void 1 2430 -strref 2437 m9s93 -call 2438 pith_list_new_default list 0 -load 2439 tid_int -call 2440 pith_list_push_value void 2 2438 2439 -load 2441 tid_bool -call 2442 checker_builtins_fix_builtin_binding void 3 2437 2438 2441 -call 2443 pith_cstring_release void 1 2437 -strref 2444 m9s92 -call 2445 pith_list_new_default list 0 -load 2446 tid_int -call 2447 pith_list_push_value void 2 2445 2446 -load 2448 tid_void -call 2449 checker_builtins_fix_builtin_binding void 3 2444 2445 2448 -call 2450 pith_cstring_release void 1 2444 -strref 2451 m9s91 -call 2452 pith_list_new_default list 0 -load 2453 tid_int -call 2454 pith_list_push_value void 2 2452 2453 -load 2455 tid_int -call 2456 checker_builtins_fix_builtin_binding void 3 2451 2452 2455 -call 2457 pith_cstring_release void 1 2451 -strref 2458 m9s90 -call 2459 pith_list_new_default list 0 -load 2460 tid_int -call 2461 pith_list_push_value void 2 2459 2460 -load 2462 tid_string -call 2463 checker_builtins_fix_builtin_binding void 3 2458 2459 2462 -call 2464 pith_cstring_release void 1 2458 -strref 2465 m9s89 -call 2466 pith_list_new_default list 0 -load 2467 tid_int -call 2468 pith_list_push_value void 2 2466 2467 -load 2469 tid_string -call 2470 checker_builtins_fix_builtin_binding void 3 2465 2466 2469 -call 2471 pith_cstring_release void 1 2465 -strref 2472 m9s88 -call 2473 pith_list_new_default list 0 +load 2367 int_result +call 2368 checker_builtins_fix_builtin_binding void 3 2361 2362 2367 +call 2369 pith_cstring_release void 1 2361 +strref 2370 m9s106 +call 2371 pith_list_new_default list 0 +load 2372 tid_int +call 2373 pith_list_push_value void 2 2371 2372 +load 2374 tid_int +call 2375 pith_list_push_value void 2 2371 2374 +load 2376 tid_int +call 2377 checker_builtins_fix_builtin_binding void 3 2370 2371 2376 +call 2378 pith_cstring_release void 1 2370 +strref 2379 m9s105 +call 2380 pith_list_new_default list 0 +load 2381 tid_int +call 2382 pith_list_push_value void 2 2380 2381 +load 2383 tid_int +call 2384 pith_list_push_value void 2 2380 2383 +load 2385 tid_int +call 2386 checker_builtins_fix_builtin_binding void 3 2379 2380 2385 +call 2387 pith_cstring_release void 1 2379 +strref 2388 m9s104 +call 2389 pith_list_new_default list 0 +load 2390 tid_int +call 2391 pith_list_push_value void 2 2389 2390 +load 2392 tid_int +call 2393 pith_list_push_value void 2 2389 2392 +load 2394 tid_void +call 2395 checker_builtins_fix_builtin_binding void 3 2388 2389 2394 +call 2396 pith_cstring_release void 1 2388 +strref 2397 m9s103 +call 2398 pith_list_new_default list 0 +load 2399 tid_string +call 2400 pith_list_push_value void 2 2398 2399 +load 2401 int_result +call 2402 checker_builtins_fix_builtin_binding void 3 2397 2398 2401 +call 2403 pith_cstring_release void 1 2397 +strref 2404 m9s102 +call 2405 pith_list_new_default list 0 +load 2406 tid_string +call 2407 pith_list_push_value void 2 2405 2406 +load 2408 list_string +call 2409 pith_list_push_value void 2 2405 2408 +load 2410 tid_string +call 2411 pith_list_push_value void 2 2405 2410 +load 2412 list_string +call 2413 pith_list_push_value void 2 2405 2412 +load 2414 list_string +call 2415 pith_list_push_value void 2 2405 2414 +load 2416 int_result +call 2417 checker_builtins_fix_builtin_binding void 3 2404 2405 2416 +call 2418 pith_cstring_release void 1 2404 +strref 2419 m9s101 +call 2420 pith_list_new_default list 0 +load 2421 tid_string +call 2422 pith_list_push_value void 2 2420 2421 +load 2423 list_string +call 2424 pith_list_push_value void 2 2420 2423 +load 2425 tid_string +call 2426 pith_list_push_value void 2 2420 2425 +load 2427 list_string +call 2428 pith_list_push_value void 2 2420 2427 +load 2429 list_string +call 2430 pith_list_push_value void 2 2420 2429 +load 2431 int_result +call 2432 checker_builtins_fix_builtin_binding void 3 2419 2420 2431 +call 2433 pith_cstring_release void 1 2419 +strref 2434 m9s100 +call 2435 pith_list_new_default list 0 +load 2436 tid_int +call 2437 pith_list_push_value void 2 2435 2436 +load 2438 tid_string +call 2439 pith_list_push_value void 2 2435 2438 +load 2440 int_result +call 2441 checker_builtins_fix_builtin_binding void 3 2434 2435 2440 +call 2442 pith_cstring_release void 1 2434 +strref 2443 m9s99 +call 2444 pith_list_new_default list 0 +load 2445 tid_int +call 2446 pith_list_push_value void 2 2444 2445 +load 2447 tid_int +call 2448 pith_list_push_value void 2 2444 2447 +load 2449 str_result +call 2450 checker_builtins_fix_builtin_binding void 3 2443 2444 2449 +call 2451 pith_cstring_release void 1 2443 +strref 2452 m9s98 +call 2453 pith_list_new_default list 0 +load 2454 tid_int +call 2455 pith_list_push_value void 2 2453 2454 +load 2456 tid_int +call 2457 pith_list_push_value void 2 2453 2456 +load 2458 str_result +call 2459 checker_builtins_fix_builtin_binding void 3 2452 2453 2458 +call 2460 pith_cstring_release void 1 2452 +strref 2461 m9s97 +call 2462 pith_list_new_default list 0 +load 2463 tid_int +call 2464 pith_list_push_value void 2 2462 2463 +load 2465 tid_bytes +call 2466 pith_list_push_value void 2 2462 2465 +load 2467 int_result +call 2468 checker_builtins_fix_builtin_binding void 3 2461 2462 2467 +call 2469 pith_cstring_release void 1 2461 +strref 2470 m9s96 +call 2471 pith_list_new_default list 0 +load 2472 tid_int +call 2473 pith_list_push_value void 2 2471 2472 load 2474 tid_int -call 2475 pith_list_push_value void 2 2473 2474 -load 2476 tid_void -call 2477 checker_builtins_fix_builtin_binding void 3 2472 2473 2476 -call 2478 pith_cstring_release void 1 2472 -iconst 2479 0 -ret 2479 +call 2475 pith_list_push_value void 2 2471 2474 +load 2476 bytes_result +call 2477 checker_builtins_fix_builtin_binding void 3 2470 2471 2476 +call 2478 pith_cstring_release void 1 2470 +strref 2479 m9s95 +call 2480 pith_list_new_default list 0 +load 2481 tid_int +call 2482 pith_list_push_value void 2 2480 2481 +load 2483 tid_int +call 2484 pith_list_push_value void 2 2480 2483 +load 2485 bytes_result +call 2486 checker_builtins_fix_builtin_binding void 3 2479 2480 2485 +call 2487 pith_cstring_release void 1 2479 +strref 2488 m9s94 +call 2489 pith_list_new_default list 0 +load 2490 tid_int +call 2491 pith_list_push_value void 2 2489 2490 +load 2492 tid_int +call 2493 checker_builtins_fix_builtin_binding void 3 2488 2489 2492 +call 2494 pith_cstring_release void 1 2488 +strref 2495 m9s93 +call 2496 pith_list_new_default list 0 +load 2497 tid_int +call 2498 pith_list_push_value void 2 2496 2497 +load 2499 tid_bool +call 2500 checker_builtins_fix_builtin_binding void 3 2495 2496 2499 +call 2501 pith_cstring_release void 1 2495 +strref 2502 m9s92 +call 2503 pith_list_new_default list 0 +load 2504 tid_int +call 2505 pith_list_push_value void 2 2503 2504 +load 2506 tid_void +call 2507 checker_builtins_fix_builtin_binding void 3 2502 2503 2506 +call 2508 pith_cstring_release void 1 2502 +strref 2509 m9s91 +call 2510 pith_list_new_default list 0 +load 2511 tid_int +call 2512 pith_list_push_value void 2 2510 2511 +load 2513 tid_int +call 2514 checker_builtins_fix_builtin_binding void 3 2509 2510 2513 +call 2515 pith_cstring_release void 1 2509 +strref 2516 m9s90 +call 2517 pith_list_new_default list 0 +load 2518 tid_int +call 2519 pith_list_push_value void 2 2517 2518 +load 2520 tid_string +call 2521 checker_builtins_fix_builtin_binding void 3 2516 2517 2520 +call 2522 pith_cstring_release void 1 2516 +strref 2523 m9s89 +call 2524 pith_list_new_default list 0 +load 2525 tid_int +call 2526 pith_list_push_value void 2 2524 2525 +load 2527 tid_string +call 2528 checker_builtins_fix_builtin_binding void 3 2523 2524 2527 +call 2529 pith_cstring_release void 1 2523 +strref 2530 m9s88 +call 2531 pith_list_new_default list 0 +load 2532 tid_int +call 2533 pith_list_push_value void 2 2531 2532 +load 2534 tid_void +call 2535 checker_builtins_fix_builtin_binding void 3 2530 2531 2534 +call 2536 pith_cstring_release void 1 2530 +iconst 2537 0 +ret 2537 endfunc func checker_builtins_create_function_type 2 int param params @@ -26591,6 +26671,8 @@ string m10s86 "crypto_aes_128_gcm_open failed" string m10s87 "crypto_chacha20_poly1305_seal failed" string m10s88 "crypto_chacha20_poly1305_open failed" string m10s89 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m10s90 "crypto_blake2b failed" +string m10s91 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -27182,6 +27264,8 @@ string m11s43 "crypto_aes_128_gcm_open failed" string m11s44 "crypto_chacha20_poly1305_seal failed" string m11s45 "crypto_chacha20_poly1305_open failed" string m11s46 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m11s47 "crypto_blake2b failed" +string m11s48 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -27579,6 +27663,8 @@ string m12s43 "crypto_aes_128_gcm_open failed" string m12s44 "crypto_chacha20_poly1305_seal failed" string m12s45 "crypto_chacha20_poly1305_open failed" string m12s46 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m12s47 "crypto_blake2b failed" +string m12s48 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -27927,709 +28013,713 @@ string m13s175 "byte_buffer_with_capacity" string m13s176 "byte_buffer_take_bytes" string m13s177 "byte_buffer_free" string m13s178 "byte_buffer_new" -string m13s179 "crypto_sign_rsa_pss_sha256_pkcs8" -string m13s180 "crypto_verify_rsa_pss_sha256" -string m13s181 "crypto_verify_rsa_pkcs1_sha384" -string m13s182 "crypto_verify_rsa_pkcs1_sha256" -string m13s183 "crypto_verify_ecdsa_p384_sha384_asn1" -string m13s184 "crypto_verify_ecdsa_p256_sha256_asn1" -string m13s185 "crypto_verify_ed25519" -string m13s186 "crypto_chacha20_poly1305_open" -string m13s187 "crypto_chacha20_poly1305_seal" -string m13s188 "crypto_aes_128_gcm_open" -string m13s189 "crypto_aes_128_gcm_seal" -string m13s190 "crypto_x25519_close" -string m13s191 "crypto_x25519_shared_secret" -string m13s192 "crypto_x25519_public_key" -string m13s193 "crypto_p256_keygen" -string m13s194 "crypto_x25519_keygen" -string m13s195 "secure_random_bytes" -string m13s196 "crypto_constant_time_eq" -string m13s197 "bytes_substring_utf8" -string m13s198 "bytes_to_string_utf8" -string m13s199 "bytes_slice" -string m13s200 "bytes_get" -string m13s201 "bytes_is_empty" -string m13s202 "bytes_len" -string m13s203 "bytes_concat" -string m13s204 "bytes_eq" -string m13s205 "append_file_bytes" -string m13s206 "write_file_bytes" -string m13s207 "append_file" -string m13s208 "write_file" -string m13s209 "os_set_env" -string m13s210 "rename_file" -string m13s211 "file_open_append" -string m13s212 "file_open_write" -string m13s213 "file_open_read" -string m13s214 "from_hex" -string m13s215 "b64_decode" -string m13s216 "read_file_bytes" -string m13s217 "dns_resolve" -string m13s218 "exec_output" -string m13s219 "read_file" -string m13s220 "bytes_from_string_utf8" -string m13s221 "parse_float" -string m13s222 "parse_int" -string m13s223 "os_unset_env" -string m13s224 "os_chdir" -string m13s225 "os_cert_roots_pem" -string m13s226 "os_home_dir" -string m13s227 "os_temp_dir" -string m13s228 "os_getcwd" -string m13s229 "list_dir" -string m13s230 "fs_file_size" -string m13s231 "env_opt" -string m13s232 "env" -string m13s233 "fs_remove_tree" -string m13s234 "fs_remove_dir" -string m13s235 "remove_file" -string m13s236 "mkdir" -string m13s237 "dir_exists" -string m13s238 "file_exists" -string m13s239 "ord" -string m13s240 "exec" -string m13s241 "skip_test" -string m13s242 "print_err" -string m13s243 "print" -string m13s244 "fmt_float" -string m13s245 "pow" -string m13s246 "round" -string m13s247 "ceil" -string m13s248 "floor" -string m13s249 "sqrt" -string m13s250 "format_time" -string m13s251 "clamp" -string m13s252 "bit_shr" -string m13s253 "bit_shl" -string m13s254 "bit_xor" -string m13s255 "bit_or" -string m13s256 "bit_and" -string m13s257 "random_int" -string m13s258 "max" -string m13s259 "min" -string m13s260 "random_string" -string m13s261 "chr" -string m13s262 "bit_not" -string m13s263 "abs" -string m13s264 "tcp_close" -string m13s265 "random_seed" -string m13s266 "sleep" -string m13s267 "exit" -string m13s268 "assert" -string m13s269 "args" -string m13s270 "input" -string m13s271 "float_to_bits" -string m13s272 "float_from_bits" -string m13s273 "random_float" -string m13s274 "time_nanos" -string m13s275 "time" -string m13s276 "AtomicInt" -string m13s277 "Semaphore" -string m13s278 "WaitGroup" -string m13s279 "Mutex" -string m13s280 "List[String]" -string m13s281 "warning" -string m13s282 "variant" -string m13s283 " mut" -string m13s284 " pub" -string m13s285 "field" -string m13s286 "enum_decl" -string m13s287 "struct_decl" -string m13s288 "await requires a Task type, got " -string m13s289 "E232" -string m13s290 "await requires a Task expression" -string m13s291 "index" -string m13s292 "field_access" -string m13s293 "ident" -string m13s294 "send it through a channel, or pass a copy (copy_" -string m13s295 " this scope still holds; both threads would mutate the same buffer" -string m13s296 "a spawned task cannot take a " -string m13s297 "E248" -string m13s298 "arg" -string m13s299 "spawn requires a function call" -string m13s300 "call" -string m13s301 ", got " -string m13s302 "' type mismatch: expected " -string m13s303 "field '" -string m13s304 "E219" -string m13s305 " fields, got " -string m13s306 " expects at least " -string m13s307 "E207" -string m13s308 " expects at most " -string m13s309 " is not a struct type" -string m13s310 "E202" -string m13s311 "unknown type: " -string m13s312 "none_lit" -string m13s313 "set elements must be the same type" -string m13s314 "E223" -string m13s315 "map values must be the same type" -string m13s316 "map keys must be the same type" -string m13s317 "entry" -string m13s318 "list elements must be the same type: expected " -string m13s319 "block" -string m13s320 "body" -string m13s321 "lambda parameter requires a type annotation" -string m13s322 "E230" -string m13s323 "param" -string m13s324 ", " -string m13s325 "non-exhaustive match: missing variants: " -string m13s326 "E204" -string m13s327 "non-exhaustive match: missing 'false' case" -string m13s328 "non-exhaustive match: missing 'true' case" -string m13s329 "false" -string m13s330 "true" -string m13s331 "non-exhaustive match: add a wildcard (_) pattern" -string m13s332 "non-exhaustive match on Optional: add 'None' case or wildcard (_)" -string m13s333 "non-exhaustive match on Optional: add 'Some' case or wildcard (_)" -string m13s334 "None" -string m13s335 "Some" -string m13s336 "pat_none" -string m13s337 "pat_wildcard" -string m13s338 "pat_binding" -string m13s339 "pat_tuple" -string m13s340 "pat_string" -string m13s341 "pat_int" -string m13s342 "pat_variant" -string m13s343 "pat_bool" -string m13s344 " elements, expected " -string m13s345 "tuple pattern has " -string m13s346 "E213" -string m13s347 "tuple pattern cannot match " -string m13s348 "E228" -string m13s349 "'" -string m13s350 " has no variant '" -string m13s351 "E212" -string m13s352 " fields, but pattern has " -string m13s353 " has " -string m13s354 " is not an enum" -string m13s355 " does not match expected type " -string m13s356 "variant pattern type " -string m13s357 "or-pattern alternatives cannot bind; use a separate arm" -string m13s358 "pat_or" -string m13s359 "bool pattern cannot match " -string m13s360 "string pattern cannot match " -string m13s361 "float pattern cannot match " -string m13s362 "pat_float" -string m13s363 "range pattern cannot match " -string m13s364 "pat_range" -string m13s365 "integer pattern cannot match " -string m13s366 "match guard must be Bool, got " -string m13s367 "E218" -string m13s368 "guard" -string m13s369 " vs " -string m13s370 "match arms have different types: " -string m13s371 "E225" -string m13s372 "arm" -string m13s373 "if expression branches have different types: " -string m13s374 "condition must be Bool, got " -string m13s375 "E200" -string m13s376 "elif_branch" -string m13s377 "select timeout expects Int milliseconds, got " -string m13s378 "select timeout arm requires a duration and body" -string m13s379 "select send arms must use a channel send expression" -string m13s380 "select send arms must use channel.send(value)" -string m13s381 "send" -string m13s382 "method_call" -string m13s383 "select send arm requires a send expression and body" -string m13s384 "select recv arms must use name := channel.recv()" -string m13s385 "recv" -string m13s386 "select recv arm requires a recv expression and body" -string m13s387 "invalid select arm" -string m13s388 "select_default_arm" -string m13s389 "select_timeout_arm" -string m13s390 "select_send_arm" -string m13s391 "select_recv_arm" -string m13s392 "select arms have different types: " -string m13s393 "select can only have one timeout arm" -string m13s394 "select can only have one default arm" -string m13s395 "select requires at least one arm" -string m13s396 "catch fallback type mismatch: expected " -string m13s397 "catch requires a result type, got " -string m13s398 "E224" -string m13s399 "wrap the producer return in T! so ! can propagate the error" -string m13s400 "try (!) requires a result type, got " -string m13s401 "use ? to unwrap an optional value" -string m13s402 " from function returning " -string m13s403 "try (!) error type mismatch: cannot propagate " -string m13s404 "E239" -string m13s405 "try (!) can only be used in functions that return a result type" -string m13s406 "wrap the producer return in T? so ? has something to unwrap" -string m13s407 "unwrap (?) requires an optional type, got " -string m13s408 "use ! to propagate a result error" -string m13s409 "wrap main or the enclosing fn return in T! and propagate, or replace ? with `match`/`unwrap_or` for an in-place default" -string m13s410 "unwrap (?) can only be used in functions that return a result type" -string m13s411 "E238" -string m13s412 " does not support indexing" -string m13s413 "E217" -string m13s414 "map key type mismatch: expected " -string m13s415 "list index must be integer, got " -string m13s416 "bytes index must be integer, got " -string m13s417 "string index must be integer, got " -string m13s418 "9" -string m13s419 "8" -string m13s420 "7" -string m13s421 "6" -string m13s422 "5" -string m13s423 "4" -string m13s424 "3" -string m13s425 "2" -string m13s426 "1" -string m13s427 "0" -string m13s428 " has no field '" -string m13s429 "E209" -string m13s430 "result has no field '" -string m13s431 "err" -string m13s432 "ok" -string m13s433 "is_err" -string m13s434 "is_ok" -string m13s435 " elements)" -string m13s436 " out of bounds (tuple has " -string m13s437 "tuple index " -string m13s438 "tuple field must be a numeric index" -string m13s439 "' has no function '" -string m13s440 "module '" -string m13s441 "' is not public in module '" -string m13s442 "E251" -string m13s443 "argument type mismatch: expected " -string m13s444 " expects 2 arguments, got " -string m13s445 " expects 1 argument, got " -string m13s446 " takes no arguments, got " -string m13s447 "Task.detach" -string m13s448 "detach" -string m13s449 "Task.is_done" -string m13s450 "is_done" -string m13s451 "Channel.cap" -string m13s452 "cap" -string m13s453 "Channel.len" -string m13s454 "len" -string m13s455 "Channel.is_closed" -string m13s456 "is_closed" -string m13s457 "Channel.close" -string m13s458 "close" -string m13s459 "Channel.try_recv" -string m13s460 "try_recv" -string m13s461 "Channel.try_send" -string m13s462 "try_send" -string m13s463 "Channel.recv" -string m13s464 "Channel.send" -string m13s465 "AtomicInt.compare_set" -string m13s466 "compare_set" -string m13s467 "AtomicInt.store" -string m13s468 "store" -string m13s469 "AtomicInt.load" -string m13s470 "load" -string m13s471 "Semaphore.release" -string m13s472 "release" -string m13s473 "Semaphore.acquire" -string m13s474 "acquire" -string m13s475 "WaitGroup.wait" -string m13s476 "wait" -string m13s477 "WaitGroup.done" -string m13s478 "done" -string m13s479 "WaitGroup.add" -string m13s480 "add" -string m13s481 "Mutex.unlock" -string m13s482 "unlock" -string m13s483 "Mutex.lock" -string m13s484 "lock" -string m13s485 "remove" -string m13s486 "contains" -string m13s487 "clear" -string m13s488 "is_empty" -string m13s489 "use add(value)" -string m13s490 "Set has no method 'insert'" -string m13s491 "insert" -string m13s492 "values" -string m13s493 "keys" -string m13s494 "take" -string m13s495 "get_default expects 2 arguments, got " -string m13s496 "get_default" -string m13s497 "get" -string m13s498 "contains_key" -string m13s499 "insert expects 2 arguments, got " -string m13s500 "last" -string m13s501 "first" -string m13s502 "reduce" -string m13s503 "filter" -string m13s504 "sort" -string m13s505 "slice" -string m13s506 "index_of" -string m13s507 "]; map elements to String first" -string m13s508 "join requires a list of String or Int elements, got List[" -string m13s509 "join" -string m13s510 "insert expects 2 arguments (index, value), got " -string m13s511 "reverse" -string m13s512 "push" -string m13s513 "Bool has no method '" -string m13s514 "to_string" -string m13s515 "Float has no method '" -string m13s516 "to_int" -string m13s517 "Int has no method '" -string m13s518 "to_float" -string m13s519 " on success, got " -string m13s520 "or_else handler must return " -string m13s521 "or_else handler must return a result type" -string m13s522 "or_else handler must accept " -string m13s523 "or_else handler must take exactly 1 argument" -string m13s524 "or_else expects a function, got " -string m13s525 "or_else expects 1 argument, got " -string m13s526 "or_else" -string m13s527 "unwrap_or expects 1 argument, got " -string m13s528 "unwrap_or" -string m13s529 "result.to_string requires stringifiable ok and err values" -string m13s530 "Bytes has no method '" -string m13s531 "to_string_utf8" -string m13s532 "concat" -string m13s533 "String has no method '" -string m13s534 "chars" -string m13s535 "pad_right" -string m13s536 "pad_left" -string m13s537 "repeat" -string m13s538 "replace" -string m13s539 "substring" -string m13s540 "split" -string m13s541 "last_index_of" -string m13s542 "ends_with" -string m13s543 "starts_with" -string m13s544 "to_lower" -string m13s545 "to_upper" -string m13s546 "trim" -string m13s547 " has no method '" -string m13s548 " arguments, got " -string m13s549 " expects " -string m13s550 "E201" -string m13s551 "(...)" -string m13s552 "; call it as receiver." -string m13s553 "' is a method on " -string m13s554 "undefined function: " -string m13s555 "returns" -string m13s556 "cannot infer type parameter " -string m13s557 "E222" -string m13s558 "expected " -string m13s559 "fn_type" -string m13s560 "tuple_type" -string m13s561 "result_type" -string m13s562 "optional_type" -string m13s563 "generic_type" -string m13s564 "type" -string m13s565 "type parameter inference mismatch for " -string m13s566 "' does not implement interface '" -string m13s567 "type '" -string m13s568 "E226" -string m13s569 "' in bound for '" -string m13s570 "unknown interface '" -string m13s571 "generic_param" -string m13s572 "tid:" -string m13s573 "param:" -string m13s574 "reduce callback return mismatch: expected " -string m13s575 "reduce element parameter mismatch: expected " -string m13s576 "reduce accumulator parameter mismatch: expected " -string m13s577 "reduce callback expects 2 parameters, got " -string m13s578 "reduce expects a function as the second argument" -string m13s579 "E208" -string m13s580 "reduce expects 2 arguments, got " -string m13s581 "filter callback must return Bool or Int-like truthy value, got " -string m13s582 "filter callback parameter mismatch: expected " -string m13s583 "filter callback expects 1 parameter, got " -string m13s584 "filter expects a function argument" -string m13s585 "filter expects 1 argument, got " -string m13s586 "map callback parameter mismatch: expected " -string m13s587 "map callback expects 1 parameter, got " -string m13s588 "map expects a function argument" -string m13s589 "map expects 1 argument, got " -string m13s590 "reduce expects a function as the third argument" -string m13s591 "reduce expects a List as the first argument, got " -string m13s592 "reduce expects 3 arguments, got " -string m13s593 "filter expects a function as the second argument" -string m13s594 "filter expects a List as the first argument, got " -string m13s595 "filter expects 2 arguments, got " -string m13s596 "map expects a function as the second argument" -string m13s597 "map expects a List as the first argument, got " -string m13s598 "map expects 2 arguments, got " -string m13s599 "assert_eq arguments must be the same type: " -string m13s600 "assert_eq expects 2 arguments, got " -string m13s601 ": missing field '" -string m13s602 "E242" -string m13s603 "' set more than once" -string m13s604 ": field '" -string m13s605 "E241" -string m13s606 "E240" -string m13s607 ": cannot mix positional and named fields" -string m13s608 "E243" -string m13s609 "expression is not callable" -string m13s610 "Channel constructor takes 0 or 1 arguments, got " -string m13s611 "Channel type argument must be a type name" -string m13s612 "E210" -string m13s613 "assert_ne" -string m13s614 "assert_eq" -string m13s615 "from_json_file_typed" -string m13s616 "from_toml_file_typed" -string m13s617 "decode_text" -string m13s618 "decode" -string m13s619 "decode_prefix" -string m13s620 " type arguments, got " -string m13s621 "E221" -string m13s622 "unknown type: ConfigError" -string m13s623 "ConfigError" -string m13s624 "' of type " -string m13s625 "config typed file decode does not support field '" -string m13s626 "config typed file decode target field must be public: " -string m13s627 "config typed file decode argument type mismatch: expected " -string m13s628 "config typed file decode target must be a struct, got " -string m13s629 "config typed file decode expects 1 argument, got " -string m13s630 "config typed file decode requires an explicit struct type" -string m13s631 " does not support field '" -string m13s632 " target field must be public: " -string m13s633 " argument type mismatch: expected " -string m13s634 " target must be a struct, got " -string m13s635 " requires an explicit struct type" -string m13s636 ".decode" -string m13s637 "unknown type: JsonDecodeError" -string m13s638 "JsonDecodeError" -string m13s639 "json.decode does not support field '" -string m13s640 "json.decode target field must be public: " -string m13s641 "json.decode argument type mismatch: expected " -string m13s642 "json.decode target must be a struct, got " -string m13s643 "json.decode expects 1 argument, got " -string m13s644 "json.decode requires an explicit struct type" -string m13s645 "config.decode does not support field '" -string m13s646 "config.decode target field must be public: " -string m13s647 "config.decode prefix type mismatch: expected String, got " -string m13s648 "config.decode argument type mismatch: expected Config, got " -string m13s649 "unknown type: Config" -string m13s650 "Config" -string m13s651 "config.decode target must be a struct, got " -string m13s652 " argument(s), got " -string m13s653 "config.decode expects " -string m13s654 "config.decode requires an explicit struct type" -string m13s655 "|" -string m13s656 "json.decode type argument must be a concrete struct type" -string m13s657 "config_mod" -string m13s658 "config" -string m13s659 "std.config" -string m13s660 "TomlDecodeError" -string m13s661 "YamlDecodeError" -string m13s662 "yaml" -string m13s663 "yaml_mod" -string m13s664 "toml" -string m13s665 "toml_mod" -string m13s666 "std.yaml" -string m13s667 "json_mod" -string m13s668 "json" -string m13s669 "unary 'not' requires Bool, got " -string m13s670 "not" -string m13s671 "unary - requires numeric type, got " -string m13s672 "negate" -string m13s673 "pipe type mismatch: function expects " -string m13s674 "' must take exactly 1 parameter" -string m13s675 "pipe target '" -string m13s676 "' is not a function" -string m13s677 "pipe operator requires a function name on the right" -string m13s678 "operator 'or' requires Bool, got " -string m13s679 "or" -string m13s680 "operator 'and' requires Bool, got " -string m13s681 "and" -string m13s682 "operator >= type mismatch: " -string m13s683 "operator >= requires numeric or string type, got " -string m13s684 "gte" -string m13s685 "operator <= type mismatch: " -string m13s686 "operator <= requires numeric or string type, got " -string m13s687 "lte" -string m13s688 "operator > type mismatch: " -string m13s689 "operator > requires numeric or string type, got " -string m13s690 "gt" -string m13s691 "operator < type mismatch: " -string m13s692 "operator < requires numeric or string type, got " -string m13s693 "lt" -string m13s694 "operator != type mismatch: " -string m13s695 "neq" -string m13s696 "operator == type mismatch: " -string m13s697 "eq" -string m13s698 "operator % type mismatch: " -string m13s699 "operator % requires integer type, got " -string m13s700 "mod" -string m13s701 "operator / type mismatch: " -string m13s702 "operator / requires numeric type, got " -string m13s703 "div" -string m13s704 "operator * type mismatch: " -string m13s705 "operator * requires numeric type, got " -string m13s706 "mul" -string m13s707 "operator - type mismatch: " -string m13s708 "operator - requires numeric type, got " -string m13s709 "sub" -string m13s710 "operator + type mismatch: " -string m13s711 "operator + requires numeric type, got " -string m13s712 "pipe" -string m13s713 "undefined variable: " -string m13s714 "import it where it is defined" -string m13s715 "' belongs to another module and is not imported here" -string m13s716 "await" -string m13s717 "spawn" -string m13s718 "struct_init" -string m13s719 "lambda" -string m13s720 "match_expr" -string m13s721 "select_expr" -string m13s722 "catch_expr" -string m13s723 "try" -string m13s724 "unwrap" -string m13s725 "if_expr" -string m13s726 "string interpolation requires a stringifiable value, got " -string m13s727 "lit" -string m13s728 "interp_spec" -string m13s729 "string_interp" -string m13s730 "grouped" -string m13s731 "unary" -string m13s732 "binary" -string m13s733 "self" -string m13s734 "bool_lit" -string m13s735 "string_lit" -string m13s736 "float_lit" -string m13s737 "int_lit" -string m13s738 "cannot iterate over " -string m13s739 ".." -string m13s740 "range bounds must be Int, got " -string m13s741 "range" -string m13s742 ".next" -string m13s743 "while let" -string m13s744 "if let" -string m13s745 " supports variant patterns and optional bindings" -string m13s746 "E245" -string m13s747 " with a bare binding needs an optional subject, got " -string m13s748 "else" -string m13s749 "then" -string m13s750 "elif" -string m13s751 "fail type mismatch: expected " -string m13s752 "fail requires function to return a result type" -string m13s753 "E234" -string m13s754 "fail outside of function" -string m13s755 "E231" -string m13s756 "change the return type to " -string m13s757 "return type mismatch: expected " -string m13s758 ", got Void" -string m13s759 "return outside of function" -string m13s760 "lambda returns disagree: " -string m13s761 "type mismatch: expected " -string m13s762 " requires numeric type, got " -string m13s763 "operator " -string m13s764 "=" -string m13s765 "declare with 'mut': mut " -string m13s766 "cannot assign to immutable variable '" -string m13s767 "E216" -string m13s768 "try_expr" -string m13s769 "bind" -string m13s770 "binding" -string m13s771 "errdefer" -string m13s772 "defer" -string m13s773 "continue" -string m13s774 "break" -string m13s775 "fail" -string m13s776 "return" -string m13s777 "move the control flow out of the defer, or wrap the cleanup in a helper function" -string m13s778 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" -string m13s779 "E260" -string m13s780 "use `defer` for cleanup that must always run, or give the function a `T!` return type" -string m13s781 "errdefer is only meaningful in a function returning a result (`T!`)" -string m13s782 "errdefer is only allowed inside a function" -string m13s783 "defer is only allowed inside a function" -string m13s784 "continue outside of loop" -string m13s785 "E215" -string m13s786 "break outside of loop" -string m13s787 "for_stmt" -string m13s788 "while_let" -string m13s789 "if_let" -string m13s790 "while_stmt" -string m13s791 "if_stmt" -string m13s792 "assignment" -string m13s793 "mut" -string m13s794 "fn_decl" -string m13s795 "pub" -string m13s796 " is missing associated type: " -string m13s797 " for " -string m13s798 "impl of " -string m13s799 "E229" -string m13s800 " is missing method: " -string m13s801 "E235" -string m13s802 "fn_sig" -string m13s803 "assoc_type_bind" -string m13s804 "for_type" -string m13s805 "test_decl" -string m13s806 "impl_decl" -string m13s807 "threadlocal" -string m13s808 "import" -string m13s809 "from_import" -string m13s810 "assoc_type" -string m13s811 "' is a builtin type name and cannot be used as an enum name" -string m13s812 "E250" -string m13s813 "' must be " -string m13s814 "default for field '" -string m13s815 " weak" -string m13s816 "' is a builtin type name and cannot be used as a struct name" -string m13s817 "' must be an optional struct type (T?)" -string m13s818 "weak field '" -string m13s819 "E249" -string m13s820 "parameter requires a type annotation" -string m13s821 "type_alias" -string m13s822 "interface_decl" -string m13s823 "unknown generic type: " -string m13s824 "Channel expects 1 type argument, got " -string m13s825 "Task expects 1 type argument, got " -string m13s826 "Map expects 2 type arguments, got " -string m13s827 "Set expects 1 type argument, got " -string m13s828 "List expects 1 type argument, got " -string m13s829 "type nesting too deep" -string m13s830 "E233" -string m13s831 "import it from the module that defines it" -string m13s832 "' is not declared by module '" -string m13s833 "E246" -string m13s834 "*" -string m13s835 "parse_int failed" -string m13s836 "file_open_read failed" -string m13s837 "file_open_write failed" -string m13s838 "file_open_append failed" -string m13s839 "byte_buffer_write failed" -string m13s840 "byte_buffer_write_string_utf8 failed" -string m13s841 "byte_buffer_write_byte failed" -string m13s842 "file_write failed" -string m13s843 "file_write_bytes failed" -string m13s844 "tcp_connect failed" -string m13s845 "tcp_listen failed" -string m13s846 "tcp_accept failed" -string m13s847 "tcp_write failed" -string m13s848 "tcp_write_bytes failed" -string m13s849 "process_spawn failed" -string m13s850 "process_spawn_argv failed" -string m13s851 "process_output_argv failed" -string m13s852 "process_write failed" -string m13s853 "process_write_bytes failed" -string m13s854 "crypto_x25519_keygen failed" -string m13s855 "write_file failed" -string m13s856 "append_file failed" -string m13s857 "write_file_bytes failed" -string m13s858 "append_file_bytes failed" -string m13s859 "read_file failed" -string m13s860 "exec_output failed" -string m13s861 "dns_resolve failed" -string m13s862 "bytes_to_string_utf8 failed" -string m13s863 "bytes_substring_utf8 failed" -string m13s864 "file_read failed" -string m13s865 "tcp_read failed" -string m13s866 "process_read failed" -string m13s867 "process_read_err failed" -string m13s868 "read_file_bytes failed" -string m13s869 "b64_decode failed" -string m13s870 "from_hex failed" -string m13s871 "file_read_bytes failed" -string m13s872 "tcp_read_bytes failed" -string m13s873 "process_read_bytes failed" -string m13s874 "process_read_err_bytes failed" -string m13s875 "crypto_x25519_public_key failed" -string m13s876 "crypto_x25519_shared_secret failed" -string m13s877 "crypto_aes_128_gcm_seal failed" -string m13s878 "crypto_aes_128_gcm_open failed" -string m13s879 "crypto_chacha20_poly1305_seal failed" -string m13s880 "crypto_chacha20_poly1305_open failed" -string m13s881 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m13s179 "crypto_argon2id" +string m13s180 "crypto_blake2b" +string m13s181 "crypto_sign_rsa_pss_sha256_pkcs8" +string m13s182 "crypto_verify_rsa_pss_sha256" +string m13s183 "crypto_verify_rsa_pkcs1_sha384" +string m13s184 "crypto_verify_rsa_pkcs1_sha256" +string m13s185 "crypto_verify_ecdsa_p384_sha384_asn1" +string m13s186 "crypto_verify_ecdsa_p256_sha256_asn1" +string m13s187 "crypto_verify_ed25519" +string m13s188 "crypto_chacha20_poly1305_open" +string m13s189 "crypto_chacha20_poly1305_seal" +string m13s190 "crypto_aes_128_gcm_open" +string m13s191 "crypto_aes_128_gcm_seal" +string m13s192 "crypto_x25519_close" +string m13s193 "crypto_x25519_shared_secret" +string m13s194 "crypto_x25519_public_key" +string m13s195 "crypto_p256_keygen" +string m13s196 "crypto_x25519_keygen" +string m13s197 "secure_random_bytes" +string m13s198 "crypto_constant_time_eq" +string m13s199 "bytes_substring_utf8" +string m13s200 "bytes_to_string_utf8" +string m13s201 "bytes_slice" +string m13s202 "bytes_get" +string m13s203 "bytes_is_empty" +string m13s204 "bytes_len" +string m13s205 "bytes_concat" +string m13s206 "bytes_eq" +string m13s207 "append_file_bytes" +string m13s208 "write_file_bytes" +string m13s209 "append_file" +string m13s210 "write_file" +string m13s211 "os_set_env" +string m13s212 "rename_file" +string m13s213 "file_open_append" +string m13s214 "file_open_write" +string m13s215 "file_open_read" +string m13s216 "from_hex" +string m13s217 "b64_decode" +string m13s218 "read_file_bytes" +string m13s219 "dns_resolve" +string m13s220 "exec_output" +string m13s221 "read_file" +string m13s222 "bytes_from_string_utf8" +string m13s223 "parse_float" +string m13s224 "parse_int" +string m13s225 "os_unset_env" +string m13s226 "os_chdir" +string m13s227 "os_cert_roots_pem" +string m13s228 "os_home_dir" +string m13s229 "os_temp_dir" +string m13s230 "os_getcwd" +string m13s231 "list_dir" +string m13s232 "fs_file_size" +string m13s233 "env_opt" +string m13s234 "env" +string m13s235 "fs_remove_tree" +string m13s236 "fs_remove_dir" +string m13s237 "remove_file" +string m13s238 "mkdir" +string m13s239 "dir_exists" +string m13s240 "file_exists" +string m13s241 "ord" +string m13s242 "exec" +string m13s243 "skip_test" +string m13s244 "print_err" +string m13s245 "print" +string m13s246 "fmt_float" +string m13s247 "pow" +string m13s248 "round" +string m13s249 "ceil" +string m13s250 "floor" +string m13s251 "sqrt" +string m13s252 "format_time" +string m13s253 "clamp" +string m13s254 "bit_shr" +string m13s255 "bit_shl" +string m13s256 "bit_xor" +string m13s257 "bit_or" +string m13s258 "bit_and" +string m13s259 "random_int" +string m13s260 "max" +string m13s261 "min" +string m13s262 "random_string" +string m13s263 "chr" +string m13s264 "bit_not" +string m13s265 "abs" +string m13s266 "tcp_close" +string m13s267 "random_seed" +string m13s268 "sleep" +string m13s269 "exit" +string m13s270 "assert" +string m13s271 "args" +string m13s272 "input" +string m13s273 "float_to_bits" +string m13s274 "float_from_bits" +string m13s275 "random_float" +string m13s276 "time_nanos" +string m13s277 "time" +string m13s278 "AtomicInt" +string m13s279 "Semaphore" +string m13s280 "WaitGroup" +string m13s281 "Mutex" +string m13s282 "List[String]" +string m13s283 "warning" +string m13s284 "variant" +string m13s285 " mut" +string m13s286 " pub" +string m13s287 "field" +string m13s288 "enum_decl" +string m13s289 "struct_decl" +string m13s290 "await requires a Task type, got " +string m13s291 "E232" +string m13s292 "await requires a Task expression" +string m13s293 "index" +string m13s294 "field_access" +string m13s295 "ident" +string m13s296 "send it through a channel, or pass a copy (copy_" +string m13s297 " this scope still holds; both threads would mutate the same buffer" +string m13s298 "a spawned task cannot take a " +string m13s299 "E248" +string m13s300 "arg" +string m13s301 "spawn requires a function call" +string m13s302 "call" +string m13s303 ", got " +string m13s304 "' type mismatch: expected " +string m13s305 "field '" +string m13s306 "E219" +string m13s307 " fields, got " +string m13s308 " expects at least " +string m13s309 "E207" +string m13s310 " expects at most " +string m13s311 " is not a struct type" +string m13s312 "E202" +string m13s313 "unknown type: " +string m13s314 "none_lit" +string m13s315 "set elements must be the same type" +string m13s316 "E223" +string m13s317 "map values must be the same type" +string m13s318 "map keys must be the same type" +string m13s319 "entry" +string m13s320 "list elements must be the same type: expected " +string m13s321 "block" +string m13s322 "body" +string m13s323 "lambda parameter requires a type annotation" +string m13s324 "E230" +string m13s325 "param" +string m13s326 ", " +string m13s327 "non-exhaustive match: missing variants: " +string m13s328 "E204" +string m13s329 "non-exhaustive match: missing 'false' case" +string m13s330 "non-exhaustive match: missing 'true' case" +string m13s331 "false" +string m13s332 "true" +string m13s333 "non-exhaustive match: add a wildcard (_) pattern" +string m13s334 "non-exhaustive match on Optional: add 'None' case or wildcard (_)" +string m13s335 "non-exhaustive match on Optional: add 'Some' case or wildcard (_)" +string m13s336 "None" +string m13s337 "Some" +string m13s338 "pat_none" +string m13s339 "pat_wildcard" +string m13s340 "pat_binding" +string m13s341 "pat_tuple" +string m13s342 "pat_string" +string m13s343 "pat_int" +string m13s344 "pat_variant" +string m13s345 "pat_bool" +string m13s346 " elements, expected " +string m13s347 "tuple pattern has " +string m13s348 "E213" +string m13s349 "tuple pattern cannot match " +string m13s350 "E228" +string m13s351 "'" +string m13s352 " has no variant '" +string m13s353 "E212" +string m13s354 " fields, but pattern has " +string m13s355 " has " +string m13s356 " is not an enum" +string m13s357 " does not match expected type " +string m13s358 "variant pattern type " +string m13s359 "or-pattern alternatives cannot bind; use a separate arm" +string m13s360 "pat_or" +string m13s361 "bool pattern cannot match " +string m13s362 "string pattern cannot match " +string m13s363 "float pattern cannot match " +string m13s364 "pat_float" +string m13s365 "range pattern cannot match " +string m13s366 "pat_range" +string m13s367 "integer pattern cannot match " +string m13s368 "match guard must be Bool, got " +string m13s369 "E218" +string m13s370 "guard" +string m13s371 " vs " +string m13s372 "match arms have different types: " +string m13s373 "E225" +string m13s374 "arm" +string m13s375 "if expression branches have different types: " +string m13s376 "condition must be Bool, got " +string m13s377 "E200" +string m13s378 "elif_branch" +string m13s379 "select timeout expects Int milliseconds, got " +string m13s380 "select timeout arm requires a duration and body" +string m13s381 "select send arms must use a channel send expression" +string m13s382 "select send arms must use channel.send(value)" +string m13s383 "send" +string m13s384 "method_call" +string m13s385 "select send arm requires a send expression and body" +string m13s386 "select recv arms must use name := channel.recv()" +string m13s387 "recv" +string m13s388 "select recv arm requires a recv expression and body" +string m13s389 "invalid select arm" +string m13s390 "select_default_arm" +string m13s391 "select_timeout_arm" +string m13s392 "select_send_arm" +string m13s393 "select_recv_arm" +string m13s394 "select arms have different types: " +string m13s395 "select can only have one timeout arm" +string m13s396 "select can only have one default arm" +string m13s397 "select requires at least one arm" +string m13s398 "catch fallback type mismatch: expected " +string m13s399 "catch requires a result type, got " +string m13s400 "E224" +string m13s401 "wrap the producer return in T! so ! can propagate the error" +string m13s402 "try (!) requires a result type, got " +string m13s403 "use ? to unwrap an optional value" +string m13s404 " from function returning " +string m13s405 "try (!) error type mismatch: cannot propagate " +string m13s406 "E239" +string m13s407 "try (!) can only be used in functions that return a result type" +string m13s408 "wrap the producer return in T? so ? has something to unwrap" +string m13s409 "unwrap (?) requires an optional type, got " +string m13s410 "use ! to propagate a result error" +string m13s411 "wrap main or the enclosing fn return in T! and propagate, or replace ? with `match`/`unwrap_or` for an in-place default" +string m13s412 "unwrap (?) can only be used in functions that return a result type" +string m13s413 "E238" +string m13s414 " does not support indexing" +string m13s415 "E217" +string m13s416 "map key type mismatch: expected " +string m13s417 "list index must be integer, got " +string m13s418 "bytes index must be integer, got " +string m13s419 "string index must be integer, got " +string m13s420 "9" +string m13s421 "8" +string m13s422 "7" +string m13s423 "6" +string m13s424 "5" +string m13s425 "4" +string m13s426 "3" +string m13s427 "2" +string m13s428 "1" +string m13s429 "0" +string m13s430 " has no field '" +string m13s431 "E209" +string m13s432 "result has no field '" +string m13s433 "err" +string m13s434 "ok" +string m13s435 "is_err" +string m13s436 "is_ok" +string m13s437 " elements)" +string m13s438 " out of bounds (tuple has " +string m13s439 "tuple index " +string m13s440 "tuple field must be a numeric index" +string m13s441 "' has no function '" +string m13s442 "module '" +string m13s443 "' is not public in module '" +string m13s444 "E251" +string m13s445 "argument type mismatch: expected " +string m13s446 " expects 2 arguments, got " +string m13s447 " expects 1 argument, got " +string m13s448 " takes no arguments, got " +string m13s449 "Task.detach" +string m13s450 "detach" +string m13s451 "Task.is_done" +string m13s452 "is_done" +string m13s453 "Channel.cap" +string m13s454 "cap" +string m13s455 "Channel.len" +string m13s456 "len" +string m13s457 "Channel.is_closed" +string m13s458 "is_closed" +string m13s459 "Channel.close" +string m13s460 "close" +string m13s461 "Channel.try_recv" +string m13s462 "try_recv" +string m13s463 "Channel.try_send" +string m13s464 "try_send" +string m13s465 "Channel.recv" +string m13s466 "Channel.send" +string m13s467 "AtomicInt.compare_set" +string m13s468 "compare_set" +string m13s469 "AtomicInt.store" +string m13s470 "store" +string m13s471 "AtomicInt.load" +string m13s472 "load" +string m13s473 "Semaphore.release" +string m13s474 "release" +string m13s475 "Semaphore.acquire" +string m13s476 "acquire" +string m13s477 "WaitGroup.wait" +string m13s478 "wait" +string m13s479 "WaitGroup.done" +string m13s480 "done" +string m13s481 "WaitGroup.add" +string m13s482 "add" +string m13s483 "Mutex.unlock" +string m13s484 "unlock" +string m13s485 "Mutex.lock" +string m13s486 "lock" +string m13s487 "remove" +string m13s488 "contains" +string m13s489 "clear" +string m13s490 "is_empty" +string m13s491 "use add(value)" +string m13s492 "Set has no method 'insert'" +string m13s493 "insert" +string m13s494 "values" +string m13s495 "keys" +string m13s496 "take" +string m13s497 "get_default expects 2 arguments, got " +string m13s498 "get_default" +string m13s499 "get" +string m13s500 "contains_key" +string m13s501 "insert expects 2 arguments, got " +string m13s502 "last" +string m13s503 "first" +string m13s504 "reduce" +string m13s505 "filter" +string m13s506 "sort" +string m13s507 "slice" +string m13s508 "index_of" +string m13s509 "]; map elements to String first" +string m13s510 "join requires a list of String or Int elements, got List[" +string m13s511 "join" +string m13s512 "insert expects 2 arguments (index, value), got " +string m13s513 "reverse" +string m13s514 "push" +string m13s515 "Bool has no method '" +string m13s516 "to_string" +string m13s517 "Float has no method '" +string m13s518 "to_int" +string m13s519 "Int has no method '" +string m13s520 "to_float" +string m13s521 " on success, got " +string m13s522 "or_else handler must return " +string m13s523 "or_else handler must return a result type" +string m13s524 "or_else handler must accept " +string m13s525 "or_else handler must take exactly 1 argument" +string m13s526 "or_else expects a function, got " +string m13s527 "or_else expects 1 argument, got " +string m13s528 "or_else" +string m13s529 "unwrap_or expects 1 argument, got " +string m13s530 "unwrap_or" +string m13s531 "result.to_string requires stringifiable ok and err values" +string m13s532 "Bytes has no method '" +string m13s533 "to_string_utf8" +string m13s534 "concat" +string m13s535 "String has no method '" +string m13s536 "chars" +string m13s537 "pad_right" +string m13s538 "pad_left" +string m13s539 "repeat" +string m13s540 "replace" +string m13s541 "substring" +string m13s542 "split" +string m13s543 "last_index_of" +string m13s544 "ends_with" +string m13s545 "starts_with" +string m13s546 "to_lower" +string m13s547 "to_upper" +string m13s548 "trim" +string m13s549 " has no method '" +string m13s550 " arguments, got " +string m13s551 " expects " +string m13s552 "E201" +string m13s553 "(...)" +string m13s554 "; call it as receiver." +string m13s555 "' is a method on " +string m13s556 "undefined function: " +string m13s557 "returns" +string m13s558 "cannot infer type parameter " +string m13s559 "E222" +string m13s560 "expected " +string m13s561 "fn_type" +string m13s562 "tuple_type" +string m13s563 "result_type" +string m13s564 "optional_type" +string m13s565 "generic_type" +string m13s566 "type" +string m13s567 "type parameter inference mismatch for " +string m13s568 "' does not implement interface '" +string m13s569 "type '" +string m13s570 "E226" +string m13s571 "' in bound for '" +string m13s572 "unknown interface '" +string m13s573 "generic_param" +string m13s574 "tid:" +string m13s575 "param:" +string m13s576 "reduce callback return mismatch: expected " +string m13s577 "reduce element parameter mismatch: expected " +string m13s578 "reduce accumulator parameter mismatch: expected " +string m13s579 "reduce callback expects 2 parameters, got " +string m13s580 "reduce expects a function as the second argument" +string m13s581 "E208" +string m13s582 "reduce expects 2 arguments, got " +string m13s583 "filter callback must return Bool or Int-like truthy value, got " +string m13s584 "filter callback parameter mismatch: expected " +string m13s585 "filter callback expects 1 parameter, got " +string m13s586 "filter expects a function argument" +string m13s587 "filter expects 1 argument, got " +string m13s588 "map callback parameter mismatch: expected " +string m13s589 "map callback expects 1 parameter, got " +string m13s590 "map expects a function argument" +string m13s591 "map expects 1 argument, got " +string m13s592 "reduce expects a function as the third argument" +string m13s593 "reduce expects a List as the first argument, got " +string m13s594 "reduce expects 3 arguments, got " +string m13s595 "filter expects a function as the second argument" +string m13s596 "filter expects a List as the first argument, got " +string m13s597 "filter expects 2 arguments, got " +string m13s598 "map expects a function as the second argument" +string m13s599 "map expects a List as the first argument, got " +string m13s600 "map expects 2 arguments, got " +string m13s601 "assert_eq arguments must be the same type: " +string m13s602 "assert_eq expects 2 arguments, got " +string m13s603 ": missing field '" +string m13s604 "E242" +string m13s605 "' set more than once" +string m13s606 ": field '" +string m13s607 "E241" +string m13s608 "E240" +string m13s609 ": cannot mix positional and named fields" +string m13s610 "E243" +string m13s611 "expression is not callable" +string m13s612 "Channel constructor takes 0 or 1 arguments, got " +string m13s613 "Channel type argument must be a type name" +string m13s614 "E210" +string m13s615 "assert_ne" +string m13s616 "assert_eq" +string m13s617 "from_json_file_typed" +string m13s618 "from_toml_file_typed" +string m13s619 "decode_text" +string m13s620 "decode" +string m13s621 "decode_prefix" +string m13s622 " type arguments, got " +string m13s623 "E221" +string m13s624 "unknown type: ConfigError" +string m13s625 "ConfigError" +string m13s626 "' of type " +string m13s627 "config typed file decode does not support field '" +string m13s628 "config typed file decode target field must be public: " +string m13s629 "config typed file decode argument type mismatch: expected " +string m13s630 "config typed file decode target must be a struct, got " +string m13s631 "config typed file decode expects 1 argument, got " +string m13s632 "config typed file decode requires an explicit struct type" +string m13s633 " does not support field '" +string m13s634 " target field must be public: " +string m13s635 " argument type mismatch: expected " +string m13s636 " target must be a struct, got " +string m13s637 " requires an explicit struct type" +string m13s638 ".decode" +string m13s639 "unknown type: JsonDecodeError" +string m13s640 "JsonDecodeError" +string m13s641 "json.decode does not support field '" +string m13s642 "json.decode target field must be public: " +string m13s643 "json.decode argument type mismatch: expected " +string m13s644 "json.decode target must be a struct, got " +string m13s645 "json.decode expects 1 argument, got " +string m13s646 "json.decode requires an explicit struct type" +string m13s647 "config.decode does not support field '" +string m13s648 "config.decode target field must be public: " +string m13s649 "config.decode prefix type mismatch: expected String, got " +string m13s650 "config.decode argument type mismatch: expected Config, got " +string m13s651 "unknown type: Config" +string m13s652 "Config" +string m13s653 "config.decode target must be a struct, got " +string m13s654 " argument(s), got " +string m13s655 "config.decode expects " +string m13s656 "config.decode requires an explicit struct type" +string m13s657 "|" +string m13s658 "json.decode type argument must be a concrete struct type" +string m13s659 "config_mod" +string m13s660 "config" +string m13s661 "std.config" +string m13s662 "TomlDecodeError" +string m13s663 "YamlDecodeError" +string m13s664 "yaml" +string m13s665 "yaml_mod" +string m13s666 "toml" +string m13s667 "toml_mod" +string m13s668 "std.yaml" +string m13s669 "json_mod" +string m13s670 "json" +string m13s671 "unary 'not' requires Bool, got " +string m13s672 "not" +string m13s673 "unary - requires numeric type, got " +string m13s674 "negate" +string m13s675 "pipe type mismatch: function expects " +string m13s676 "' must take exactly 1 parameter" +string m13s677 "pipe target '" +string m13s678 "' is not a function" +string m13s679 "pipe operator requires a function name on the right" +string m13s680 "operator 'or' requires Bool, got " +string m13s681 "or" +string m13s682 "operator 'and' requires Bool, got " +string m13s683 "and" +string m13s684 "operator >= type mismatch: " +string m13s685 "operator >= requires numeric or string type, got " +string m13s686 "gte" +string m13s687 "operator <= type mismatch: " +string m13s688 "operator <= requires numeric or string type, got " +string m13s689 "lte" +string m13s690 "operator > type mismatch: " +string m13s691 "operator > requires numeric or string type, got " +string m13s692 "gt" +string m13s693 "operator < type mismatch: " +string m13s694 "operator < requires numeric or string type, got " +string m13s695 "lt" +string m13s696 "operator != type mismatch: " +string m13s697 "neq" +string m13s698 "operator == type mismatch: " +string m13s699 "eq" +string m13s700 "operator % type mismatch: " +string m13s701 "operator % requires integer type, got " +string m13s702 "mod" +string m13s703 "operator / type mismatch: " +string m13s704 "operator / requires numeric type, got " +string m13s705 "div" +string m13s706 "operator * type mismatch: " +string m13s707 "operator * requires numeric type, got " +string m13s708 "mul" +string m13s709 "operator - type mismatch: " +string m13s710 "operator - requires numeric type, got " +string m13s711 "sub" +string m13s712 "operator + type mismatch: " +string m13s713 "operator + requires numeric type, got " +string m13s714 "pipe" +string m13s715 "undefined variable: " +string m13s716 "import it where it is defined" +string m13s717 "' belongs to another module and is not imported here" +string m13s718 "await" +string m13s719 "spawn" +string m13s720 "struct_init" +string m13s721 "lambda" +string m13s722 "match_expr" +string m13s723 "select_expr" +string m13s724 "catch_expr" +string m13s725 "try" +string m13s726 "unwrap" +string m13s727 "if_expr" +string m13s728 "string interpolation requires a stringifiable value, got " +string m13s729 "lit" +string m13s730 "interp_spec" +string m13s731 "string_interp" +string m13s732 "grouped" +string m13s733 "unary" +string m13s734 "binary" +string m13s735 "self" +string m13s736 "bool_lit" +string m13s737 "string_lit" +string m13s738 "float_lit" +string m13s739 "int_lit" +string m13s740 "cannot iterate over " +string m13s741 ".." +string m13s742 "range bounds must be Int, got " +string m13s743 "range" +string m13s744 ".next" +string m13s745 "while let" +string m13s746 "if let" +string m13s747 " supports variant patterns and optional bindings" +string m13s748 "E245" +string m13s749 " with a bare binding needs an optional subject, got " +string m13s750 "else" +string m13s751 "then" +string m13s752 "elif" +string m13s753 "fail type mismatch: expected " +string m13s754 "fail requires function to return a result type" +string m13s755 "E234" +string m13s756 "fail outside of function" +string m13s757 "E231" +string m13s758 "change the return type to " +string m13s759 "return type mismatch: expected " +string m13s760 ", got Void" +string m13s761 "return outside of function" +string m13s762 "lambda returns disagree: " +string m13s763 "type mismatch: expected " +string m13s764 " requires numeric type, got " +string m13s765 "operator " +string m13s766 "=" +string m13s767 "declare with 'mut': mut " +string m13s768 "cannot assign to immutable variable '" +string m13s769 "E216" +string m13s770 "try_expr" +string m13s771 "bind" +string m13s772 "binding" +string m13s773 "errdefer" +string m13s774 "defer" +string m13s775 "continue" +string m13s776 "break" +string m13s777 "fail" +string m13s778 "return" +string m13s779 "move the control flow out of the defer, or wrap the cleanup in a helper function" +string m13s780 "a deferred statement must be a plain side-effect (no return/fail/break/continue, no `!`/`?`, no defer or binding)" +string m13s781 "E260" +string m13s782 "use `defer` for cleanup that must always run, or give the function a `T!` return type" +string m13s783 "errdefer is only meaningful in a function returning a result (`T!`)" +string m13s784 "errdefer is only allowed inside a function" +string m13s785 "defer is only allowed inside a function" +string m13s786 "continue outside of loop" +string m13s787 "E215" +string m13s788 "break outside of loop" +string m13s789 "for_stmt" +string m13s790 "while_let" +string m13s791 "if_let" +string m13s792 "while_stmt" +string m13s793 "if_stmt" +string m13s794 "assignment" +string m13s795 "mut" +string m13s796 "fn_decl" +string m13s797 "pub" +string m13s798 " is missing associated type: " +string m13s799 " for " +string m13s800 "impl of " +string m13s801 "E229" +string m13s802 " is missing method: " +string m13s803 "E235" +string m13s804 "fn_sig" +string m13s805 "assoc_type_bind" +string m13s806 "for_type" +string m13s807 "test_decl" +string m13s808 "impl_decl" +string m13s809 "threadlocal" +string m13s810 "import" +string m13s811 "from_import" +string m13s812 "assoc_type" +string m13s813 "' is a builtin type name and cannot be used as an enum name" +string m13s814 "E250" +string m13s815 "' must be " +string m13s816 "default for field '" +string m13s817 " weak" +string m13s818 "' is a builtin type name and cannot be used as a struct name" +string m13s819 "' must be an optional struct type (T?)" +string m13s820 "weak field '" +string m13s821 "E249" +string m13s822 "parameter requires a type annotation" +string m13s823 "type_alias" +string m13s824 "interface_decl" +string m13s825 "unknown generic type: " +string m13s826 "Channel expects 1 type argument, got " +string m13s827 "Task expects 1 type argument, got " +string m13s828 "Map expects 2 type arguments, got " +string m13s829 "Set expects 1 type argument, got " +string m13s830 "List expects 1 type argument, got " +string m13s831 "type nesting too deep" +string m13s832 "E233" +string m13s833 "import it from the module that defines it" +string m13s834 "' is not declared by module '" +string m13s835 "E246" +string m13s836 "*" +string m13s837 "parse_int failed" +string m13s838 "file_open_read failed" +string m13s839 "file_open_write failed" +string m13s840 "file_open_append failed" +string m13s841 "byte_buffer_write failed" +string m13s842 "byte_buffer_write_string_utf8 failed" +string m13s843 "byte_buffer_write_byte failed" +string m13s844 "file_write failed" +string m13s845 "file_write_bytes failed" +string m13s846 "tcp_connect failed" +string m13s847 "tcp_listen failed" +string m13s848 "tcp_accept failed" +string m13s849 "tcp_write failed" +string m13s850 "tcp_write_bytes failed" +string m13s851 "process_spawn failed" +string m13s852 "process_spawn_argv failed" +string m13s853 "process_output_argv failed" +string m13s854 "process_write failed" +string m13s855 "process_write_bytes failed" +string m13s856 "crypto_x25519_keygen failed" +string m13s857 "write_file failed" +string m13s858 "append_file failed" +string m13s859 "write_file_bytes failed" +string m13s860 "append_file_bytes failed" +string m13s861 "read_file failed" +string m13s862 "exec_output failed" +string m13s863 "dns_resolve failed" +string m13s864 "bytes_to_string_utf8 failed" +string m13s865 "bytes_substring_utf8 failed" +string m13s866 "file_read failed" +string m13s867 "tcp_read failed" +string m13s868 "process_read failed" +string m13s869 "process_read_err failed" +string m13s870 "read_file_bytes failed" +string m13s871 "b64_decode failed" +string m13s872 "from_hex failed" +string m13s873 "file_read_bytes failed" +string m13s874 "tcp_read_bytes failed" +string m13s875 "process_read_bytes failed" +string m13s876 "process_read_err_bytes failed" +string m13s877 "crypto_x25519_public_key failed" +string m13s878 "crypto_x25519_shared_secret failed" +string m13s879 "crypto_aes_128_gcm_seal failed" +string m13s880 "crypto_aes_128_gcm_open failed" +string m13s881 "crypto_chacha20_poly1305_seal failed" +string m13s882 "crypto_chacha20_poly1305_open failed" +string m13s883 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m13s884 "crypto_blake2b failed" +string m13s885 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -29055,7 +29145,7 @@ call 37 pith_cstring_retain void 1 36 call 38 pith_cstring_release void 1 34 store value 36 load 39 kind -strref 40 m13s795 +strref 40 m13s797 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 brif 41 L9 L10 @@ -29094,7 +29184,7 @@ jmp L8 label L10 label L8 load 65 kind -strref 66 m13s808 +strref 66 m13s810 call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 66 brif 67 L15 L16 @@ -29209,7 +29299,7 @@ label L32 jmp L14 label L16 load 138 kind -strref 139 m13s809 +strref 139 m13s811 call 140 pith_cstring_eq bool 2 138 139 call 141 pith_cstring_release void 1 139 brif 140 L35 L36 @@ -29305,7 +29395,7 @@ label L55 load 193 parts iconst 194 1 call 195 pith_list_get_value_strict string 2 193 194 -strref 196 m13s834 +strref 196 m13s836 call 197 pith_cstring_eq bool 2 195 196 call 198 pith_cstring_release void 1 196 brif 197 L58 L59 @@ -29401,23 +29491,23 @@ eq 256 254 255 brif 256 L79 L80 label L79 load 257 __loopvar_65_child -strref 258 m13s833 -strref 259 m13s349 +strref 258 m13s835 +strref 259 m13s351 load 260 imported_name concat 261 259 260 call 262 pith_cstring_release void 1 259 -strref 263 m13s832 +strref 263 m13s834 concat 264 261 263 call 265 pith_cstring_release void 1 261 call 266 pith_cstring_release void 1 263 load 267 mod_path concat 268 264 267 call 269 pith_cstring_release void 1 264 -strref 270 m13s349 +strref 270 m13s351 concat 271 268 270 call 272 pith_cstring_release void 1 268 call 273 pith_cstring_release void 1 270 -strref 274 m13s831 +strref 274 m13s833 call 275 checker_diagnostics_report_error_with_fix_at void 4 257 258 271 274 call 276 pith_cstring_release void 1 258 call 277 pith_cstring_release void 1 271 @@ -29611,8 +29701,8 @@ load 23 checker_type_resolve_depth iconst 24 1 sub 25 23 24 store checker_type_resolve_depth 25 -strref 26 m13s830 -strref 27 m13s829 +strref 26 m13s832 +strref 27 m13s831 call 28 checker_diagnostics_report_error void 2 26 27 call 29 pith_cstring_release void 1 26 call 30 pith_cstring_release void 1 27 @@ -29637,7 +29727,7 @@ load 44 types_TID_ERR store result 44 load 45 node field 46 45 0 string kind -strref 47 m13s564 +strref 47 m13s566 call 48 pith_cstring_eq bool 2 46 47 call 49 pith_cstring_release void 1 47 brif 48 L95 L96 @@ -29650,7 +29740,7 @@ jmp L94 label L96 load 53 node field 54 53 0 string kind -strref 55 m13s563 +strref 55 m13s565 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 brif 56 L97 L98 @@ -29662,7 +29752,7 @@ jmp L94 label L98 load 60 node field 61 60 0 string kind -strref 62 m13s562 +strref 62 m13s564 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 brif 63 L99 L100 @@ -29691,7 +29781,7 @@ jmp L94 label L100 load 77 node field 78 77 0 string kind -strref 79 m13s561 +strref 79 m13s563 call 80 pith_cstring_eq bool 2 78 79 call 81 pith_cstring_release void 1 79 brif 80 L104 L105 @@ -29730,7 +29820,7 @@ jmp L94 label L105 load 103 node field 104 103 0 string kind -strref 105 m13s560 +strref 105 m13s562 call 106 pith_cstring_eq bool 2 104 105 call 107 pith_cstring_release void 1 105 brif 106 L109 L110 @@ -29776,7 +29866,7 @@ jmp L94 label L110 load 132 node field 133 132 0 string kind -strref 134 m13s559 +strref 134 m13s561 call 135 pith_cstring_eq bool 2 133 134 call 136 pith_cstring_release void 1 134 brif 135 L115 L116 @@ -29811,7 +29901,7 @@ call 154 pith_struct_release void 1 151 store cn 153 load 155 cn field 156 155 0 string kind -strref 157 m13s323 +strref 157 m13s325 call 158 pith_cstring_eq bool 2 156 157 call 159 pith_cstring_release void 1 157 brif 158 L122 L123 @@ -29827,7 +29917,7 @@ jmp L121 label L123 load 167 cn field 168 167 0 string kind -strref 169 m13s555 +strref 169 m13s557 call 170 pith_cstring_eq bool 2 168 169 call 171 pith_cstring_release void 1 169 brif 170 L124 L125 @@ -30267,8 +30357,8 @@ call 65 pith_cstring_release void 1 64 ret 61 label L170 label L168 -strref 66 m13s310 -strref 67 m13s311 +strref 66 m13s312 +strref 67 m13s313 load 68 name concat 69 67 68 call 70 pith_cstring_release void 1 67 @@ -30370,8 +30460,8 @@ iconst 8 1 neq 9 7 8 brif 9 L179 L180 label L179 -strref 10 m13s621 -strref 11 m13s828 +strref 10 m13s623 +strref 11 m13s830 load 12 type_args call 13 pith_list_len int 1 12 call 14 int_to_string string 1 13 @@ -30404,8 +30494,8 @@ iconst 32 1 neq 33 31 32 brif 33 L185 L186 label L185 -strref 34 m13s621 -strref 35 m13s827 +strref 34 m13s623 +strref 35 m13s829 load 36 type_args call 37 pith_list_len int 1 36 call 38 int_to_string string 1 37 @@ -30438,8 +30528,8 @@ iconst 56 2 neq 57 55 56 brif 57 L191 L192 label L191 -strref 58 m13s621 -strref 59 m13s826 +strref 58 m13s623 +strref 59 m13s828 load 60 type_args call 61 pith_list_len int 1 60 call 62 int_to_string string 1 61 @@ -30475,8 +30565,8 @@ iconst 83 1 neq 84 82 83 brif 84 L197 L198 label L197 -strref 85 m13s621 -strref 86 m13s825 +strref 85 m13s623 +strref 86 m13s827 load 87 type_args call 88 pith_list_len int 1 87 call 89 int_to_string string 1 88 @@ -30509,8 +30599,8 @@ iconst 107 1 neq 108 106 107 brif 108 L203 L204 label L203 -strref 109 m13s621 -strref 110 m13s824 +strref 109 m13s623 +strref 110 m13s826 load 111 type_args call 112 pith_list_len int 1 111 call 113 int_to_string string 1 112 @@ -30544,8 +30634,8 @@ call 131 checker_instantiate_generic_type int 2 129 130 ret 131 label L207 label L205 -strref 132 m13s310 -strref 133 m13s823 +strref 132 m13s312 +strref 133 m13s825 load 134 base concat 135 133 134 call 136 pith_cstring_release void 1 133 @@ -30754,7 +30844,7 @@ call 28 pith_struct_release void 1 25 store node 27 load 29 node field 30 29 0 string kind -strref 31 m13s564 +strref 31 m13s566 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 brif 32 L224 L225 @@ -30959,7 +31049,7 @@ label L225 label L223 load 166 node field 167 166 0 string kind -strref 168 m13s563 +strref 168 m13s565 call 169 pith_cstring_eq bool 2 167 168 call 170 pith_cstring_release void 1 168 brif 169 L256 L257 @@ -31019,7 +31109,7 @@ label L257 label L255 load 209 node field 210 209 0 string kind -strref 211 m13s562 +strref 211 m13s564 call 212 pith_cstring_eq bool 2 210 211 call 213 pith_cstring_release void 1 211 brif 212 L263 L264 @@ -31073,7 +31163,7 @@ label L264 label L262 load 252 node field 253 252 0 string kind -strref 254 m13s561 +strref 254 m13s563 call 255 pith_cstring_eq bool 2 253 254 call 256 pith_cstring_release void 1 254 brif 255 L269 L270 @@ -31128,7 +31218,7 @@ label L270 label L268 load 294 node field 295 294 0 string kind -strref 296 m13s560 +strref 296 m13s562 call 297 pith_cstring_eq bool 2 295 296 call 298 pith_cstring_release void 1 296 brif 297 L275 L276 @@ -31188,7 +31278,7 @@ label L276 label L274 load 337 node field 338 337 0 string kind -strref 339 m13s559 +strref 339 m13s561 call 340 pith_cstring_eq bool 2 338 339 call 341 pith_cstring_release void 1 339 brif 340 L282 L283 @@ -31223,7 +31313,7 @@ call 359 pith_struct_release void 1 356 store cn 358 load 360 cn field 361 360 0 string kind -strref 362 m13s323 +strref 362 m13s325 call 363 pith_cstring_eq bool 2 361 362 call 364 pith_cstring_release void 1 362 brif 363 L289 L290 @@ -31241,7 +31331,7 @@ jmp L288 label L290 load 374 cn field 375 374 0 string kind -strref 376 m13s555 +strref 376 m13s557 call 377 pith_cstring_eq bool 2 375 376 call 378 pith_cstring_release void 1 376 brif 377 L291 L292 @@ -31390,7 +31480,7 @@ call 5 pith_struct_release void 1 2 store node 4 load 6 node field 7 6 0 string kind -strref 8 m13s795 +strref 8 m13s797 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L302 L303 @@ -31405,7 +31495,7 @@ jmp L301 label L303 load 17 node field 18 17 0 string kind -strref 19 m13s809 +strref 19 m13s811 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L304 L305 @@ -31417,7 +31507,7 @@ ret 24 label L305 load 25 node field 26 25 0 string kind -strref 27 m13s808 +strref 27 m13s810 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L306 L307 @@ -31448,7 +31538,7 @@ call 6 pith_struct_release void 1 3 store node 5 load 7 node field 8 7 0 string kind -strref 9 m13s807 +strref 9 m13s809 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 brif 10 L309 L310 @@ -31467,7 +31557,7 @@ label L310 label L308 load 21 node field 22 21 0 string kind -strref 23 m13s794 +strref 23 m13s796 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 brif 24 L312 L313 @@ -31480,7 +31570,7 @@ jmp L311 label L313 load 30 node field 31 30 0 string kind -strref 32 m13s287 +strref 32 m13s289 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 brif 33 L314 L315 @@ -31492,7 +31582,7 @@ jmp L311 label L315 load 38 node field 39 38 0 string kind -strref 40 m13s286 +strref 40 m13s288 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 brif 41 L316 L317 @@ -31504,7 +31594,7 @@ jmp L311 label L317 load 46 node field 47 46 0 string kind -strref 48 m13s822 +strref 48 m13s824 call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 brif 49 L318 L319 @@ -31516,7 +31606,7 @@ jmp L311 label L319 load 54 node field 55 54 0 string kind -strref 56 m13s806 +strref 56 m13s808 call 57 pith_cstring_eq bool 2 55 56 call 58 pith_cstring_release void 1 56 brif 57 L320 L321 @@ -31528,7 +31618,7 @@ jmp L311 label L321 load 62 node field 63 62 0 string kind -strref 64 m13s821 +strref 64 m13s823 call 65 pith_cstring_eq bool 2 63 64 call 66 pith_cstring_release void 1 64 brif 65 L322 L323 @@ -31539,7 +31629,7 @@ jmp L311 label L323 load 69 node field 70 69 0 string kind -strref 71 m13s770 +strref 71 m13s772 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 brif 72 L324 L325 @@ -31551,7 +31641,7 @@ ret 76 label L325 load 77 node field 78 77 0 string kind -strref 79 m13s805 +strref 79 m13s807 call 80 pith_cstring_eq bool 2 78 79 call 81 pith_cstring_release void 1 79 brif 80 L326 L327 @@ -31728,7 +31818,7 @@ call 20 pith_struct_release void 1 17 store cn 19 load 21 cn field 22 21 0 string kind -strref 23 m13s323 +strref 23 m13s325 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 brif 24 L351 L352 @@ -31751,8 +31841,8 @@ load 37 ptid call 38 pith_list_push_value void 2 36 37 jmp L353 label L355 -strref 39 m13s322 -strref 40 m13s820 +strref 39 m13s324 +strref 40 m13s822 call 41 checker_diagnostics_report_error void 2 39 40 call 42 pith_cstring_release void 1 39 call 43 pith_cstring_release void 1 40 @@ -31764,7 +31854,7 @@ jmp L350 label L352 load 47 cn field 48 47 0 string kind -strref 49 m13s555 +strref 49 m13s557 call 50 pith_cstring_eq bool 2 48 49 call 51 pith_cstring_release void 1 49 brif 50 L356 L357 @@ -31862,12 +31952,12 @@ iconst 34 0 ret 34 label L363 label L361 -strref 35 m13s819 -strref 36 m13s818 +strref 35 m13s821 +strref 36 m13s820 load 37 fname concat 38 36 37 call 39 pith_cstring_release void 1 36 -strref 40 m13s817 +strref 40 m13s819 concat 41 38 40 call 42 pith_cstring_release void 1 38 call 43 pith_cstring_release void 1 40 @@ -31915,16 +32005,16 @@ call 30 pith_cstring_release void 1 28 strref 31 m13s25 call 32 pith_list_push_value void 2 3 31 call 33 pith_cstring_release void 1 31 -strref 34 m13s279 +strref 34 m13s281 call 35 pith_list_push_value void 2 3 34 call 36 pith_cstring_release void 1 34 -strref 37 m13s278 +strref 37 m13s280 call 38 pith_list_push_value void 2 3 37 call 39 pith_cstring_release void 1 37 -strref 40 m13s277 +strref 40 m13s279 call 41 pith_list_push_value void 2 3 40 call 42 pith_cstring_release void 1 40 -strref 43 m13s276 +strref 43 m13s278 call 44 pith_list_push_value void 2 3 43 call 45 pith_cstring_release void 1 43 call 46 pith_list_release_handle void 1 2 @@ -32021,12 +32111,12 @@ call 19 checker_is_reserved_type_name bool 1 18 brif 19 L376 L377 label L376 load 20 node_idx -strref 21 m13s812 -strref 22 m13s349 +strref 21 m13s814 +strref 22 m13s351 load 23 name concat 24 22 23 call 25 pith_cstring_release void 1 22 -strref 26 m13s816 +strref 26 m13s818 concat 27 24 26 call 28 pith_cstring_release void 1 24 call 29 pith_cstring_release void 1 26 @@ -32171,7 +32261,7 @@ call 143 pith_struct_release void 1 140 store cn 142 load 144 cn field 145 144 0 string kind -strref 146 m13s285 +strref 146 m13s287 call 147 pith_cstring_eq bool 2 145 146 call 148 pith_cstring_release void 1 146 brif 147 L386 L387 @@ -32184,13 +32274,13 @@ call 153 pith_cstring_release void 1 149 store fname 152 load 154 cn field 155 154 8 string value -strref 156 m13s284 +strref 156 m13s286 call 157 pith_cstring_contains bool 2 155 156 call 158 pith_cstring_release void 1 156 store is_pub 157 load 159 cn field 160 159 8 string value -strref 161 m13s283 +strref 161 m13s285 call 162 pith_cstring_contains bool 2 160 161 call 163 pith_cstring_release void 1 161 store is_mut 162 @@ -32215,7 +32305,7 @@ load 178 ftid call 179 pith_list_push_value void 2 177 178 load 180 cn field 181 180 8 string value -strref 182 m13s815 +strref 182 m13s817 call 183 pith_cstring_contains bool 2 181 182 call 184 pith_cstring_release void 1 182 brif 183 L392 L393 @@ -32289,12 +32379,12 @@ iconst 232 0 eq 233 231 232 brif 233 L405 L406 label L405 -strref 234 m13s304 -strref 235 m13s814 +strref 234 m13s306 +strref 235 m13s816 load 236 fname concat 237 235 236 call 238 pith_cstring_release void 1 235 -strref 239 m13s813 +strref 239 m13s815 concat 240 237 239 call 241 pith_cstring_release void 1 237 call 242 pith_cstring_release void 1 239 @@ -32303,7 +32393,7 @@ call 244 types_get_type_name string 1 243 concat 245 240 244 call 246 pith_cstring_release void 1 240 call 247 pith_cstring_release void 1 244 -strref 248 m13s301 +strref 248 m13s303 concat 249 245 248 call 250 pith_cstring_release void 1 245 call 251 pith_cstring_release void 1 248 @@ -32434,12 +32524,12 @@ call 14 checker_is_reserved_type_name bool 1 13 brif 14 L408 L409 label L408 load 15 node_idx -strref 16 m13s812 -strref 17 m13s349 +strref 16 m13s814 +strref 17 m13s351 load 18 name concat 19 17 18 call 20 pith_cstring_release void 1 17 -strref 21 m13s811 +strref 21 m13s813 concat 22 19 21 call 23 pith_cstring_release void 1 19 call 24 pith_cstring_release void 1 21 @@ -32527,7 +32617,7 @@ call 87 pith_struct_release void 1 84 store cn 86 load 88 cn field 89 88 0 string kind -strref 90 m13s282 +strref 90 m13s284 call 91 pith_cstring_eq bool 2 89 90 call 92 pith_cstring_release void 1 90 brif 91 L418 L419 @@ -32674,7 +32764,7 @@ call 38 pith_struct_release void 1 35 store cn 37 load 39 cn field 40 39 0 string kind -strref 41 m13s571 +strref 41 m13s573 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 brif 42 L429 L430 @@ -32687,7 +32777,7 @@ jmp L428 label L430 load 48 cn field 49 48 0 string kind -strref 50 m13s810 +strref 50 m13s812 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 brif 51 L431 L432 @@ -32860,7 +32950,7 @@ call 38 pith_struct_release void 1 32 store second_node 37 load 39 second_node field 40 39 0 string kind -strref 41 m13s804 +strref 41 m13s806 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 brif 42 L446 L447 @@ -33038,7 +33128,7 @@ call 166 pith_struct_release void 1 163 store cn 165 load 167 cn field 168 167 0 string kind -strref 169 m13s803 +strref 169 m13s805 call 170 pith_cstring_eq bool 2 168 169 call 171 pith_cstring_release void 1 169 brif 170 L463 L464 @@ -33153,7 +33243,7 @@ iconst 249 0 store method_is_pub 249 load 250 cn field 251 250 0 string kind -strref 252 m13s795 +strref 252 m13s797 call 253 pith_cstring_eq bool 2 251 252 call 254 pith_cstring_release void 1 252 brif 253 L476 L477 @@ -33175,7 +33265,7 @@ label L477 label L475 load 264 cn field 265 264 0 string kind -strref 266 m13s794 +strref 266 m13s796 call 267 pith_cstring_eq bool 2 265 266 call 268 pith_cstring_release void 1 266 brif 267 L479 L480 @@ -33305,7 +33395,7 @@ call 5 pith_struct_release void 1 2 store node 4 load 6 node field 7 6 0 string kind -strref 8 m13s795 +strref 8 m13s797 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L486 L487 @@ -33323,7 +33413,7 @@ label L487 label L485 load 19 node field 20 19 0 string kind -strref 21 m13s806 +strref 21 m13s808 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 brif 22 L489 L490 @@ -33393,7 +33483,7 @@ call 37 pith_struct_release void 1 31 store second_node 36 load 38 second_node field 39 38 0 string kind -strref 40 m13s804 +strref 40 m13s806 call 42 pith_cstring_eq bool 2 39 40 iconst 43 1 sub 41 43 42 @@ -33542,7 +33632,7 @@ call 152 pith_struct_release void 1 149 store mn 151 load 153 mn field 154 153 0 string kind -strref 155 m13s794 +strref 155 m13s796 call 156 pith_cstring_eq bool 2 154 155 call 157 pith_cstring_release void 1 155 brif 156 L510 L511 @@ -33822,7 +33912,7 @@ call 15 pith_struct_release void 1 12 store cn 14 load 16 cn field 17 16 0 string kind -strref 18 m13s571 +strref 18 m13s573 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L536 L537 @@ -33883,7 +33973,7 @@ call 19 pith_struct_release void 1 16 store cn 18 load 20 cn field 21 20 0 string kind -strref 22 m13s571 +strref 22 m13s573 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L543 L544 @@ -34280,7 +34370,7 @@ call 19 pith_struct_release void 1 16 store cn 18 load 20 cn field 21 20 0 string kind -strref 22 m13s323 +strref 22 m13s325 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L598 L599 @@ -34354,7 +34444,7 @@ call 15 pith_struct_release void 1 12 store cn 14 load 16 cn field 17 16 0 string kind -strref 18 m13s555 +strref 18 m13s557 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L608 L609 @@ -34483,7 +34573,7 @@ iconst 5 0 store child_name 5 load 6 node field 7 6 0 string kind -strref 8 m13s564 +strref 8 m13s566 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L626 L627 @@ -34588,7 +34678,7 @@ label L627 label L625 load 86 node field 87 86 0 string kind -strref 88 m13s563 +strref 88 m13s565 call 89 pith_cstring_eq bool 2 87 88 call 90 pith_cstring_release void 1 88 brif 89 L636 L637 @@ -34712,7 +34802,7 @@ iconst 8 0 store child_name 8 load 9 node field 10 9 0 string kind -strref 11 m13s564 +strref 11 m13s566 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 brif 12 L646 L647 @@ -34871,7 +34961,7 @@ label L647 label L645 load 132 node field 133 132 0 string kind -strref 134 m13s563 +strref 134 m13s565 call 135 pith_cstring_eq bool 2 133 134 call 136 pith_cstring_release void 1 134 brif 135 L662 L663 @@ -35033,7 +35123,7 @@ endfunc func checker_binding_is_mutable 1 bool param value load 1 value -strref 2 m13s283 +strref 2 m13s285 call 3 pith_cstring_contains bool 2 1 2 call 4 pith_cstring_release void 1 2 ret 3 @@ -35091,7 +35181,7 @@ call 5 pith_struct_release void 1 2 store node 4 load 6 node field 7 6 0 string kind -strref 8 m13s795 +strref 8 m13s797 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L682 L683 @@ -35105,7 +35195,7 @@ jmp L681 label L683 load 16 node field 17 16 0 string kind -strref 18 m13s809 +strref 18 m13s811 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L684 L685 @@ -35117,7 +35207,7 @@ ret 23 label L685 load 24 node field 25 24 0 string kind -strref 26 m13s808 +strref 26 m13s810 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 brif 27 L686 L687 @@ -35146,7 +35236,7 @@ call 5 pith_struct_release void 1 2 store node 4 load 6 node field 7 6 0 string kind -strref 8 m13s807 +strref 8 m13s809 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L689 L690 @@ -35164,7 +35254,7 @@ label L690 label L688 load 19 node field 20 19 0 string kind -strref 21 m13s794 +strref 21 m13s796 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 brif 22 L692 L693 @@ -35175,7 +35265,7 @@ jmp L691 label L693 load 26 node field 27 26 0 string kind -strref 28 m13s770 +strref 28 m13s772 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 brif 29 L694 L695 @@ -35187,7 +35277,7 @@ jmp L691 label L695 load 34 node field 35 34 0 string kind -strref 36 m13s806 +strref 36 m13s808 call 37 pith_cstring_eq bool 2 35 36 call 38 pith_cstring_release void 1 36 brif 37 L696 L697 @@ -35198,7 +35288,7 @@ jmp L691 label L697 load 41 node field 42 41 0 string kind -strref 43 m13s805 +strref 43 m13s807 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 brif 44 L698 L699 @@ -35323,7 +35413,7 @@ call 74 pith_struct_release void 1 71 store cn 73 load 75 cn field 76 75 0 string kind -strref 77 m13s323 +strref 77 m13s325 call 78 pith_cstring_eq bool 2 76 77 call 79 pith_cstring_release void 1 77 brif 78 L714 L715 @@ -35349,7 +35439,7 @@ load 94 param_idx call 95 pith_list_get_value_strict int 2 93 94 load 96 cn field 97 96 8 string value -strref 98 m13s793 +strref 98 m13s795 call 99 pith_cstring_contains bool 2 97 98 call 100 pith_cstring_release void 1 98 call 101 scope_define_binding void 4 90 91 95 99 @@ -35364,7 +35454,7 @@ jmp L713 label L715 load 105 cn field 106 105 0 string kind -strref 107 m13s320 +strref 107 m13s322 call 108 pith_cstring_eq bool 2 106 107 call 109 pith_cstring_release void 1 107 brif 108 L719 L720 @@ -35422,7 +35512,7 @@ call 19 pith_struct_release void 1 13 store block 18 load 20 block field 21 20 0 string kind -strref 22 m13s319 +strref 22 m13s321 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L725 L726 @@ -35525,7 +35615,7 @@ call 31 pith_struct_release void 1 25 store second_node 30 load 32 second_node field 33 32 0 string kind -strref 34 m13s804 +strref 34 m13s806 call 35 pith_cstring_eq bool 2 33 34 call 36 pith_cstring_release void 1 34 brif 35 L735 L736 @@ -35641,7 +35731,7 @@ call 114 pith_struct_release void 1 111 store cn 113 load 115 cn field 116 115 0 string kind -strref 117 m13s803 +strref 117 m13s805 call 118 pith_cstring_eq bool 2 116 117 call 119 pith_cstring_release void 1 117 brif 118 L748 L749 @@ -35714,7 +35804,7 @@ call 158 pith_struct_release void 1 155 store cn 157 load 159 cn field 160 159 0 string kind -strref 161 m13s795 +strref 161 m13s797 call 162 pith_cstring_eq bool 2 160 161 call 163 pith_cstring_release void 1 161 brif 162 L761 L762 @@ -35732,7 +35822,7 @@ label L762 label L760 load 171 cn field 172 171 0 string kind -strref 173 m13s794 +strref 173 m13s796 call 174 pith_cstring_eq bool 2 172 173 call 175 pith_cstring_release void 1 173 brif 174 L764 L765 @@ -35797,7 +35887,7 @@ call 212 pith_struct_release void 1 209 store mn 211 load 213 mn field 214 213 0 string kind -strref 215 m13s794 +strref 215 m13s796 call 216 pith_cstring_eq bool 2 214 215 call 217 pith_cstring_release void 1 215 brif 216 L777 L778 @@ -35822,7 +35912,7 @@ jmp L776 label L778 load 229 mn field 230 229 0 string kind -strref 231 m13s802 +strref 231 m13s804 call 232 pith_cstring_eq bool 2 230 231 call 233 pith_cstring_release void 1 231 brif 232 L782 L783 @@ -35836,19 +35926,19 @@ iconst 239 0 eq 240 238 239 brif 240 L785 L786 label L785 -strref 241 m13s801 -strref 242 m13s798 +strref 241 m13s803 +strref 242 m13s800 load 243 iface_base concat 244 242 243 call 245 pith_cstring_release void 1 242 -strref 246 m13s797 +strref 246 m13s799 concat 247 244 246 call 248 pith_cstring_release void 1 244 call 249 pith_cstring_release void 1 246 load 250 concrete_name concat 251 247 250 call 252 pith_cstring_release void 1 247 -strref 253 m13s800 +strref 253 m13s802 concat 254 251 253 call 255 pith_cstring_release void 1 251 call 256 pith_cstring_release void 1 253 @@ -35950,19 +36040,19 @@ iconst 32 0 eq 33 31 32 brif 33 L795 L796 label L795 -strref 34 m13s799 -strref 35 m13s798 +strref 34 m13s801 +strref 35 m13s800 load 36 iface_base concat 37 35 36 call 38 pith_cstring_release void 1 35 -strref 39 m13s797 +strref 39 m13s799 concat 40 37 39 call 41 pith_cstring_release void 1 37 call 42 pith_cstring_release void 1 39 load 43 concrete_name concat 44 40 43 call 45 pith_cstring_release void 1 40 -strref 46 m13s796 +strref 46 m13s798 concat 47 44 46 call 48 pith_cstring_release void 1 44 call 49 pith_cstring_release void 1 46 @@ -36033,7 +36123,7 @@ call 24 pith_struct_release void 1 21 store cn 23 load 25 cn field 26 25 0 string kind -strref 27 m13s795 +strref 27 m13s797 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L805 L806 @@ -36051,7 +36141,7 @@ label L806 label L804 load 37 cn field 38 37 0 string kind -strref 39 m13s794 +strref 39 m13s796 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 brif 40 L808 L809 @@ -36110,7 +36200,7 @@ load 13 ret_type call 14 scope_create_function_scope int 2 12 13 store method_scope 14 load 15 method_scope -strref 16 m13s733 +strref 16 m13s735 load 17 type_tid iconst 18 0 call 19 scope_define_binding void 4 15 16 17 18 @@ -36141,7 +36231,7 @@ call 35 pith_struct_release void 1 32 store cn 34 load 36 cn field 37 36 0 string kind -strref 38 m13s323 +strref 38 m13s325 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 brif 39 L818 L819 @@ -36165,7 +36255,7 @@ load 53 param_idx call 54 pith_list_get_value_strict int 2 52 53 load 55 cn field 56 55 8 string value -strref 57 m13s793 +strref 57 m13s795 call 58 pith_cstring_contains bool 2 56 57 call 59 pith_cstring_release void 1 57 call 60 scope_define_binding void 4 50 51 54 58 @@ -36180,7 +36270,7 @@ jmp L817 label L819 load 64 cn field 65 64 0 string kind -strref 66 m13s320 +strref 66 m13s322 call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 66 brif 67 L823 L824 @@ -36241,7 +36331,7 @@ call 19 pith_struct_release void 1 16 store cn 18 load 20 cn field 21 20 0 string kind -strref 22 m13s320 +strref 22 m13s322 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 brif 23 L830 L831 @@ -36280,7 +36370,7 @@ call 8 pith_struct_release void 1 5 store node 7 load 9 node field 10 9 0 string kind -strref 11 m13s770 +strref 11 m13s772 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 brif 12 L833 L834 @@ -36292,7 +36382,7 @@ jmp L832 label L834 load 17 node field 18 17 0 string kind -strref 19 m13s792 +strref 19 m13s794 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L835 L836 @@ -36304,7 +36394,7 @@ jmp L832 label L836 load 25 node field 26 25 0 string kind -strref 27 m13s776 +strref 27 m13s778 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L837 L838 @@ -36316,7 +36406,7 @@ jmp L832 label L838 load 33 node field 34 33 0 string kind -strref 35 m13s775 +strref 35 m13s777 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 brif 36 L839 L840 @@ -36328,7 +36418,7 @@ jmp L832 label L840 load 41 node field 42 41 0 string kind -strref 43 m13s791 +strref 43 m13s793 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 brif 44 L841 L842 @@ -36340,7 +36430,7 @@ jmp L832 label L842 load 49 node field 50 49 0 string kind -strref 51 m13s790 +strref 51 m13s792 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 brif 52 L843 L844 @@ -36352,7 +36442,7 @@ jmp L832 label L844 load 57 node field 58 57 0 string kind -strref 59 m13s789 +strref 59 m13s791 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 brif 60 L845 L846 @@ -36364,7 +36454,7 @@ jmp L832 label L846 load 65 node field 66 65 0 string kind -strref 67 m13s788 +strref 67 m13s790 call 68 pith_cstring_eq bool 2 66 67 call 69 pith_cstring_release void 1 67 brif 68 L847 L848 @@ -36376,7 +36466,7 @@ jmp L832 label L848 load 73 node field 74 73 0 string kind -strref 75 m13s787 +strref 75 m13s789 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 brif 76 L849 L850 @@ -36388,7 +36478,7 @@ jmp L832 label L850 load 81 node field 82 81 0 string kind -strref 83 m13s774 +strref 83 m13s776 call 84 pith_cstring_eq bool 2 82 83 call 85 pith_cstring_release void 1 83 brif 84 L851 L852 @@ -36399,8 +36489,8 @@ iconst 88 0 eq 89 87 88 brif 89 L854 L855 label L854 -strref 90 m13s785 -strref 91 m13s786 +strref 90 m13s787 +strref 91 m13s788 call 92 checker_diagnostics_report_error void 2 90 91 call 93 pith_cstring_release void 1 90 call 94 pith_cstring_release void 1 91 @@ -36411,7 +36501,7 @@ jmp L832 label L852 load 95 node field 96 95 0 string kind -strref 97 m13s773 +strref 97 m13s775 call 98 pith_cstring_eq bool 2 96 97 call 99 pith_cstring_release void 1 97 brif 98 L856 L857 @@ -36422,8 +36512,8 @@ iconst 102 0 eq 103 101 102 brif 103 L859 L860 label L859 -strref 104 m13s785 -strref 105 m13s784 +strref 104 m13s787 +strref 105 m13s786 call 106 checker_diagnostics_report_error void 2 104 105 call 107 pith_cstring_release void 1 104 call 108 pith_cstring_release void 1 105 @@ -36434,7 +36524,7 @@ jmp L832 label L857 load 109 node field 110 109 0 string kind -strref 111 m13s720 +strref 111 m13s722 call 112 pith_cstring_eq bool 2 110 111 call 113 pith_cstring_release void 1 111 brif 112 L861 L862 @@ -36446,7 +36536,7 @@ jmp L832 label L862 load 117 node field 118 117 0 string kind -strref 119 m13s772 +strref 119 m13s774 call 120 pith_cstring_eq bool 2 118 119 call 121 pith_cstring_release void 1 119 brif 120 L863 L864 @@ -36458,7 +36548,7 @@ jmp L832 label L864 load 125 node field 126 125 0 string kind -strref 127 m13s771 +strref 127 m13s773 call 128 pith_cstring_eq bool 2 126 127 call 129 pith_cstring_release void 1 127 brif 128 L865 L866 @@ -36486,8 +36576,8 @@ iconst 4 0 lt 5 3 4 brif 5 L868 L869 label L868 -strref 6 m13s779 -strref 7 m13s783 +strref 6 m13s781 +strref 7 m13s785 call 8 checker_diagnostics_report_error void 2 6 7 call 9 pith_cstring_release void 1 6 call 10 pith_cstring_release void 1 7 @@ -36512,8 +36602,8 @@ iconst 5 0 lt 6 4 5 brif 6 L871 L872 label L871 -strref 7 m13s779 -strref 8 m13s782 +strref 7 m13s781 +strref 8 m13s784 call 9 checker_diagnostics_report_error void 2 7 8 call 10 pith_cstring_release void 1 7 call 11 pith_cstring_release void 1 8 @@ -36531,9 +36621,9 @@ sub 17 19 18 call 20 pith_cstring_release void 1 16 brif 17 L874 L875 label L874 -strref 21 m13s779 -strref 22 m13s781 -strref 23 m13s780 +strref 21 m13s781 +strref 22 m13s783 +strref 23 m13s782 call 24 checker_diagnostics_report_error_with_fix void 3 21 22 23 call 25 pith_cstring_release void 1 21 call 26 pith_cstring_release void 1 22 @@ -36571,9 +36661,9 @@ load 12 inner_idx call 13 checker_defer_body_has_forbidden_node bool 1 12 brif 13 L880 L881 label L880 -strref 14 m13s779 -strref 15 m13s778 -strref 16 m13s777 +strref 14 m13s781 +strref 15 m13s780 +strref 16 m13s779 call 17 checker_diagnostics_report_error_with_fix void 3 14 15 16 call 18 pith_cstring_release void 1 14 call 19 pith_cstring_release void 1 15 @@ -36612,14 +36702,14 @@ store __or_13_885 13 iconst 14 0 store __or_14_885 14 load 15 k -strref 16 m13s776 +strref 16 m13s778 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 store __or_14_885 17 brif 17 L886 L885 label L885 load 19 k -strref 20 m13s775 +strref 20 m13s777 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 store __or_14_885 21 @@ -36629,7 +36719,7 @@ store __or_13_885 23 brif 23 L888 L887 label L887 load 24 k -strref 25 m13s774 +strref 25 m13s776 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 store __or_13_885 26 @@ -36639,7 +36729,7 @@ store __or_12_885 28 brif 28 L890 L889 label L889 load 29 k -strref 30 m13s773 +strref 30 m13s775 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 store __or_12_885 31 @@ -36662,14 +36752,14 @@ store __or_40_894 40 iconst 41 0 store __or_41_894 41 load 42 k -strref 43 m13s772 +strref 43 m13s774 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 store __or_41_894 44 brif 44 L895 L894 label L894 load 46 k -strref 47 m13s771 +strref 47 m13s773 call 48 pith_cstring_eq bool 2 46 47 call 49 pith_cstring_release void 1 47 store __or_41_894 48 @@ -36679,7 +36769,7 @@ store __or_40_894 50 brif 50 L897 L896 label L896 load 51 k -strref 52 m13s770 +strref 52 m13s772 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 store __or_40_894 53 @@ -36689,7 +36779,7 @@ store __or_39_894 55 brif 55 L899 L898 label L898 load 56 k -strref 57 m13s769 +strref 57 m13s771 call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 store __or_39_894 58 @@ -36710,14 +36800,14 @@ store __or_66_903 66 iconst 67 0 store __or_67_903 67 load 68 k -strref 69 m13s723 +strref 69 m13s725 call 70 pith_cstring_eq bool 2 68 69 call 71 pith_cstring_release void 1 69 store __or_67_903 70 brif 70 L904 L903 label L903 load 72 k -strref 73 m13s768 +strref 73 m13s770 call 74 pith_cstring_eq bool 2 72 73 call 75 pith_cstring_release void 1 73 store __or_67_903 74 @@ -36727,7 +36817,7 @@ store __or_66_903 76 brif 76 L906 L905 label L905 load 77 k -strref 78 m13s724 +strref 78 m13s726 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 store __or_66_903 79 @@ -36973,7 +37063,7 @@ call 32 pith_struct_release void 1 29 store value_node 31 load 33 value_node field 34 33 0 string kind -strref 35 m13s312 +strref 35 m13s314 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 brif 36 L939 L940 @@ -37365,7 +37455,7 @@ iconst 119 0 store __and_119_997 119 load 120 entry field 121 120 0 string kind -strref 122 m13s317 +strref 122 m13s319 call 123 pith_cstring_eq bool 2 121 122 call 124 pith_cstring_release void 1 122 store __and_119_997 123 @@ -37494,7 +37584,7 @@ brif 51 L1010 L1011 label L1010 load 53 node field 54 53 0 string kind -strref 55 m13s312 +strref 55 m13s314 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 brif 56 L1013 L1014 @@ -37810,7 +37900,7 @@ iconst 148 0 store __and_148_1062 148 load 149 entry field 150 149 0 string kind -strref 151 m13s317 +strref 151 m13s319 call 152 pith_cstring_eq bool 2 150 151 call 153 pith_cstring_release void 1 151 store __and_148_1062 152 @@ -38095,14 +38185,14 @@ iconst 119 0 eq 120 118 119 brif 120 L1099 L1100 label L1099 -strref 121 m13s375 -strref 122 m13s761 +strref 121 m13s377 +strref 122 m13s763 load 123 annotated call 124 types_get_type_name string 1 123 concat 125 122 124 call 126 pith_cstring_release void 1 122 call 127 pith_cstring_release void 1 124 -strref 128 m13s301 +strref 128 m13s303 concat 129 125 128 call 130 pith_cstring_release void 1 125 call 131 pith_cstring_release void 1 128 @@ -38273,7 +38363,7 @@ call 25 pith_struct_release void 1 22 store target_node 24 load 26 target_node field 27 26 0 string kind -strref 28 m13s293 +strref 28 m13s295 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 brif 29 L1120 L1121 @@ -38286,17 +38376,17 @@ iconst 35 0 eq 36 34 35 brif 36 L1123 L1124 label L1123 -strref 37 m13s767 -strref 38 m13s766 +strref 37 m13s769 +strref 38 m13s768 load 39 target_node field 40 39 8 string value concat 41 38 40 call 42 pith_cstring_release void 1 38 -strref 43 m13s349 +strref 43 m13s351 concat 44 41 43 call 45 pith_cstring_release void 1 41 call 46 pith_cstring_release void 1 43 -strref 47 m13s765 +strref 47 m13s767 load 48 target_node field 49 48 8 string value concat 50 47 49 @@ -38383,7 +38473,7 @@ call 102 pith_cstring_retain void 1 101 call 103 pith_cstring_release void 1 99 store op 101 load 104 op -strref 105 m13s764 +strref 105 m13s766 call 106 pith_cstring_eq bool 2 104 105 call 107 pith_cstring_release void 1 105 brif 106 L1138 L1139 @@ -38400,14 +38490,14 @@ iconst 114 0 eq 115 113 114 brif 115 L1144 L1145 label L1144 -strref 116 m13s375 -strref 117 m13s761 +strref 116 m13s377 +strref 117 m13s763 load 118 target_type call 119 types_get_type_name string 1 118 concat 120 117 119 call 121 pith_cstring_release void 1 117 call 122 pith_cstring_release void 1 119 -strref 123 m13s301 +strref 123 m13s303 concat 124 120 123 call 125 pith_cstring_release void 1 120 call 126 pith_cstring_release void 1 123 @@ -38433,12 +38523,12 @@ iconst 137 0 eq 138 136 137 brif 138 L1147 L1148 label L1147 -strref 139 m13s413 -strref 140 m13s763 +strref 139 m13s415 +strref 140 m13s765 load 141 op concat 142 140 141 call 143 pith_cstring_release void 1 140 -strref 144 m13s762 +strref 144 m13s764 concat 145 142 144 call 146 pith_cstring_release void 1 142 call 147 pith_cstring_release void 1 144 @@ -38457,14 +38547,14 @@ load 157 val_type neq 158 156 157 brif 158 L1149 L1150 label L1149 -strref 159 m13s375 -strref 160 m13s761 +strref 159 m13s377 +strref 160 m13s763 load 161 target_type call 162 types_get_type_name string 1 161 concat 163 160 162 call 164 pith_cstring_release void 1 160 call 165 pith_cstring_release void 1 162 -strref 166 m13s301 +strref 166 m13s303 concat 167 163 166 call 168 pith_cstring_release void 1 163 call 169 pith_cstring_release void 1 166 @@ -38567,14 +38657,14 @@ iconst 45 0 eq 46 44 45 brif 46 L1168 L1169 label L1168 -strref 47 m13s375 -strref 48 m13s760 +strref 47 m13s377 +strref 48 m13s762 load 49 checker_lambda_inferred_return call 50 types_get_type_name string 1 49 concat 51 48 50 call 52 pith_cstring_release void 1 48 call 53 pith_cstring_release void 1 50 -strref 54 m13s369 +strref 54 m13s371 concat 55 51 54 call 56 pith_cstring_release void 1 51 call 57 pith_cstring_release void 1 54 @@ -38605,8 +38695,8 @@ iconst 72 0 lt 73 71 72 brif 73 L1171 L1172 label L1171 -strref 74 m13s755 -strref 75 m13s759 +strref 74 m13s757 +strref 75 m13s761 call 76 checker_diagnostics_report_error void 2 74 75 call 77 pith_cstring_release void 1 74 call 78 pith_cstring_release void 1 75 @@ -38630,14 +38720,14 @@ load 90 types_TID_VOID neq 91 89 90 brif 91 L1177 L1178 label L1177 -strref 92 m13s375 -strref 93 m13s757 +strref 92 m13s377 +strref 93 m13s759 load 94 expected call 95 types_get_type_name string 1 94 concat 96 93 95 call 97 pith_cstring_release void 1 93 call 98 pith_cstring_release void 1 95 -strref 99 m13s758 +strref 99 m13s760 concat 100 96 99 call 101 pith_cstring_release void 1 96 call 102 pith_cstring_release void 1 99 @@ -38781,7 +38871,7 @@ label L1181 label L1179 load 187 actual_node field 188 187 0 string kind -strref 189 m13s312 +strref 189 m13s314 call 190 pith_cstring_eq bool 2 188 189 call 191 pith_cstring_release void 1 189 brif 190 L1199 L1200 @@ -38918,14 +39008,14 @@ iconst 270 0 ret 270 label L1230 label L1228 -strref 271 m13s375 -strref 272 m13s757 +strref 271 m13s377 +strref 272 m13s759 load 273 expected call 274 types_get_type_name string 1 273 concat 275 272 274 call 276 pith_cstring_release void 1 272 call 277 pith_cstring_release void 1 274 -strref 278 m13s301 +strref 278 m13s303 concat 279 275 278 call 280 pith_cstring_release void 1 275 call 281 pith_cstring_release void 1 278 @@ -38934,7 +39024,7 @@ call 283 types_get_type_name string 1 282 concat 284 279 283 call 285 pith_cstring_release void 1 279 call 286 pith_cstring_release void 1 283 -strref 287 m13s756 +strref 287 m13s758 load 288 actual call 289 types_get_type_name string 1 288 concat 290 287 289 @@ -38964,8 +39054,8 @@ iconst 6 0 lt 7 5 6 brif 7 L1232 L1233 label L1232 -strref 8 m13s755 -strref 9 m13s754 +strref 8 m13s757 +strref 9 m13s756 call 10 checker_diagnostics_report_error void 2 8 9 call 11 pith_cstring_release void 1 8 call 12 pith_cstring_release void 1 9 @@ -38989,8 +39079,8 @@ sub 23 25 24 call 26 pith_cstring_release void 1 22 brif 23 L1235 L1236 label L1235 -strref 27 m13s753 -strref 28 m13s752 +strref 27 m13s755 +strref 28 m13s754 call 29 checker_diagnostics_report_error void 2 27 28 call 30 pith_cstring_release void 1 27 call 31 pith_cstring_release void 1 28 @@ -39038,15 +39128,15 @@ iconst 58 0 eq 59 57 58 brif 59 L1244 L1245 label L1244 -strref 60 m13s304 -strref 61 m13s751 +strref 60 m13s306 +strref 61 m13s753 load 62 ret_info field 63 62 80 int value_type call 64 types_get_type_name string 1 63 concat 65 61 64 call 66 pith_cstring_release void 1 61 call 67 pith_cstring_release void 1 64 -strref 68 m13s301 +strref 68 m13s303 concat 69 65 68 call 70 pith_cstring_release void 1 65 call 71 pith_cstring_release void 1 68 @@ -39122,8 +39212,8 @@ load 37 tid_bool neq 38 36 37 brif 38 L1253 L1254 label L1253 -strref 39 m13s375 -strref 40 m13s374 +strref 39 m13s377 +strref 40 m13s376 load 41 cond_type call 42 types_get_type_name string 1 41 concat 43 40 42 @@ -39148,7 +39238,7 @@ call 55 pith_struct_release void 1 49 store then_node 54 load 56 then_node field 57 56 0 string kind -strref 58 m13s749 +strref 58 m13s751 call 59 pith_cstring_eq bool 2 57 58 call 60 pith_cstring_release void 1 58 brif 59 L1256 L1257 @@ -39173,7 +39263,7 @@ call 74 pith_struct_release void 1 68 store block 73 load 75 block field 76 75 0 string kind -strref 77 m13s319 +strref 77 m13s321 call 78 pith_cstring_eq bool 2 76 77 call 79 pith_cstring_release void 1 77 brif 78 L1262 L1263 @@ -39228,7 +39318,7 @@ call 103 pith_struct_release void 1 100 store cn 102 load 104 cn field 105 104 0 string kind -strref 106 m13s750 +strref 106 m13s752 call 107 pith_cstring_eq bool 2 105 106 call 108 pith_cstring_release void 1 106 brif 107 L1272 L1273 @@ -39261,8 +39351,8 @@ load 127 tid_bool neq 128 126 127 brif 128 L1281 L1282 label L1281 -strref 129 m13s375 -strref 130 m13s374 +strref 129 m13s377 +strref 130 m13s376 load 131 econd call 132 types_get_type_name string 1 131 concat 133 130 132 @@ -39297,7 +39387,7 @@ call 150 pith_struct_release void 1 144 store ebody 149 load 151 ebody field 152 151 0 string kind -strref 153 m13s319 +strref 153 m13s321 call 154 pith_cstring_eq bool 2 152 153 call 155 pith_cstring_release void 1 153 brif 154 L1287 L1288 @@ -39309,7 +39399,7 @@ jmp L1286 label L1288 load 159 ebody field 160 159 0 string kind -strref 161 m13s749 +strref 161 m13s751 call 162 pith_cstring_eq bool 2 160 161 call 163 pith_cstring_release void 1 161 brif 162 L1289 L1290 @@ -39331,7 +39421,7 @@ call 175 pith_struct_release void 1 169 store eblock 174 load 176 eblock field 177 176 0 string kind -strref 178 m13s319 +strref 178 m13s321 call 179 pith_cstring_eq bool 2 177 178 call 180 pith_cstring_release void 1 178 brif 179 L1295 L1296 @@ -39355,7 +39445,7 @@ jmp L1271 label L1273 load 184 cn field 185 184 0 string kind -strref 186 m13s748 +strref 186 m13s750 call 187 pith_cstring_eq bool 2 185 186 call 188 pith_cstring_release void 1 186 brif 187 L1297 L1298 @@ -39380,7 +39470,7 @@ call 202 pith_struct_release void 1 196 store eblock 201 load 203 eblock field 204 203 0 string kind -strref 205 m13s319 +strref 205 m13s321 call 206 pith_cstring_eq bool 2 204 205 call 207 pith_cstring_release void 1 205 brif 206 L1303 L1304 @@ -39457,8 +39547,8 @@ load 25 tid_bool neq 26 24 25 brif 26 L1312 L1313 label L1312 -strref 27 m13s375 -strref 28 m13s374 +strref 27 m13s377 +strref 28 m13s376 load 29 cond_type call 30 types_get_type_name string 1 29 concat 31 28 30 @@ -39486,7 +39576,7 @@ call 45 pith_struct_release void 1 39 store body_node 44 load 46 body_node field 47 46 0 string kind -strref 48 m13s320 +strref 48 m13s322 call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 brif 49 L1315 L1316 @@ -39501,7 +39591,7 @@ jmp L1314 label L1316 load 57 body_node field 58 57 0 string kind -strref 59 m13s319 +strref 59 m13s321 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 brif 60 L1317 L1318 @@ -39550,7 +39640,7 @@ call 20 pith_struct_release void 1 17 store pat 19 load 21 pat field 22 21 0 string kind -strref 23 m13s342 +strref 23 m13s344 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 brif 24 L1323 L1324 @@ -39569,7 +39659,7 @@ label L1324 label L1322 load 35 pat field 36 35 0 string kind -strref 37 m13s338 +strref 37 m13s340 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 brif 38 L1326 L1327 @@ -39601,9 +39691,9 @@ iconst 60 0 ret 60 label L1330 label L1328 -strref 61 m13s746 +strref 61 m13s748 load 62 form -strref 63 m13s747 +strref 63 m13s749 concat 64 62 63 call 65 pith_cstring_release void 1 63 load 66 subj_type @@ -39622,9 +39712,9 @@ iconst 78 0 ret 78 label L1327 label L1325 -strref 79 m13s746 +strref 79 m13s748 load 80 form -strref 81 m13s745 +strref 81 m13s747 concat 82 80 81 call 83 pith_cstring_release void 1 81 call 84 checker_diagnostics_report_error void 2 79 82 @@ -39672,7 +39762,7 @@ iconst 22 1 call 23 pith_list_get_value_strict int 2 21 22 load 24 then_scope load 25 scope_id -strref 26 m13s744 +strref 26 m13s746 call 27 checker_check_let_pattern void 5 19 23 24 25 26 call 28 pith_cstring_release void 1 26 load 29 then_node @@ -39685,7 +39775,7 @@ call 35 pith_struct_release void 1 29 store then_node 34 load 36 then_node field 37 36 0 string kind -strref 38 m13s319 +strref 38 m13s321 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 brif 39 L1335 L1336 @@ -39716,7 +39806,7 @@ call 57 pith_struct_release void 1 51 store else_node 56 load 58 else_node field 59 58 0 string kind -strref 60 m13s319 +strref 60 m13s321 call 61 pith_cstring_eq bool 2 59 60 call 62 pith_cstring_release void 1 60 brif 61 L1341 L1342 @@ -39768,7 +39858,7 @@ iconst 19 1 call 20 pith_list_get_value_strict int 2 18 19 load 21 loop_scope load 22 scope_id -strref 23 m13s743 +strref 23 m13s745 call 24 checker_check_let_pattern void 5 16 20 21 22 23 call 25 pith_cstring_release void 1 23 load 26 body_node @@ -39781,7 +39871,7 @@ call 32 pith_struct_release void 1 26 store body_node 31 load 33 body_node field 34 33 0 string kind -strref 35 m13s319 +strref 35 m13s321 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 brif 36 L1347 L1348 @@ -39866,7 +39956,7 @@ call 48 pith_cstring_release void 1 45 store type_name 47 load 49 next_key load 50 type_name -strref 51 m13s742 +strref 51 m13s744 concat 52 50 51 call 53 pith_cstring_release void 1 51 call 54 pith_cstring_release void 1 49 @@ -39891,7 +39981,7 @@ brif 65 L1356 L1357 label L1356 load 68 next_key load 69 base -strref 70 m13s742 +strref 70 m13s744 concat 71 69 70 call 72 pith_cstring_release void 1 70 call 73 pith_cstring_release void 1 68 @@ -40211,7 +40301,7 @@ call 42 pith_struct_release void 1 36 store iter_node 41 load 43 iter_node field 44 43 0 string kind -strref 45 m13s741 +strref 45 m13s743 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 brif 46 L1387 L1388 @@ -40276,14 +40366,14 @@ label L1398 load 86 __or_79_1397 brif 86 L1395 L1396 label L1395 -strref 87 m13s413 -strref 88 m13s740 +strref 87 m13s415 +strref 88 m13s742 load 89 lo_type call 90 types_get_type_name string 1 89 concat 91 88 90 call 92 pith_cstring_release void 1 88 call 93 pith_cstring_release void 1 90 -strref 94 m13s739 +strref 94 m13s741 concat 95 91 94 call 96 pith_cstring_release void 1 91 call 97 pith_cstring_release void 1 94 @@ -40404,8 +40494,8 @@ load 175 it_elem store elem_type 175 jmp L1411 label L1413 -strref 176 m13s413 -strref 177 m13s738 +strref 176 m13s415 +strref 177 m13s740 load 178 iter_type call 179 types_get_type_name string 1 178 concat 180 177 179 @@ -40514,7 +40604,7 @@ call 264 pith_struct_release void 1 258 store body_node 263 load 265 body_node field 266 265 0 string kind -strref 267 m13s320 +strref 267 m13s322 call 268 pith_cstring_eq bool 2 266 267 call 269 pith_cstring_release void 1 267 brif 268 L1421 L1422 @@ -40529,7 +40619,7 @@ jmp L1420 label L1422 load 276 body_node field 277 276 0 string kind -strref 278 m13s319 +strref 278 m13s321 call 279 pith_cstring_eq bool 2 277 278 call 280 pith_cstring_release void 1 278 brif 279 L1423 L1424 @@ -40628,7 +40718,7 @@ call 22 pith_cstring_release void 1 20 store tid_err 21 load 23 node field 24 23 0 string kind -strref 25 m13s737 +strref 25 m13s739 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 brif 26 L1429 L1430 @@ -40643,7 +40733,7 @@ label L1430 label L1428 load 33 node field 34 33 0 string kind -strref 35 m13s736 +strref 35 m13s738 call 36 pith_cstring_eq bool 2 34 35 call 37 pith_cstring_release void 1 35 brif 36 L1432 L1433 @@ -40658,7 +40748,7 @@ label L1433 label L1431 load 43 node field 44 43 0 string kind -strref 45 m13s735 +strref 45 m13s737 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 brif 46 L1435 L1436 @@ -40673,7 +40763,7 @@ label L1436 label L1434 load 53 node field 54 53 0 string kind -strref 55 m13s734 +strref 55 m13s736 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 brif 56 L1438 L1439 @@ -40688,7 +40778,7 @@ label L1439 label L1437 load 63 node field 64 63 0 string kind -strref 65 m13s312 +strref 65 m13s314 call 66 pith_cstring_eq bool 2 64 65 call 67 pith_cstring_release void 1 65 brif 66 L1441 L1442 @@ -40703,7 +40793,7 @@ label L1442 label L1440 load 73 node field 74 73 0 string kind -strref 75 m13s293 +strref 75 m13s295 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 brif 76 L1444 L1445 @@ -40722,13 +40812,13 @@ label L1445 label L1443 load 87 node field 88 87 0 string kind -strref 89 m13s733 +strref 89 m13s735 call 90 pith_cstring_eq bool 2 88 89 call 91 pith_cstring_release void 1 89 brif 90 L1447 L1448 label L1447 load 92 node_idx -strref 93 m13s733 +strref 93 m13s735 load 94 scope_id call 95 checker_check_identifier int 3 92 93 94 call 96 pith_cstring_release void 1 93 @@ -40741,7 +40831,7 @@ label L1448 label L1446 load 101 node field 102 101 0 string kind -strref 103 m13s732 +strref 103 m13s734 call 104 pith_cstring_eq bool 2 102 103 call 105 pith_cstring_release void 1 103 brif 104 L1450 L1451 @@ -40758,7 +40848,7 @@ label L1451 label L1449 load 113 node field 114 113 0 string kind -strref 115 m13s731 +strref 115 m13s733 call 116 pith_cstring_eq bool 2 114 115 call 117 pith_cstring_release void 1 115 brif 116 L1453 L1454 @@ -40775,7 +40865,7 @@ label L1454 label L1452 load 125 node field 126 125 0 string kind -strref 127 m13s730 +strref 127 m13s732 call 128 pith_cstring_eq bool 2 126 127 call 129 pith_cstring_release void 1 127 brif 128 L1456 L1457 @@ -40810,7 +40900,7 @@ label L1457 label L1455 load 150 node field 151 150 0 string kind -strref 152 m13s729 +strref 152 m13s731 call 153 pith_cstring_eq bool 2 151 152 call 154 pith_cstring_release void 1 152 brif 153 L1462 L1463 @@ -40839,7 +40929,7 @@ call 168 pith_struct_release void 1 165 store cn 167 load 169 cn field 170 169 0 string kind -strref 171 m13s728 +strref 171 m13s730 call 172 pith_cstring_eq bool 2 170 171 call 173 pith_cstring_release void 1 171 brif 172 L1469 L1470 @@ -40863,8 +40953,8 @@ iconst 186 0 eq 187 185 186 brif 187 L1475 L1476 label L1475 -strref 188 m13s304 -strref 189 m13s726 +strref 188 m13s306 +strref 189 m13s728 load 190 spec_tid call 191 types_get_type_name string 1 190 concat 192 189 191 @@ -40883,7 +40973,7 @@ jmp L1468 label L1470 load 198 cn field 199 198 0 string kind -strref 200 m13s727 +strref 200 m13s729 call 202 pith_cstring_eq bool 2 199 200 iconst 203 1 sub 201 203 202 @@ -40906,8 +40996,8 @@ iconst 214 0 eq 215 213 214 brif 215 L1483 L1484 label L1483 -strref 216 m13s304 -strref 217 m13s726 +strref 216 m13s306 +strref 217 m13s728 load 218 expr_tid call 219 types_get_type_name string 1 218 concat 220 217 219 @@ -40942,7 +41032,7 @@ label L1463 label L1461 load 234 node field 235 234 0 string kind -strref 236 m13s725 +strref 236 m13s727 call 237 pith_cstring_eq bool 2 235 236 call 238 pith_cstring_release void 1 236 brif 237 L1486 L1487 @@ -40959,7 +41049,7 @@ label L1487 label L1485 load 246 node field 247 246 0 string kind -strref 248 m13s300 +strref 248 m13s302 call 249 pith_cstring_eq bool 2 247 248 call 250 pith_cstring_release void 1 248 brif 249 L1489 L1490 @@ -40976,7 +41066,7 @@ label L1490 label L1488 load 258 node field 259 258 0 string kind -strref 260 m13s382 +strref 260 m13s384 call 261 pith_cstring_eq bool 2 259 260 call 262 pith_cstring_release void 1 260 brif 261 L1492 L1493 @@ -40993,7 +41083,7 @@ label L1493 label L1491 load 270 node field 271 270 0 string kind -strref 272 m13s292 +strref 272 m13s294 call 273 pith_cstring_eq bool 2 271 272 call 274 pith_cstring_release void 1 272 brif 273 L1495 L1496 @@ -41010,7 +41100,7 @@ label L1496 label L1494 load 282 node field 283 282 0 string kind -strref 284 m13s291 +strref 284 m13s293 call 285 pith_cstring_eq bool 2 283 284 call 286 pith_cstring_release void 1 284 brif 285 L1498 L1499 @@ -41027,7 +41117,7 @@ label L1499 label L1497 load 294 node field 295 294 0 string kind -strref 296 m13s724 +strref 296 m13s726 call 297 pith_cstring_eq bool 2 295 296 call 298 pith_cstring_release void 1 296 brif 297 L1501 L1502 @@ -41044,7 +41134,7 @@ label L1502 label L1500 load 306 node field 307 306 0 string kind -strref 308 m13s723 +strref 308 m13s725 call 309 pith_cstring_eq bool 2 307 308 call 310 pith_cstring_release void 1 308 brif 309 L1504 L1505 @@ -41061,7 +41151,7 @@ label L1505 label L1503 load 318 node field 319 318 0 string kind -strref 320 m13s722 +strref 320 m13s724 call 321 pith_cstring_eq bool 2 319 320 call 322 pith_cstring_release void 1 320 brif 321 L1507 L1508 @@ -41078,7 +41168,7 @@ label L1508 label L1506 load 330 node field 331 330 0 string kind -strref 332 m13s721 +strref 332 m13s723 call 333 pith_cstring_eq bool 2 331 332 call 334 pith_cstring_release void 1 332 brif 333 L1510 L1511 @@ -41095,7 +41185,7 @@ label L1511 label L1509 load 342 node field 343 342 0 string kind -strref 344 m13s720 +strref 344 m13s722 call 345 pith_cstring_eq bool 2 343 344 call 346 pith_cstring_release void 1 344 brif 345 L1513 L1514 @@ -41112,7 +41202,7 @@ label L1514 label L1512 load 354 node field 355 354 0 string kind -strref 356 m13s719 +strref 356 m13s721 call 357 pith_cstring_eq bool 2 355 356 call 358 pith_cstring_release void 1 356 brif 357 L1516 L1517 @@ -41197,7 +41287,7 @@ label L1529 label L1527 load 414 node field 415 414 0 string kind -strref 416 m13s718 +strref 416 m13s720 call 417 pith_cstring_eq bool 2 415 416 call 418 pith_cstring_release void 1 416 brif 417 L1531 L1532 @@ -41214,7 +41304,7 @@ label L1532 label L1530 load 426 node field 427 426 0 string kind -strref 428 m13s717 +strref 428 m13s719 call 429 pith_cstring_eq bool 2 427 428 call 430 pith_cstring_release void 1 428 brif 429 L1534 L1535 @@ -41231,7 +41321,7 @@ label L1535 label L1533 load 438 node field 439 438 0 string kind -strref 440 m13s716 +strref 440 m13s718 call 441 pith_cstring_eq bool 2 439 440 call 442 pith_cstring_release void 1 440 brif 441 L1537 L1538 @@ -41697,16 +41787,16 @@ eq 18 16 17 brif 18 L1608 L1609 label L1608 load 19 node_idx -strref 20 m13s550 -strref 21 m13s349 +strref 20 m13s552 +strref 21 m13s351 load 22 name concat 23 21 22 call 24 pith_cstring_release void 1 21 -strref 25 m13s715 +strref 25 m13s717 concat 26 23 25 call 27 pith_cstring_release void 1 23 call 28 pith_cstring_release void 1 25 -strref 29 m13s714 +strref 29 m13s716 call 30 checker_diagnostics_report_error_with_fix_at void 4 19 20 26 29 call 31 pith_cstring_release void 1 20 call 32 pith_cstring_release void 1 26 @@ -41731,8 +41821,8 @@ ret 38 label L1612 label L1610 load 39 node_idx -strref 40 m13s550 -strref 41 m13s713 +strref 40 m13s552 +strref 41 m13s715 load 42 name concat 43 41 42 call 44 pith_cstring_release void 1 41 @@ -41785,7 +41875,7 @@ call 26 types_lookup_type_id int 1 25 call 27 pith_cstring_release void 1 25 store tid_string 26 load 28 op -strref 29 m13s712 +strref 29 m13s714 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 brif 30 L1617 L1618 @@ -41835,14 +41925,14 @@ store right 66 iconst 67 0 store __or_67_1622 67 load 68 op -strref 69 m13s697 +strref 69 m13s699 call 70 pith_cstring_eq bool 2 68 69 call 71 pith_cstring_release void 1 69 store __or_67_1622 70 brif 70 L1623 L1622 label L1622 load 72 op -strref 73 m13s695 +strref 73 m13s697 call 74 pith_cstring_eq bool 2 72 73 call 75 pith_cstring_release void 1 73 store __or_67_1622 74 @@ -41854,7 +41944,7 @@ iconst 77 0 store __and_77_1627 77 load 78 left_node field 79 78 0 string kind -strref 80 m13s312 +strref 80 m13s314 call 81 pith_cstring_eq bool 2 79 80 call 82 pith_cstring_release void 1 80 store __and_77_1627 81 @@ -41862,7 +41952,7 @@ brif 81 L1627 L1628 label L1627 load 83 right_node field 84 83 0 string kind -strref 85 m13s312 +strref 85 m13s314 call 86 pith_cstring_eq bool 2 84 85 call 87 pith_cstring_release void 1 85 store __and_77_1627 86 @@ -41884,7 +41974,7 @@ iconst 96 0 store __and_96_1632 96 load 97 left_node field 98 97 0 string kind -strref 99 m13s312 +strref 99 m13s314 call 100 pith_cstring_eq bool 2 98 99 call 101 pith_cstring_release void 1 99 store __and_96_1632 100 @@ -41923,7 +42013,7 @@ iconst 119 0 store __and_119_1640 119 load 120 right_node field 121 120 0 string kind -strref 122 m13s312 +strref 122 m13s314 call 123 pith_cstring_eq bool 2 121 122 call 124 pith_cstring_release void 1 122 store __and_119_1640 123 @@ -41990,7 +42080,7 @@ ret 153 label L1650 label L1648 load 160 op -strref 161 m13s480 +strref 161 m13s482 call 162 pith_cstring_eq bool 2 160 161 call 163 pith_cstring_release void 1 161 brif 162 L1652 L1653 @@ -42022,7 +42112,7 @@ jmp L1651 label L1653 label L1651 load 177 op -strref 178 m13s480 +strref 178 m13s482 call 179 pith_cstring_eq bool 2 177 178 call 180 pith_cstring_release void 1 178 brif 179 L1661 L1662 @@ -42033,8 +42123,8 @@ iconst 183 0 eq 184 182 183 brif 184 L1664 L1665 label L1664 -strref 185 m13s413 -strref 186 m13s711 +strref 185 m13s415 +strref 186 m13s713 load 187 left call 188 types_get_type_name string 1 187 concat 189 186 188 @@ -42058,14 +42148,14 @@ load 203 right neq 204 202 203 brif 204 L1667 L1668 label L1667 -strref 205 m13s413 -strref 206 m13s710 +strref 205 m13s415 +strref 206 m13s712 load 207 left call 208 types_get_type_name string 1 207 concat 209 206 208 call 210 pith_cstring_release void 1 206 call 211 pith_cstring_release void 1 208 -strref 212 m13s369 +strref 212 m13s371 concat 213 209 212 call 214 pith_cstring_release void 1 209 call 215 pith_cstring_release void 1 212 @@ -42098,7 +42188,7 @@ ret 231 label L1662 label L1660 load 238 op -strref 239 m13s709 +strref 239 m13s711 call 240 pith_cstring_eq bool 2 238 239 call 241 pith_cstring_release void 1 239 brif 240 L1670 L1671 @@ -42109,8 +42199,8 @@ iconst 244 0 eq 245 243 244 brif 245 L1673 L1674 label L1673 -strref 246 m13s413 -strref 247 m13s708 +strref 246 m13s415 +strref 247 m13s710 load 248 left call 249 types_get_type_name string 1 248 concat 250 247 249 @@ -42134,14 +42224,14 @@ load 264 right neq 265 263 264 brif 265 L1676 L1677 label L1676 -strref 266 m13s413 -strref 267 m13s707 +strref 266 m13s415 +strref 267 m13s709 load 268 left call 269 types_get_type_name string 1 268 concat 270 267 269 call 271 pith_cstring_release void 1 267 call 272 pith_cstring_release void 1 269 -strref 273 m13s369 +strref 273 m13s371 concat 274 270 273 call 275 pith_cstring_release void 1 270 call 276 pith_cstring_release void 1 273 @@ -42174,7 +42264,7 @@ ret 292 label L1671 label L1669 load 299 op -strref 300 m13s706 +strref 300 m13s708 call 301 pith_cstring_eq bool 2 299 300 call 302 pith_cstring_release void 1 300 brif 301 L1679 L1680 @@ -42185,8 +42275,8 @@ iconst 305 0 eq 306 304 305 brif 306 L1682 L1683 label L1682 -strref 307 m13s413 -strref 308 m13s705 +strref 307 m13s415 +strref 308 m13s707 load 309 left call 310 types_get_type_name string 1 309 concat 311 308 310 @@ -42210,14 +42300,14 @@ load 325 right neq 326 324 325 brif 326 L1685 L1686 label L1685 -strref 327 m13s413 -strref 328 m13s704 +strref 327 m13s415 +strref 328 m13s706 load 329 left call 330 types_get_type_name string 1 329 concat 331 328 330 call 332 pith_cstring_release void 1 328 call 333 pith_cstring_release void 1 330 -strref 334 m13s369 +strref 334 m13s371 concat 335 331 334 call 336 pith_cstring_release void 1 331 call 337 pith_cstring_release void 1 334 @@ -42250,7 +42340,7 @@ ret 353 label L1680 label L1678 load 360 op -strref 361 m13s703 +strref 361 m13s705 call 362 pith_cstring_eq bool 2 360 361 call 363 pith_cstring_release void 1 361 brif 362 L1688 L1689 @@ -42261,8 +42351,8 @@ iconst 366 0 eq 367 365 366 brif 367 L1691 L1692 label L1691 -strref 368 m13s413 -strref 369 m13s702 +strref 368 m13s415 +strref 369 m13s704 load 370 left call 371 types_get_type_name string 1 370 concat 372 369 371 @@ -42286,14 +42376,14 @@ load 386 right neq 387 385 386 brif 387 L1694 L1695 label L1694 -strref 388 m13s413 -strref 389 m13s701 +strref 388 m13s415 +strref 389 m13s703 load 390 left call 391 types_get_type_name string 1 390 concat 392 389 391 call 393 pith_cstring_release void 1 389 call 394 pith_cstring_release void 1 391 -strref 395 m13s369 +strref 395 m13s371 concat 396 392 395 call 397 pith_cstring_release void 1 392 call 398 pith_cstring_release void 1 395 @@ -42326,7 +42416,7 @@ ret 414 label L1689 label L1687 load 421 op -strref 422 m13s700 +strref 422 m13s702 call 423 pith_cstring_eq bool 2 421 422 call 424 pith_cstring_release void 1 422 brif 423 L1697 L1698 @@ -42337,8 +42427,8 @@ iconst 427 0 eq 428 426 427 brif 428 L1700 L1701 label L1700 -strref 429 m13s413 -strref 430 m13s699 +strref 429 m13s415 +strref 430 m13s701 load 431 left call 432 types_get_type_name string 1 431 concat 433 430 432 @@ -42362,14 +42452,14 @@ load 447 right neq 448 446 447 brif 448 L1703 L1704 label L1703 -strref 449 m13s413 -strref 450 m13s698 +strref 449 m13s415 +strref 450 m13s700 load 451 left call 452 types_get_type_name string 1 451 concat 453 450 452 call 454 pith_cstring_release void 1 450 call 455 pith_cstring_release void 1 452 -strref 456 m13s369 +strref 456 m13s371 concat 457 453 456 call 458 pith_cstring_release void 1 453 call 459 pith_cstring_release void 1 456 @@ -42402,7 +42492,7 @@ ret 475 label L1698 label L1696 load 482 op -strref 483 m13s697 +strref 483 m13s699 call 484 pith_cstring_eq bool 2 482 483 call 485 pith_cstring_release void 1 483 brif 484 L1706 L1707 @@ -42425,14 +42515,14 @@ label L1712 load 495 __and_486_1711 brif 495 L1709 L1710 label L1709 -strref 496 m13s413 -strref 497 m13s696 +strref 496 m13s415 +strref 497 m13s698 load 498 left call 499 types_get_type_name string 1 498 concat 500 497 499 call 501 pith_cstring_release void 1 497 call 502 pith_cstring_release void 1 499 -strref 503 m13s369 +strref 503 m13s371 concat 504 500 503 call 505 pith_cstring_release void 1 500 call 506 pith_cstring_release void 1 503 @@ -42465,7 +42555,7 @@ ret 522 label L1707 label L1705 load 529 op -strref 530 m13s695 +strref 530 m13s697 call 531 pith_cstring_eq bool 2 529 530 call 532 pith_cstring_release void 1 530 brif 531 L1714 L1715 @@ -42488,14 +42578,14 @@ label L1720 load 542 __and_533_1719 brif 542 L1717 L1718 label L1717 -strref 543 m13s413 -strref 544 m13s694 +strref 543 m13s415 +strref 544 m13s696 load 545 left call 546 types_get_type_name string 1 545 concat 547 544 546 call 548 pith_cstring_release void 1 544 call 549 pith_cstring_release void 1 546 -strref 550 m13s369 +strref 550 m13s371 concat 551 547 550 call 552 pith_cstring_release void 1 547 call 553 pith_cstring_release void 1 550 @@ -42528,7 +42618,7 @@ ret 569 label L1715 label L1713 load 576 op -strref 577 m13s693 +strref 577 m13s695 call 578 pith_cstring_eq bool 2 576 577 call 579 pith_cstring_release void 1 577 brif 578 L1722 L1723 @@ -42544,8 +42634,8 @@ load 585 tid_string neq 586 584 585 brif 586 L1728 L1729 label L1728 -strref 587 m13s413 -strref 588 m13s692 +strref 587 m13s415 +strref 588 m13s694 load 589 left call 590 types_get_type_name string 1 589 concat 591 588 590 @@ -42572,14 +42662,14 @@ load 605 right neq 606 604 605 brif 606 L1731 L1732 label L1731 -strref 607 m13s413 -strref 608 m13s691 +strref 607 m13s415 +strref 608 m13s693 load 609 left call 610 types_get_type_name string 1 609 concat 611 608 610 call 612 pith_cstring_release void 1 608 call 613 pith_cstring_release void 1 610 -strref 614 m13s369 +strref 614 m13s371 concat 615 611 614 call 616 pith_cstring_release void 1 611 call 617 pith_cstring_release void 1 614 @@ -42612,7 +42702,7 @@ ret 633 label L1723 label L1721 load 640 op -strref 641 m13s690 +strref 641 m13s692 call 642 pith_cstring_eq bool 2 640 641 call 643 pith_cstring_release void 1 641 brif 642 L1734 L1735 @@ -42628,8 +42718,8 @@ load 649 tid_string neq 650 648 649 brif 650 L1740 L1741 label L1740 -strref 651 m13s413 -strref 652 m13s689 +strref 651 m13s415 +strref 652 m13s691 load 653 left call 654 types_get_type_name string 1 653 concat 655 652 654 @@ -42656,14 +42746,14 @@ load 669 right neq 670 668 669 brif 670 L1743 L1744 label L1743 -strref 671 m13s413 -strref 672 m13s688 +strref 671 m13s415 +strref 672 m13s690 load 673 left call 674 types_get_type_name string 1 673 concat 675 672 674 call 676 pith_cstring_release void 1 672 call 677 pith_cstring_release void 1 674 -strref 678 m13s369 +strref 678 m13s371 concat 679 675 678 call 680 pith_cstring_release void 1 675 call 681 pith_cstring_release void 1 678 @@ -42696,7 +42786,7 @@ ret 697 label L1735 label L1733 load 704 op -strref 705 m13s687 +strref 705 m13s689 call 706 pith_cstring_eq bool 2 704 705 call 707 pith_cstring_release void 1 705 brif 706 L1746 L1747 @@ -42712,8 +42802,8 @@ load 713 tid_string neq 714 712 713 brif 714 L1752 L1753 label L1752 -strref 715 m13s413 -strref 716 m13s686 +strref 715 m13s415 +strref 716 m13s688 load 717 left call 718 types_get_type_name string 1 717 concat 719 716 718 @@ -42740,14 +42830,14 @@ load 733 right neq 734 732 733 brif 734 L1755 L1756 label L1755 -strref 735 m13s413 -strref 736 m13s685 +strref 735 m13s415 +strref 736 m13s687 load 737 left call 738 types_get_type_name string 1 737 concat 739 736 738 call 740 pith_cstring_release void 1 736 call 741 pith_cstring_release void 1 738 -strref 742 m13s369 +strref 742 m13s371 concat 743 739 742 call 744 pith_cstring_release void 1 739 call 745 pith_cstring_release void 1 742 @@ -42780,7 +42870,7 @@ ret 761 label L1747 label L1745 load 768 op -strref 769 m13s684 +strref 769 m13s686 call 770 pith_cstring_eq bool 2 768 769 call 771 pith_cstring_release void 1 769 brif 770 L1758 L1759 @@ -42796,8 +42886,8 @@ load 777 tid_string neq 778 776 777 brif 778 L1764 L1765 label L1764 -strref 779 m13s413 -strref 780 m13s683 +strref 779 m13s415 +strref 780 m13s685 load 781 left call 782 types_get_type_name string 1 781 concat 783 780 782 @@ -42824,14 +42914,14 @@ load 797 right neq 798 796 797 brif 798 L1767 L1768 label L1767 -strref 799 m13s413 -strref 800 m13s682 +strref 799 m13s415 +strref 800 m13s684 load 801 left call 802 types_get_type_name string 1 801 concat 803 800 802 call 804 pith_cstring_release void 1 800 call 805 pith_cstring_release void 1 802 -strref 806 m13s369 +strref 806 m13s371 concat 807 803 806 call 808 pith_cstring_release void 1 803 call 809 pith_cstring_release void 1 806 @@ -42864,7 +42954,7 @@ ret 825 label L1759 label L1757 load 832 op -strref 833 m13s681 +strref 833 m13s683 call 834 pith_cstring_eq bool 2 832 833 call 835 pith_cstring_release void 1 833 brif 834 L1770 L1771 @@ -42874,8 +42964,8 @@ load 837 tid_bool neq 838 836 837 brif 838 L1773 L1774 label L1773 -strref 839 m13s413 -strref 840 m13s680 +strref 839 m13s415 +strref 840 m13s682 load 841 left call 842 types_get_type_name string 1 841 concat 843 840 842 @@ -42899,8 +42989,8 @@ load 857 tid_bool neq 858 856 857 brif 858 L1776 L1777 label L1776 -strref 859 m13s413 -strref 860 m13s680 +strref 859 m13s415 +strref 860 m13s682 load 861 right call 862 types_get_type_name string 1 861 concat 863 860 862 @@ -42930,7 +43020,7 @@ ret 876 label L1771 label L1769 load 883 op -strref 884 m13s679 +strref 884 m13s681 call 885 pith_cstring_eq bool 2 883 884 call 886 pith_cstring_release void 1 884 brif 885 L1779 L1780 @@ -42940,8 +43030,8 @@ load 888 tid_bool neq 889 887 888 brif 889 L1782 L1783 label L1782 -strref 890 m13s413 -strref 891 m13s678 +strref 890 m13s415 +strref 891 m13s680 load 892 left call 893 types_get_type_name string 1 892 concat 894 891 893 @@ -42965,8 +43055,8 @@ load 908 tid_bool neq 909 907 908 brif 909 L1785 L1786 label L1785 -strref 910 m13s413 -strref 911 m13s678 +strref 910 m13s415 +strref 911 m13s680 load 912 right call 913 types_get_type_name string 1 912 concat 914 911 913 @@ -43052,15 +43142,15 @@ call 26 pith_struct_release void 1 20 store rhs_node 25 load 27 rhs_node field 28 27 0 string kind -strref 29 m13s293 +strref 29 m13s295 call 31 pith_cstring_eq bool 2 28 29 iconst 32 1 sub 30 32 31 call 33 pith_cstring_release void 1 29 brif 30 L1791 L1792 label L1791 -strref 34 m13s579 -strref 35 m13s677 +strref 34 m13s581 +strref 35 m13s679 call 36 checker_diagnostics_report_error void 2 34 35 call 37 pith_cstring_release void 1 34 call 38 pith_cstring_release void 1 35 @@ -43089,8 +43179,8 @@ iconst 55 0 lt 56 54 55 brif 56 L1794 L1795 label L1794 -strref 57 m13s550 -strref 58 m13s554 +strref 57 m13s552 +strref 58 m13s556 load 59 fn_name concat 60 58 59 call 61 pith_cstring_release void 1 58 @@ -43121,12 +43211,12 @@ sub 79 81 80 call 82 pith_cstring_release void 1 78 brif 79 L1797 L1798 label L1797 -strref 83 m13s579 -strref 84 m13s349 +strref 83 m13s581 +strref 84 m13s351 load 85 fn_name concat 86 84 85 call 87 pith_cstring_release void 1 84 -strref 88 m13s676 +strref 88 m13s678 concat 89 86 88 call 90 pith_cstring_release void 1 86 call 91 pith_cstring_release void 1 88 @@ -43150,12 +43240,12 @@ iconst 105 1 neq 106 104 105 brif 106 L1800 L1801 label L1800 -strref 107 m13s307 -strref 108 m13s675 +strref 107 m13s309 +strref 108 m13s677 load 109 fn_name concat 110 108 109 call 111 pith_cstring_release void 1 108 -strref 112 m13s674 +strref 112 m13s676 concat 113 110 112 call 114 pith_cstring_release void 1 110 call 115 pith_cstring_release void 1 112 @@ -43180,8 +43270,8 @@ call 130 pith_list_get_value_strict int 2 128 129 neq 131 126 130 brif 131 L1803 L1804 label L1803 -strref 132 m13s375 -strref 133 m13s673 +strref 132 m13s377 +strref 133 m13s675 load 134 fn_info field 135 134 48 list param_types iconst 136 0 @@ -43190,7 +43280,7 @@ call 138 types_get_type_name string 1 137 concat 139 133 138 call 140 pith_cstring_release void 1 133 call 141 pith_cstring_release void 1 138 -strref 142 m13s301 +strref 142 m13s303 concat 143 139 142 call 144 pith_cstring_release void 1 139 call 145 pith_cstring_release void 1 142 @@ -43276,7 +43366,7 @@ call 28 pith_cstring_retain void 1 27 call 29 pith_cstring_release void 1 25 store op 27 load 30 op -strref 31 m13s672 +strref 31 m13s674 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 brif 32 L1812 L1813 @@ -43287,8 +43377,8 @@ iconst 36 0 eq 37 35 36 brif 37 L1815 L1816 label L1815 -strref 38 m13s413 -strref 39 m13s671 +strref 38 m13s415 +strref 39 m13s673 load 40 operand call 41 types_get_type_name string 1 40 concat 42 39 41 @@ -43310,7 +43400,7 @@ ret 51 label L1813 label L1811 load 54 op -strref 55 m13s670 +strref 55 m13s672 call 56 pith_cstring_eq bool 2 54 55 call 57 pith_cstring_release void 1 55 brif 56 L1818 L1819 @@ -43320,8 +43410,8 @@ load 59 tid_bool neq 60 58 59 brif 60 L1821 L1822 label L1821 -strref 61 m13s413 -strref 62 m13s669 +strref 61 m13s415 +strref 62 m13s671 load 63 operand call 64 types_get_type_name string 1 63 concat 65 62 64 @@ -43362,7 +43452,7 @@ iconst 4 0 store __or_4_1826 4 load 5 index_node field 6 5 0 string kind -strref 7 m13s291 +strref 7 m13s293 call 9 pith_cstring_eq bool 2 6 7 iconst 10 1 sub 8 10 9 @@ -43400,7 +43490,7 @@ iconst 30 0 store __or_30_1831 30 load 31 base_node field 32 31 0 string kind -strref 33 m13s292 +strref 33 m13s294 call 35 pith_cstring_eq bool 2 32 33 iconst 36 1 sub 34 36 35 @@ -43452,7 +43542,7 @@ call 66 pith_struct_release void 1 60 store recv_node 65 load 67 recv_node field 68 67 0 string kind -strref 69 m13s293 +strref 69 m13s295 call 71 pith_cstring_eq bool 2 68 69 iconst 72 1 sub 70 72 71 @@ -43497,7 +43587,7 @@ iconst 95 0 store __or_95_1845 95 load 96 recv_node field 97 96 8 string value -strref 98 m13s668 +strref 98 m13s670 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 store __or_95_1845 99 @@ -43505,7 +43595,7 @@ brif 99 L1846 L1845 label L1845 load 101 recv_node field 102 101 8 string value -strref 103 m13s667 +strref 103 m13s669 call 104 pith_cstring_eq bool 2 102 103 call 105 pith_cstring_release void 1 103 store __or_95_1845 104 @@ -43534,7 +43624,7 @@ iconst 4 0 store __or_4_1850 4 load 5 index_node field 6 5 0 string kind -strref 7 m13s291 +strref 7 m13s293 call 9 pith_cstring_eq bool 2 6 7 iconst 10 1 sub 8 10 9 @@ -43572,7 +43662,7 @@ iconst 30 0 store __or_30_1855 30 load 31 base_node field 32 31 0 string kind -strref 33 m13s292 +strref 33 m13s294 call 35 pith_cstring_eq bool 2 32 33 iconst 36 1 sub 34 36 35 @@ -43624,7 +43714,7 @@ call 66 pith_struct_release void 1 60 store recv_node 65 load 67 recv_node field 68 67 0 string kind -strref 69 m13s293 +strref 69 m13s295 call 71 pith_cstring_eq bool 2 68 69 iconst 72 1 sub 70 72 71 @@ -43649,7 +43739,7 @@ load 83 checker_module_aliases load 84 recv_node field 85 84 8 string value call 86 map_get_strict string 2 83 85 -strref 87 m13s659 +strref 87 m13s661 call 88 pith_cstring_eq bool 2 86 87 call 89 pith_cstring_release void 1 87 brif 88 L1867 L1868 @@ -43669,7 +43759,7 @@ iconst 95 0 store __or_95_1869 95 load 96 recv_node field 97 96 8 string value -strref 98 m13s658 +strref 98 m13s660 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 store __or_95_1869 99 @@ -43677,7 +43767,7 @@ brif 99 L1870 L1869 label L1869 load 101 recv_node field 102 101 8 string value -strref 103 m13s657 +strref 103 m13s659 call 104 pith_cstring_eq bool 2 102 103 call 105 pith_cstring_release void 1 103 store __or_95_1869 104 @@ -43706,7 +43796,7 @@ iconst 4 0 store __or_4_1874 4 load 5 index_node field 6 5 0 string kind -strref 7 m13s291 +strref 7 m13s293 call 9 pith_cstring_eq bool 2 6 7 iconst 10 1 sub 8 10 9 @@ -43744,7 +43834,7 @@ iconst 30 0 store __or_30_1879 30 load 31 base_node field 32 31 0 string kind -strref 33 m13s292 +strref 33 m13s294 call 35 pith_cstring_eq bool 2 32 33 iconst 36 1 sub 34 36 35 @@ -43796,7 +43886,7 @@ call 66 pith_struct_release void 1 60 store recv_node 65 load 67 recv_node field 68 67 0 string kind -strref 69 m13s293 +strref 69 m13s295 call 71 pith_cstring_eq bool 2 68 69 iconst 72 1 sub 70 72 71 @@ -43826,7 +43916,7 @@ call 88 pith_cstring_eq bool 2 86 87 call 89 pith_cstring_release void 1 87 brif 88 L1891 L1892 label L1891 -strref 90 m13s664 +strref 90 m13s666 load 91 base_node call 92 pith_struct_release void 1 91 load 93 recv_node @@ -43838,12 +43928,12 @@ load 95 checker_module_aliases load 96 recv_node field 97 96 8 string value call 98 map_get_strict string 2 95 97 -strref 99 m13s666 +strref 99 m13s668 call 100 pith_cstring_eq bool 2 98 99 call 101 pith_cstring_release void 1 99 brif 100 L1894 L1895 label L1894 -strref 102 m13s662 +strref 102 m13s664 load 103 base_node call 104 pith_struct_release void 1 103 load 105 recv_node @@ -43858,7 +43948,7 @@ iconst 107 0 store __or_107_1899 107 load 108 recv_node field 109 108 8 string value -strref 110 m13s664 +strref 110 m13s666 call 111 pith_cstring_eq bool 2 109 110 call 112 pith_cstring_release void 1 110 store __or_107_1899 111 @@ -43866,7 +43956,7 @@ brif 111 L1900 L1899 label L1899 load 113 recv_node field 114 113 8 string value -strref 115 m13s665 +strref 115 m13s667 call 116 pith_cstring_eq bool 2 114 115 call 117 pith_cstring_release void 1 115 store __or_107_1899 116 @@ -43874,7 +43964,7 @@ label L1900 load 118 __or_107_1899 brif 118 L1897 L1898 label L1897 -strref 119 m13s664 +strref 119 m13s666 load 120 base_node call 121 pith_struct_release void 1 120 load 122 recv_node @@ -43886,7 +43976,7 @@ iconst 124 0 store __or_124_1904 124 load 125 recv_node field 126 125 8 string value -strref 127 m13s662 +strref 127 m13s664 call 128 pith_cstring_eq bool 2 126 127 call 129 pith_cstring_release void 1 127 store __or_124_1904 128 @@ -43894,7 +43984,7 @@ brif 128 L1905 L1904 label L1904 load 130 recv_node field 131 130 8 string value -strref 132 m13s663 +strref 132 m13s665 call 133 pith_cstring_eq bool 2 131 132 call 134 pith_cstring_release void 1 132 store __or_124_1904 133 @@ -43902,7 +43992,7 @@ label L1905 load 135 __or_124_1904 brif 135 L1902 L1903 label L1902 -strref 136 m13s662 +strref 136 m13s664 load 137 base_node call 138 pith_struct_release void 1 137 load 139 recv_node @@ -43940,16 +44030,16 @@ endfunc func checker_handle_decode_error_type 1 string param module_name load 1 module_name -strref 2 m13s662 +strref 2 m13s664 call 3 pith_cstring_eq bool 2 1 2 call 4 pith_cstring_release void 1 2 brif 3 L1907 L1908 label L1907 -strref 5 m13s661 +strref 5 m13s663 ret 5 label L1908 label L1906 -strref 6 m13s660 +strref 6 m13s662 ret 6 iconst 7 0 ret 7 @@ -43965,7 +44055,7 @@ iconst 4 0 store __or_4_1912 4 load 5 index_node field 6 5 0 string kind -strref 7 m13s291 +strref 7 m13s293 call 9 pith_cstring_eq bool 2 6 7 iconst 10 1 sub 8 10 9 @@ -44001,7 +44091,7 @@ call 29 pith_struct_release void 1 23 store base_node 28 load 30 base_node field 31 30 0 string kind -strref 32 m13s293 +strref 32 m13s295 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 brif 33 L1915 L1916 @@ -44021,7 +44111,7 @@ iconst 43 0 store __or_43_1920 43 load 44 base_node field 45 44 0 string kind -strref 46 m13s292 +strref 46 m13s294 call 48 pith_cstring_eq bool 2 45 46 iconst 49 1 sub 47 49 48 @@ -44073,7 +44163,7 @@ call 79 pith_struct_release void 1 73 store recv_node 78 load 80 recv_node field 81 80 0 string kind -strref 82 m13s293 +strref 82 m13s295 call 84 pith_cstring_eq bool 2 81 82 iconst 85 1 sub 83 85 84 @@ -44098,7 +44188,7 @@ load 96 checker_module_aliases load 97 recv_node field 98 97 8 string value call 99 map_get_strict string 2 96 98 -strref 100 m13s659 +strref 100 m13s661 call 101 pith_cstring_eq bool 2 99 100 call 102 pith_cstring_release void 1 100 brif 101 L1932 L1933 @@ -44118,7 +44208,7 @@ iconst 108 0 store __or_108_1934 108 load 109 recv_node field 110 109 8 string value -strref 111 m13s658 +strref 111 m13s660 call 112 pith_cstring_eq bool 2 110 111 call 113 pith_cstring_release void 1 111 store __or_108_1934 112 @@ -44126,7 +44216,7 @@ brif 112 L1935 L1934 label L1934 load 114 recv_node field 115 114 8 string value -strref 116 m13s657 +strref 116 m13s659 call 117 pith_cstring_eq bool 2 115 116 call 118 pith_cstring_release void 1 116 store __or_108_1934 117 @@ -44157,7 +44247,7 @@ call 6 pith_struct_release void 1 3 store type_arg 5 load 7 type_arg field 8 7 0 string kind -strref 9 m13s293 +strref 9 m13s295 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 brif 10 L1937 L1938 @@ -44176,7 +44266,7 @@ iconst 19 0 store __and_19_1942 19 load 20 type_arg field 21 20 0 string kind -strref 22 m13s292 +strref 22 m13s294 call 23 pith_cstring_eq bool 2 21 22 call 24 pith_cstring_release void 1 22 store __and_19_1942 23 @@ -44202,7 +44292,7 @@ call 37 pith_struct_release void 1 31 store recv 36 load 38 recv field 39 38 0 string kind -strref 40 m13s293 +strref 40 m13s295 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 brif 41 L1945 L1946 @@ -44228,8 +44318,8 @@ label L1944 jmp L1939 label L1941 label L1939 -strref 58 m13s310 -strref 59 m13s656 +strref 58 m13s312 +strref 59 m13s658 call 60 checker_diagnostics_report_error void 2 58 59 call 61 pith_cstring_release void 1 58 call 62 pith_cstring_release void 1 59 @@ -44248,13 +44338,13 @@ ret 72 endfunc func checker_decode_support_seen_key 1 string param field_tid -strref 1 m13s655 +strref 1 m13s657 load 2 field_tid call 3 int_to_string string 1 2 concat 4 1 3 call 5 pith_cstring_release void 1 1 call 6 pith_cstring_release void 1 3 -strref 7 m13s655 +strref 7 m13s657 concat 8 4 7 call 9 pith_cstring_release void 1 4 call 10 pith_cstring_release void 1 7 @@ -44529,8 +44619,8 @@ iconst 8 2 lt 9 7 8 brif 9 L1981 L1982 label L1981 -strref 10 m13s557 -strref 11 m13s654 +strref 10 m13s559 +strref 11 m13s656 call 12 checker_diagnostics_report_error void 2 10 11 call 13 pith_cstring_release void 1 10 call 14 pith_cstring_release void 1 11 @@ -44556,14 +44646,14 @@ load 23 expected_args neq 24 22 23 brif 24 L1987 L1988 label L1987 -strref 25 m13s307 -strref 26 m13s653 +strref 25 m13s309 +strref 26 m13s655 load 27 expected_args call 28 int_to_string string 1 27 concat 29 26 28 call 30 pith_cstring_release void 1 26 call 31 pith_cstring_release void 1 28 -strref 32 m13s652 +strref 32 m13s654 concat 33 29 32 call 34 pith_cstring_release void 1 29 call 35 pith_cstring_release void 1 32 @@ -44612,8 +44702,8 @@ sub 65 67 66 call 68 pith_cstring_release void 1 64 brif 65 L1993 L1994 label L1993 -strref 69 m13s304 -strref 70 m13s651 +strref 69 m13s306 +strref 70 m13s653 load 71 target_tid call 72 types_get_type_name string 1 71 concat 73 70 72 @@ -44628,7 +44718,7 @@ call 81 pith_struct_release void 1 80 ret 79 label L1994 label L1992 -strref 82 m13s650 +strref 82 m13s652 call 83 types_lookup_type_id int 1 82 call 84 pith_cstring_release void 1 82 store cfg_tid 83 @@ -44637,8 +44727,8 @@ iconst 86 0 lt 87 85 86 brif 87 L1996 L1997 label L1996 -strref 88 m13s310 -strref 89 m13s649 +strref 88 m13s312 +strref 89 m13s651 call 90 checker_diagnostics_report_error void 2 88 89 call 91 pith_cstring_release void 1 88 call 92 pith_cstring_release void 1 89 @@ -44671,8 +44761,8 @@ label L2002 load 109 __and_101_2001 brif 109 L1999 L2000 label L1999 -strref 110 m13s304 -strref 111 m13s648 +strref 110 m13s306 +strref 111 m13s650 load 112 first_arg_tid call 113 types_get_type_name string 1 112 concat 114 111 113 @@ -44717,8 +44807,8 @@ label L2010 load 140 __and_132_2009 brif 140 L2007 L2008 label L2007 -strref 141 m13s304 -strref 142 m13s647 +strref 141 m13s306 +strref 142 m13s649 load 143 prefix_tid call 144 types_get_type_name string 1 143 concat 145 142 144 @@ -44776,8 +44866,8 @@ label L2019 load 177 __and_165_2018 brif 177 L2016 L2017 label L2016 -strref 178 m13s304 -strref 179 m13s646 +strref 178 m13s306 +strref 179 m13s648 load 180 __loopvar_122_field_name concat 181 179 180 call 182 pith_cstring_release void 1 179 @@ -44808,12 +44898,12 @@ iconst 201 1 sub 200 201 199 brif 200 L2024 L2025 label L2024 -strref 202 m13s304 -strref 203 m13s645 +strref 202 m13s306 +strref 203 m13s647 load 204 __loopvar_122_field_name concat 205 203 204 call 206 pith_cstring_release void 1 203 -strref 207 m13s624 +strref 207 m13s626 concat 208 205 207 call 209 pith_cstring_release void 1 205 call 210 pith_cstring_release void 1 207 @@ -44841,7 +44931,7 @@ add 224 222 223 store __for_idx_122 224 jmp L2011 label L2014 -strref 225 m13s623 +strref 225 m13s625 call 226 types_lookup_type_id int 1 225 call 227 pith_cstring_release void 1 225 store err_tid 226 @@ -44850,8 +44940,8 @@ iconst 229 0 lt 230 228 229 brif 230 L2027 L2028 label L2027 -strref 231 m13s310 -strref 232 m13s622 +strref 231 m13s312 +strref 232 m13s624 call 233 checker_diagnostics_report_error void 2 231 232 call 234 pith_cstring_release void 1 231 call 235 pith_cstring_release void 1 232 @@ -44890,8 +44980,8 @@ iconst 9 2 lt 10 8 9 brif 10 L2030 L2031 label L2030 -strref 11 m13s557 -strref 12 m13s644 +strref 11 m13s559 +strref 12 m13s646 call 13 checker_diagnostics_report_error void 2 11 12 call 14 pith_cstring_release void 1 11 call 15 pith_cstring_release void 1 12 @@ -44909,8 +44999,8 @@ iconst 23 1 neq 24 22 23 brif 24 L2033 L2034 label L2033 -strref 25 m13s307 -strref 26 m13s643 +strref 25 m13s309 +strref 26 m13s645 load 27 arg_indices call 28 pith_list_len int 1 27 call 29 int_to_string string 1 28 @@ -44960,8 +45050,8 @@ sub 60 62 61 call 63 pith_cstring_release void 1 59 brif 60 L2039 L2040 label L2039 -strref 64 m13s304 -strref 65 m13s642 +strref 64 m13s306 +strref 65 m13s644 load 66 target_tid call 67 types_get_type_name string 1 66 concat 68 65 67 @@ -44993,7 +45083,7 @@ iconst 88 0 store __and_88_2044 88 load 89 arg_node field 90 89 0 string kind -strref 91 m13s298 +strref 91 m13s300 call 92 pith_cstring_eq bool 2 90 91 call 93 pith_cstring_release void 1 91 store __and_88_2044 92 @@ -45052,14 +45142,14 @@ label L2053 load 122 __and_114_2052 brif 122 L2050 L2051 label L2050 -strref 123 m13s304 -strref 124 m13s641 +strref 123 m13s306 +strref 124 m13s643 load 125 expected_tid call 126 types_get_type_name string 1 125 concat 127 124 126 call 128 pith_cstring_release void 1 124 call 129 pith_cstring_release void 1 126 -strref 130 m13s301 +strref 130 m13s303 concat 131 127 130 call 132 pith_cstring_release void 1 127 call 133 pith_cstring_release void 1 130 @@ -45119,8 +45209,8 @@ label L2062 load 170 __and_158_2061 brif 170 L2059 L2060 label L2059 -strref 171 m13s304 -strref 172 m13s640 +strref 171 m13s306 +strref 172 m13s642 load 173 __loopvar_123_field_name concat 174 172 173 call 175 pith_cstring_release void 1 172 @@ -45153,12 +45243,12 @@ iconst 196 1 sub 195 196 194 brif 195 L2067 L2068 label L2067 -strref 197 m13s304 -strref 198 m13s639 +strref 197 m13s306 +strref 198 m13s641 load 199 __loopvar_123_field_name concat 200 198 199 call 201 pith_cstring_release void 1 198 -strref 202 m13s624 +strref 202 m13s626 concat 203 200 202 call 204 pith_cstring_release void 1 200 call 205 pith_cstring_release void 1 202 @@ -45188,7 +45278,7 @@ add 221 219 220 store __for_idx_123 221 jmp L2054 label L2057 -strref 222 m13s638 +strref 222 m13s640 call 223 types_lookup_type_id int 1 222 call 224 pith_cstring_release void 1 222 store err_tid 223 @@ -45197,8 +45287,8 @@ iconst 226 0 lt 227 225 226 brif 227 L2070 L2071 label L2070 -strref 228 m13s310 -strref 229 m13s637 +strref 228 m13s312 +strref 229 m13s639 call 230 checker_diagnostics_report_error void 2 228 229 call 231 pith_cstring_release void 1 228 call 232 pith_cstring_release void 1 229 @@ -45243,7 +45333,7 @@ iconst 8 0 store err_name 8 load 9 label load 10 module_name -strref 11 m13s636 +strref 11 m13s638 concat 12 10 11 call 13 pith_cstring_release void 1 11 call 14 pith_cstring_release void 1 9 @@ -45255,9 +45345,9 @@ iconst 18 2 lt 19 17 18 brif 19 L2073 L2074 label L2073 -strref 20 m13s557 +strref 20 m13s559 load 21 label -strref 22 m13s635 +strref 22 m13s637 concat 23 21 22 call 24 pith_cstring_release void 1 22 call 25 checker_diagnostics_report_error void 2 20 23 @@ -45281,9 +45371,9 @@ iconst 39 1 neq 40 38 39 brif 40 L2076 L2077 label L2076 -strref 41 m13s307 +strref 41 m13s309 load 42 label -strref 43 m13s445 +strref 43 m13s447 concat 44 42 43 call 45 pith_cstring_release void 1 43 load 46 arg_indices @@ -45343,9 +45433,9 @@ sub 87 89 88 call 90 pith_cstring_release void 1 86 brif 87 L2082 L2083 label L2082 -strref 91 m13s304 +strref 91 m13s306 load 92 label -strref 93 m13s634 +strref 93 m13s636 concat 94 92 93 call 95 pith_cstring_release void 1 93 load 96 target_tid @@ -45383,7 +45473,7 @@ iconst 122 0 store __and_122_2087 122 load 123 arg_node field 124 123 0 string kind -strref 125 m13s298 +strref 125 m13s300 call 126 pith_cstring_eq bool 2 124 125 call 127 pith_cstring_release void 1 125 store __and_122_2087 126 @@ -45442,9 +45532,9 @@ label L2096 load 156 __and_148_2095 brif 156 L2093 L2094 label L2093 -strref 157 m13s304 +strref 157 m13s306 load 158 label -strref 159 m13s633 +strref 159 m13s635 concat 160 158 159 call 161 pith_cstring_release void 1 159 load 162 expected_tid @@ -45452,7 +45542,7 @@ call 163 types_get_type_name string 1 162 concat 164 160 163 call 165 pith_cstring_release void 1 160 call 166 pith_cstring_release void 1 163 -strref 167 m13s301 +strref 167 m13s303 concat 168 164 167 call 169 pith_cstring_release void 1 164 call 170 pith_cstring_release void 1 167 @@ -45516,9 +45606,9 @@ label L2105 load 211 __and_199_2104 brif 211 L2102 L2103 label L2102 -strref 212 m13s304 +strref 212 m13s306 load 213 label -strref 214 m13s632 +strref 214 m13s634 concat 215 213 214 call 216 pith_cstring_release void 1 214 load 217 __loopvar_124_field_name @@ -45557,15 +45647,15 @@ iconst 244 1 sub 243 244 242 brif 243 L2110 L2111 label L2110 -strref 245 m13s304 +strref 245 m13s306 load 246 label -strref 247 m13s631 +strref 247 m13s633 concat 248 246 247 call 249 pith_cstring_release void 1 247 load 250 __loopvar_124_field_name concat 251 248 250 call 252 pith_cstring_release void 1 248 -strref 253 m13s624 +strref 253 m13s626 concat 254 251 253 call 255 pith_cstring_release void 1 251 call 256 pith_cstring_release void 1 253 @@ -45612,8 +45702,8 @@ iconst 284 0 lt 285 283 284 brif 285 L2113 L2114 label L2113 -strref 286 m13s310 -strref 287 m13s311 +strref 286 m13s312 +strref 287 m13s313 load 288 err_name concat 289 287 288 call 290 pith_cstring_release void 1 287 @@ -45672,8 +45762,8 @@ iconst 8 2 lt 9 7 8 brif 9 L2116 L2117 label L2116 -strref 10 m13s557 -strref 11 m13s630 +strref 10 m13s559 +strref 11 m13s632 call 12 checker_diagnostics_report_error void 2 10 11 call 13 pith_cstring_release void 1 10 call 14 pith_cstring_release void 1 11 @@ -45691,8 +45781,8 @@ iconst 22 1 neq 23 21 22 brif 23 L2119 L2120 label L2119 -strref 24 m13s307 -strref 25 m13s629 +strref 24 m13s309 +strref 25 m13s631 load 26 arg_indices call 27 pith_list_len int 1 26 call 28 int_to_string string 1 27 @@ -45742,8 +45832,8 @@ sub 59 61 60 call 62 pith_cstring_release void 1 58 brif 59 L2125 L2126 label L2125 -strref 63 m13s304 -strref 64 m13s628 +strref 63 m13s306 +strref 64 m13s630 load 65 target_tid call 66 types_get_type_name string 1 65 concat 67 64 66 @@ -45775,7 +45865,7 @@ iconst 87 0 store __and_87_2130 87 load 88 arg_node field 89 88 0 string kind -strref 90 m13s298 +strref 90 m13s300 call 91 pith_cstring_eq bool 2 89 90 call 92 pith_cstring_release void 1 90 store __and_87_2130 91 @@ -45824,14 +45914,14 @@ label L2136 load 117 __and_109_2135 brif 117 L2133 L2134 label L2133 -strref 118 m13s304 -strref 119 m13s627 +strref 118 m13s306 +strref 119 m13s629 load 120 expected_tid call 121 types_get_type_name string 1 120 concat 122 119 121 call 123 pith_cstring_release void 1 119 call 124 pith_cstring_release void 1 121 -strref 125 m13s301 +strref 125 m13s303 concat 126 122 125 call 127 pith_cstring_release void 1 122 call 128 pith_cstring_release void 1 125 @@ -45891,8 +45981,8 @@ label L2145 load 165 __and_153_2144 brif 165 L2142 L2143 label L2142 -strref 166 m13s304 -strref 167 m13s626 +strref 166 m13s306 +strref 167 m13s628 load 168 __loopvar_125_field_name concat 169 167 168 call 170 pith_cstring_release void 1 167 @@ -45925,12 +46015,12 @@ iconst 191 1 sub 190 191 189 brif 190 L2150 L2151 label L2150 -strref 192 m13s304 -strref 193 m13s625 +strref 192 m13s306 +strref 193 m13s627 load 194 __loopvar_125_field_name concat 195 193 194 call 196 pith_cstring_release void 1 193 -strref 197 m13s624 +strref 197 m13s626 concat 198 195 197 call 199 pith_cstring_release void 1 195 call 200 pith_cstring_release void 1 197 @@ -45960,7 +46050,7 @@ add 216 214 215 store __for_idx_125 216 jmp L2137 label L2140 -strref 217 m13s623 +strref 217 m13s625 call 218 types_lookup_type_id int 1 217 call 219 pith_cstring_release void 1 217 store err_tid 218 @@ -45969,8 +46059,8 @@ iconst 221 0 lt 222 220 221 brif 222 L2153 L2154 label L2153 -strref 223 m13s310 -strref 224 m13s622 +strref 223 m13s312 +strref 224 m13s624 call 225 checker_diagnostics_report_error void 2 223 224 call 226 pith_cstring_release void 1 223 call 227 pith_cstring_release void 1 224 @@ -46009,7 +46099,7 @@ iconst 3 0 store __or_3_2158 3 load 4 index_node field 5 4 0 string kind -strref 6 m13s291 +strref 6 m13s293 call 8 pith_cstring_eq bool 2 5 6 iconst 9 1 sub 7 9 8 @@ -46045,7 +46135,7 @@ call 28 pith_struct_release void 1 22 store base_node 27 load 29 base_node field 30 29 0 string kind -strref 31 m13s293 +strref 31 m13s295 call 32 pith_cstring_eq bool 2 30 31 call 33 pith_cstring_release void 1 31 brif 32 L2161 L2162 @@ -46064,7 +46154,7 @@ iconst 41 0 store __and_41_2166 41 load 42 base_node field 43 42 0 string kind -strref 44 m13s292 +strref 44 m13s294 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 store __and_41_2166 45 @@ -46092,7 +46182,7 @@ iconst 60 0 store __and_60_2171 60 load 61 recv_node field 62 61 0 string kind -strref 63 m13s293 +strref 63 m13s295 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 store __and_60_2171 64 @@ -46148,7 +46238,7 @@ call 5 pith_struct_release void 1 2 store type_arg 4 load 6 type_arg field 7 6 0 string kind -strref 8 m13s293 +strref 8 m13s295 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L2174 L2175 @@ -46248,9 +46338,9 @@ call 52 pith_list_len int 1 51 neq 53 50 52 brif 53 L2183 L2184 label L2183 -strref 54 m13s621 +strref 54 m13s623 load 55 name -strref 56 m13s549 +strref 56 m13s551 concat 57 55 56 call 58 pith_cstring_release void 1 56 load 59 generic_params @@ -46259,7 +46349,7 @@ call 61 int_to_string string 1 60 concat 62 57 61 call 63 pith_cstring_release void 1 57 call 64 pith_cstring_release void 1 61 -strref 65 m13s620 +strref 65 m13s622 concat 66 62 65 call 67 pith_cstring_release void 1 62 call 68 pith_cstring_release void 1 65 @@ -46491,9 +46581,9 @@ call 64 pith_list_len int 1 63 neq 65 62 64 brif 65 L2205 L2206 label L2205 -strref 66 m13s621 +strref 66 m13s623 load 67 name -strref 68 m13s549 +strref 68 m13s551 concat 69 67 68 call 70 pith_cstring_release void 1 68 load 71 generic_params @@ -46502,7 +46592,7 @@ call 73 int_to_string string 1 72 concat 74 69 73 call 75 pith_cstring_release void 1 69 call 76 pith_cstring_release void 1 73 -strref 77 m13s620 +strref 77 m13s622 concat 78 74 77 call 79 pith_cstring_release void 1 74 call 80 pith_cstring_release void 1 77 @@ -46637,7 +46727,7 @@ iconst 172 0 store __and_172_2224 172 load 173 arg_node field 174 173 0 string kind -strref 175 m13s298 +strref 175 m13s300 call 176 pith_cstring_eq bool 2 174 175 call 177 pith_cstring_release void 1 175 store __and_172_2224 176 @@ -46701,7 +46791,7 @@ call 212 pith_struct_release void 1 209 store cn 211 load 213 cn field 214 213 0 string kind -strref 215 m13s323 +strref 215 m13s325 call 216 pith_cstring_eq bool 2 214 215 call 217 pith_cstring_release void 1 215 brif 216 L2231 L2232 @@ -46744,15 +46834,15 @@ call 240 pith_list_len int 1 239 neq 241 238 240 brif 241 L2237 L2238 label L2237 -strref 242 m13s307 -strref 243 m13s558 +strref 242 m13s309 +strref 243 m13s560 load 244 param_type_nodes call 245 pith_list_len int 1 244 call 246 int_to_string string 1 245 concat 247 243 246 call 248 pith_cstring_release void 1 243 call 249 pith_cstring_release void 1 246 -strref 250 m13s548 +strref 250 m13s550 concat 251 247 250 call 252 pith_cstring_release void 1 247 call 253 pith_cstring_release void 1 250 @@ -46811,7 +46901,7 @@ call 294 pith_struct_release void 1 291 store cn 293 load 295 cn field 296 295 0 string kind -strref 297 m13s555 +strref 297 m13s557 call 298 pith_cstring_eq bool 2 296 297 call 299 pith_cstring_release void 1 297 brif 298 L2244 L2245 @@ -46910,14 +47000,14 @@ iconst 355 0 eq 356 354 355 brif 356 L2264 L2265 label L2264 -strref 357 m13s304 -strref 358 m13s443 +strref 357 m13s306 +strref 358 m13s445 load 359 concrete call 360 types_get_type_name string 1 359 concat 361 358 360 call 362 pith_cstring_release void 1 358 call 363 pith_cstring_release void 1 360 -strref 364 m13s301 +strref 364 m13s303 concat 365 361 364 call 366 pith_cstring_release void 1 361 call 367 pith_cstring_release void 1 364 @@ -47094,13 +47184,13 @@ jmp L2269 label L2272 load 66 callee_node field 67 66 0 string kind -strref 68 m13s291 +strref 68 m13s293 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 brif 69 L2277 L2278 label L2277 load 71 callee_node -strref 72 m13s618 +strref 72 m13s620 call 73 checker_check_json_decode_callee bool 2 71 72 call 74 pith_cstring_release void 1 72 brif 73 L2280 L2281 @@ -47130,7 +47220,7 @@ ret 79 label L2281 label L2279 load 96 callee_node -strref 97 m13s617 +strref 97 m13s619 call 98 checker_check_json_decode_callee bool 2 96 97 call 99 pith_cstring_release void 1 97 brif 98 L2283 L2284 @@ -47160,7 +47250,7 @@ ret 104 label L2284 label L2282 load 121 callee_node -strref 122 m13s618 +strref 122 m13s620 call 123 checker_check_config_decode_callee bool 2 121 122 call 124 pith_cstring_release void 1 122 brif 123 L2286 L2287 @@ -47190,7 +47280,7 @@ ret 129 label L2287 label L2285 load 146 callee_node -strref 147 m13s619 +strref 147 m13s621 call 148 checker_check_config_decode_callee bool 2 146 147 call 149 pith_cstring_release void 1 147 brif 148 L2289 L2290 @@ -47220,14 +47310,14 @@ ret 154 label L2290 label L2288 load 171 callee_node -strref 172 m13s618 +strref 172 m13s620 call 173 checker_check_handle_decode_callee bool 2 171 172 call 174 pith_cstring_release void 1 172 brif 173 L2292 L2293 label L2292 load 175 callee_node load 176 callee_node -strref 177 m13s618 +strref 177 m13s620 call 178 checker_handle_decode_module string 2 176 177 call 179 pith_cstring_release void 1 177 load 180 arg_indices @@ -47255,14 +47345,14 @@ ret 183 label L2293 label L2291 load 201 callee_node -strref 202 m13s617 +strref 202 m13s619 call 203 checker_check_handle_decode_callee bool 2 201 202 call 204 pith_cstring_release void 1 202 brif 203 L2295 L2296 label L2295 load 205 callee_node load 206 callee_node -strref 207 m13s617 +strref 207 m13s619 call 208 checker_handle_decode_module string 2 206 207 call 209 pith_cstring_release void 1 207 load 210 arg_indices @@ -47290,7 +47380,7 @@ ret 213 label L2296 label L2294 load 231 callee_node -strref 232 m13s616 +strref 232 m13s618 call 233 checker_check_config_file_decode_callee bool 2 231 232 call 234 pith_cstring_release void 1 232 brif 233 L2298 L2299 @@ -47319,7 +47409,7 @@ ret 238 label L2299 label L2297 load 255 callee_node -strref 256 m13s615 +strref 256 m13s617 call 257 checker_check_config_file_decode_callee bool 2 255 256 call 258 pith_cstring_release void 1 256 brif 257 L2301 L2302 @@ -47364,7 +47454,7 @@ call 290 pith_struct_release void 1 284 store obj_node 289 load 291 obj_node field 292 291 0 string kind -strref 293 m13s293 +strref 293 m13s295 call 294 pith_cstring_eq bool 2 292 293 call 295 pith_cstring_release void 1 293 brif 294 L2307 L2308 @@ -47434,7 +47524,7 @@ call 337 pith_struct_release void 1 333 store gdecl 336 load 338 gdecl field 339 338 0 string kind -strref 340 m13s287 +strref 340 m13s289 call 341 pith_cstring_eq bool 2 339 340 call 342 pith_cstring_release void 1 340 brif 341 L2318 L2319 @@ -47512,7 +47602,7 @@ label L2278 label L2276 load 405 callee_node field 406 405 0 string kind -strref 407 m13s293 +strref 407 m13s295 call 408 pith_cstring_eq bool 2 406 407 call 409 pith_cstring_release void 1 407 brif 408 L2321 L2322 @@ -47530,7 +47620,7 @@ store __and_415_2326 416 brif 416 L2326 L2327 label L2326 load 417 name -strref 418 m13s614 +strref 418 m13s616 call 419 pith_cstring_eq bool 2 417 418 call 420 pith_cstring_release void 1 418 store __and_415_2326 419 @@ -47567,7 +47657,7 @@ store __and_441_2331 442 brif 442 L2331 L2332 label L2331 load 443 name -strref 444 m13s613 +strref 444 m13s615 call 445 pith_cstring_eq bool 2 443 444 call 446 pith_cstring_release void 1 444 store __and_441_2331 445 @@ -47626,7 +47716,7 @@ ret 473 label L2335 label L2333 load 490 name -strref 491 m13s503 +strref 491 m13s505 call 492 pith_cstring_eq bool 2 490 491 call 493 pith_cstring_release void 1 491 brif 492 L2337 L2338 @@ -47654,7 +47744,7 @@ ret 496 label L2338 label L2336 load 513 name -strref 514 m13s502 +strref 514 m13s504 call 515 pith_cstring_eq bool 2 513 514 call 516 pith_cstring_release void 1 514 brif 515 L2340 L2341 @@ -47857,7 +47947,7 @@ call 667 pith_struct_release void 1 663 store gdecl 666 load 668 gdecl field 669 668 0 string kind -strref 670 m13s287 +strref 670 m13s289 call 671 pith_cstring_eq bool 2 669 670 call 672 pith_cstring_release void 1 670 brif 671 L2367 L2368 @@ -47989,15 +48079,15 @@ call 11 pith_struct_release void 1 5 store type_arg_node 10 load 12 type_arg_node field 13 12 0 string kind -strref 14 m13s293 +strref 14 m13s295 call 16 pith_cstring_eq bool 2 13 14 iconst 17 1 sub 15 17 16 call 18 pith_cstring_release void 1 14 brif 15 L2370 L2371 label L2370 -strref 19 m13s612 -strref 20 m13s611 +strref 19 m13s614 +strref 20 m13s613 call 21 checker_diagnostics_report_error void 2 19 20 call 22 pith_cstring_release void 1 19 call 23 pith_cstring_release void 1 20 @@ -48031,8 +48121,8 @@ iconst 41 1 gt 42 40 41 brif 42 L2376 L2377 label L2376 -strref 43 m13s307 -strref 44 m13s610 +strref 43 m13s309 +strref 44 m13s612 load 45 arg_indices call 46 pith_list_len int 1 45 call 47 int_to_string string 1 46 @@ -48136,8 +48226,8 @@ sub 12 14 13 call 15 pith_cstring_release void 1 11 brif 12 L2385 L2386 label L2385 -strref 16 m13s579 -strref 17 m13s609 +strref 16 m13s581 +strref 17 m13s611 call 18 checker_diagnostics_report_error void 2 16 17 call 19 pith_cstring_release void 1 16 call 20 pith_cstring_release void 1 17 @@ -48157,8 +48247,8 @@ call 30 pith_list_len int 1 29 neq 31 27 30 brif 31 L2388 L2389 label L2388 -strref 32 m13s307 -strref 33 m13s558 +strref 32 m13s309 +strref 33 m13s560 load 34 fn_info field 35 34 48 list param_types call 36 pith_list_len int 1 35 @@ -48166,7 +48256,7 @@ call 37 int_to_string string 1 36 concat 38 33 37 call 39 pith_cstring_release void 1 33 call 40 pith_cstring_release void 1 37 -strref 41 m13s548 +strref 41 m13s550 concat 42 38 41 call 43 pith_cstring_release void 1 38 call 44 pith_cstring_release void 1 41 @@ -48214,7 +48304,7 @@ load 73 __loopvar_133_ai store arg_expr_idx 73 load 74 arg_node field 75 74 0 string kind -strref 76 m13s298 +strref 76 m13s300 call 77 pith_cstring_eq bool 2 75 76 call 78 pith_cstring_release void 1 76 brif 77 L2395 L2396 @@ -48271,14 +48361,14 @@ iconst 110 0 eq 111 109 110 brif 111 L2410 L2411 label L2410 -strref 112 m13s304 -strref 113 m13s443 +strref 112 m13s306 +strref 113 m13s445 load 114 expected call 115 types_get_type_name string 1 114 concat 116 113 115 call 117 pith_cstring_release void 1 113 call 118 pith_cstring_release void 1 115 -strref 119 m13s301 +strref 119 m13s303 concat 120 116 119 call 121 pith_cstring_release void 1 116 call 122 pith_cstring_release void 1 119 @@ -48356,7 +48446,7 @@ iconst 15 0 store __and_15_2419 15 load 16 an field 17 16 0 string kind -strref 18 m13s298 +strref 18 m13s300 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 store __and_15_2419 19 @@ -48476,7 +48566,7 @@ iconst 24 0 store __or_24_2435 24 load 25 an field 26 25 0 string kind -strref 27 m13s298 +strref 27 m13s300 call 29 pith_cstring_eq bool 2 26 27 iconst 30 1 sub 28 30 29 @@ -48494,9 +48584,9 @@ label L2436 load 37 __or_24_2435 brif 37 L2433 L2434 label L2433 -strref 38 m13s608 +strref 38 m13s610 load 39 name -strref 40 m13s607 +strref 40 m13s609 concat 41 39 40 call 42 pith_cstring_release void 1 40 call 43 checker_diagnostics_report_error void 2 38 41 @@ -48514,16 +48604,16 @@ iconst 51 0 eq 52 50 51 brif 52 L2437 L2438 label L2437 -strref 53 m13s606 +strref 53 m13s608 load 54 name -strref 55 m13s428 +strref 55 m13s430 concat 56 54 55 call 57 pith_cstring_release void 1 55 load 58 an field 59 58 8 string value concat 60 56 59 call 61 pith_cstring_release void 1 56 -strref 62 m13s349 +strref 62 m13s351 concat 63 60 62 call 64 pith_cstring_release void 1 60 call 65 pith_cstring_release void 1 62 @@ -48540,16 +48630,16 @@ field 72 71 8 string value call 73 contains_key bool 2 70 72 brif 73 L2439 L2440 label L2439 -strref 74 m13s605 +strref 74 m13s607 load 75 name -strref 76 m13s604 +strref 76 m13s606 concat 77 75 76 call 78 pith_cstring_release void 1 76 load 79 an field 80 79 8 string value concat 81 77 80 call 82 pith_cstring_release void 1 77 -strref 83 m13s603 +strref 83 m13s605 concat 84 81 83 call 85 pith_cstring_release void 1 81 call 86 pith_cstring_release void 1 83 @@ -48621,15 +48711,15 @@ iconst 127 0 eq 128 126 127 brif 128 L2452 L2453 label L2452 -strref 129 m13s602 +strref 129 m13s604 load 130 name -strref 131 m13s601 +strref 131 m13s603 concat 132 130 131 call 133 pith_cstring_release void 1 131 load 134 __loopvar_137_fld concat 135 132 134 call 136 pith_cstring_release void 1 132 -strref 137 m13s349 +strref 137 m13s351 concat 138 135 137 call 139 pith_cstring_release void 1 135 call 140 pith_cstring_release void 1 137 @@ -48743,12 +48833,12 @@ iconst 207 0 eq 208 206 207 brif 208 L2477 L2478 label L2477 -strref 209 m13s304 -strref 210 m13s303 +strref 209 m13s306 +strref 210 m13s305 load 211 __loopvar_138_fld concat 212 210 211 call 213 pith_cstring_release void 1 210 -strref 214 m13s302 +strref 214 m13s304 concat 215 212 214 call 216 pith_cstring_release void 1 212 call 217 pith_cstring_release void 1 214 @@ -48757,7 +48847,7 @@ call 219 types_get_type_name string 1 218 concat 220 215 219 call 221 pith_cstring_release void 1 215 call 222 pith_cstring_release void 1 219 -strref 223 m13s301 +strref 223 m13s303 concat 224 220 223 call 225 pith_cstring_release void 1 220 call 226 pith_cstring_release void 1 223 @@ -48839,9 +48929,9 @@ call 20 pith_list_len int 1 19 gt 21 17 20 brif 21 L2483 L2484 label L2483 -strref 22 m13s307 +strref 22 m13s309 load 23 name -strref 24 m13s308 +strref 24 m13s310 concat 25 23 24 call 26 pith_cstring_release void 1 24 load 27 info @@ -48851,7 +48941,7 @@ call 30 int_to_string string 1 29 concat 31 25 30 call 32 pith_cstring_release void 1 25 call 33 pith_cstring_release void 1 30 -strref 34 m13s305 +strref 34 m13s307 concat 35 31 34 call 36 pith_cstring_release void 1 31 call 37 pith_cstring_release void 1 34 @@ -48880,9 +48970,9 @@ load 55 min_required lt 56 54 55 brif 56 L2486 L2487 label L2486 -strref 57 m13s307 +strref 57 m13s309 load 58 name -strref 59 m13s306 +strref 59 m13s308 concat 60 58 59 call 61 pith_cstring_release void 1 59 load 62 min_required @@ -48890,7 +48980,7 @@ call 63 int_to_string string 1 62 concat 64 60 63 call 65 pith_cstring_release void 1 60 call 66 pith_cstring_release void 1 63 -strref 67 m13s305 +strref 67 m13s307 concat 68 64 67 call 69 pith_cstring_release void 1 64 call 70 pith_cstring_release void 1 67 @@ -48936,7 +49026,7 @@ load 97 __loopvar_139_ai store arg_expr_idx 97 load 98 arg_node field 99 98 0 string kind -strref 100 m13s298 +strref 100 m13s300 call 101 pith_cstring_eq bool 2 99 100 call 102 pith_cstring_release void 1 100 brif 101 L2493 L2494 @@ -49027,15 +49117,15 @@ iconst 156 0 eq 157 155 156 brif 157 L2517 L2518 label L2517 -strref 158 m13s304 -strref 159 m13s303 +strref 158 m13s306 +strref 159 m13s305 load 160 info field 161 160 16 list_string fields load 162 idx call 163 pith_list_get_value_strict string 2 161 162 concat 164 159 163 call 165 pith_cstring_release void 1 159 -strref 166 m13s302 +strref 166 m13s304 concat 167 164 166 call 168 pith_cstring_release void 1 164 call 169 pith_cstring_release void 1 166 @@ -49044,7 +49134,7 @@ call 171 types_get_type_name string 1 170 concat 172 167 171 call 173 pith_cstring_release void 1 167 call 174 pith_cstring_release void 1 171 -strref 175 m13s301 +strref 175 m13s303 concat 176 172 175 call 177 pith_cstring_release void 1 172 call 178 pith_cstring_release void 1 175 @@ -49133,7 +49223,7 @@ call 25 pith_struct_release void 1 22 store fnode 24 load 26 fnode field 27 26 0 string kind -strref 28 m13s564 +strref 28 m13s566 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 brif 29 L2526 L2527 @@ -49204,7 +49294,7 @@ call 69 pith_struct_release void 1 66 store arg_info 68 load 70 fnode field 71 70 0 string kind -strref 72 m13s563 +strref 72 m13s565 call 73 pith_cstring_eq bool 2 71 72 call 74 pith_cstring_release void 1 72 brif 73 L2539 L2540 @@ -49448,7 +49538,7 @@ label L2540 label L2538 load 234 fnode field 235 234 0 string kind -strref 236 m13s562 +strref 236 m13s564 call 237 pith_cstring_eq bool 2 235 236 call 238 pith_cstring_release void 1 236 brif 237 L2587 L2588 @@ -49492,7 +49582,7 @@ label L2588 label L2586 load 263 fnode field 264 263 0 string kind -strref 265 m13s560 +strref 265 m13s562 call 266 pith_cstring_eq bool 2 264 265 call 267 pith_cstring_release void 1 265 brif 266 L2596 L2597 @@ -49594,7 +49684,7 @@ call 16 pith_struct_release void 1 13 store an 15 load 17 an field 18 17 0 string kind -strref 19 m13s298 +strref 19 m13s300 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L2613 L2614 @@ -49717,7 +49807,7 @@ call 43 pith_struct_release void 1 40 store cn 42 load 44 cn field 45 44 0 string kind -strref 46 m13s285 +strref 46 m13s287 call 47 pith_cstring_eq bool 2 45 46 call 48 pith_cstring_release void 1 46 brif 47 L2626 L2627 @@ -49821,7 +49911,7 @@ load 108 __loopvar_145_ai store arg_expr 108 load 109 arg_node field 110 109 0 string kind -strref 111 m13s298 +strref 111 m13s300 call 112 pith_cstring_eq bool 2 110 111 call 113 pith_cstring_release void 1 111 brif 112 L2643 L2644 @@ -49863,9 +49953,9 @@ call 134 pith_list_len int 1 133 gt 135 132 134 brif 135 L2649 L2650 label L2649 -strref 136 m13s307 +strref 136 m13s309 load 137 name -strref 138 m13s308 +strref 138 m13s310 concat 139 137 138 call 140 pith_cstring_release void 1 138 load 141 field_type_nodes @@ -49874,7 +49964,7 @@ call 143 int_to_string string 1 142 concat 144 139 143 call 145 pith_cstring_release void 1 139 call 146 pith_cstring_release void 1 143 -strref 147 m13s305 +strref 147 m13s307 concat 148 144 147 call 149 pith_cstring_release void 1 144 call 150 pith_cstring_release void 1 147 @@ -50160,8 +50250,8 @@ iconst 6 2 neq 7 5 6 brif 7 L2679 L2680 label L2679 -strref 8 m13s307 -strref 9 m13s600 +strref 8 m13s309 +strref 9 m13s602 load 10 arg_indices call 11 pith_list_len int 1 10 call 12 int_to_string string 1 11 @@ -50203,7 +50293,7 @@ load 39 second_idx store second_expr 39 load 40 first_node field 41 40 0 string kind -strref 42 m13s298 +strref 42 m13s300 call 43 pith_cstring_eq bool 2 41 42 call 44 pith_cstring_release void 1 42 brif 43 L2682 L2683 @@ -50228,7 +50318,7 @@ label L2683 label L2681 load 54 second_node field 55 54 0 string kind -strref 56 m13s298 +strref 56 m13s300 call 57 pith_cstring_eq bool 2 55 56 call 58 pith_cstring_release void 1 56 brif 57 L2688 L2689 @@ -50289,14 +50379,14 @@ label L2703 load 91 __and_82_2702 brif 91 L2700 L2701 label L2700 -strref 92 m13s304 -strref 93 m13s599 +strref 92 m13s306 +strref 93 m13s601 load 94 t1 call 95 types_get_type_name string 1 94 concat 96 93 95 call 97 pith_cstring_release void 1 93 call 98 pith_cstring_release void 1 95 -strref 99 m13s369 +strref 99 m13s371 concat 100 96 99 call 101 pith_cstring_release void 1 96 call 102 pith_cstring_release void 1 99 @@ -50341,7 +50431,7 @@ call 5 pith_struct_release void 1 2 store arg_node 4 load 6 arg_node field 7 6 0 string kind -strref 8 m13s298 +strref 8 m13s300 call 9 pith_cstring_eq bool 2 7 8 call 10 pith_cstring_release void 1 8 brif 9 L2705 L2706 @@ -50387,8 +50477,8 @@ iconst 6 2 neq 7 5 6 brif 7 L2711 L2712 label L2711 -strref 8 m13s307 -strref 9 m13s598 +strref 8 m13s309 +strref 9 m13s600 load 10 arg_indices call 11 pith_list_len int 1 10 call 12 int_to_string string 1 11 @@ -50458,8 +50548,8 @@ sub 57 59 58 call 60 pith_cstring_release void 1 56 brif 57 L2720 L2721 label L2720 -strref 61 m13s304 -strref 62 m13s597 +strref 61 m13s306 +strref 62 m13s599 load 63 list_tid call 64 types_get_type_name string 1 63 concat 65 62 64 @@ -50490,8 +50580,8 @@ sub 83 85 84 call 86 pith_cstring_release void 1 82 brif 83 L2723 L2724 label L2723 -strref 87 m13s579 -strref 88 m13s596 +strref 87 m13s581 +strref 88 m13s598 call 89 checker_diagnostics_report_error void 2 87 88 call 90 pith_cstring_release void 1 87 call 91 pith_cstring_release void 1 88 @@ -50510,8 +50600,8 @@ iconst 100 1 neq 101 99 100 brif 101 L2726 L2727 label L2726 -strref 102 m13s307 -strref 103 m13s587 +strref 102 m13s309 +strref 103 m13s589 load 104 fn_info field 105 104 48 list param_types call 106 pith_list_len int 1 105 @@ -50541,15 +50631,15 @@ iconst 126 0 eq 127 125 126 brif 127 L2729 L2730 label L2729 -strref 128 m13s304 -strref 129 m13s586 +strref 128 m13s306 +strref 129 m13s588 load 130 list_info field 131 130 64 int inner call 132 types_get_type_name string 1 131 concat 133 129 132 call 134 pith_cstring_release void 1 129 call 135 pith_cstring_release void 1 132 -strref 136 m13s301 +strref 136 m13s303 concat 137 133 136 call 138 pith_cstring_release void 1 133 call 139 pith_cstring_release void 1 136 @@ -50600,8 +50690,8 @@ iconst 6 2 neq 7 5 6 brif 7 L2732 L2733 label L2732 -strref 8 m13s307 -strref 9 m13s595 +strref 8 m13s309 +strref 9 m13s597 load 10 arg_indices call 11 pith_list_len int 1 10 call 12 int_to_string string 1 11 @@ -50671,8 +50761,8 @@ sub 57 59 58 call 60 pith_cstring_release void 1 56 brif 57 L2741 L2742 label L2741 -strref 61 m13s304 -strref 62 m13s594 +strref 61 m13s306 +strref 62 m13s596 load 63 list_tid call 64 types_get_type_name string 1 63 concat 65 62 64 @@ -50703,8 +50793,8 @@ sub 83 85 84 call 86 pith_cstring_release void 1 82 brif 83 L2744 L2745 label L2744 -strref 87 m13s579 -strref 88 m13s593 +strref 87 m13s581 +strref 88 m13s595 call 89 checker_diagnostics_report_error void 2 87 88 call 90 pith_cstring_release void 1 87 call 91 pith_cstring_release void 1 88 @@ -50723,8 +50813,8 @@ iconst 100 1 neq 101 99 100 brif 101 L2747 L2748 label L2747 -strref 102 m13s307 -strref 103 m13s583 +strref 102 m13s309 +strref 103 m13s585 load 104 fn_info field 105 104 48 list param_types call 106 pith_list_len int 1 105 @@ -50754,15 +50844,15 @@ iconst 126 0 eq 127 125 126 brif 127 L2750 L2751 label L2750 -strref 128 m13s304 -strref 129 m13s582 +strref 128 m13s306 +strref 129 m13s584 load 130 list_info field 131 130 64 int inner call 132 types_get_type_name string 1 131 concat 133 129 132 call 134 pith_cstring_release void 1 129 call 135 pith_cstring_release void 1 132 -strref 136 m13s301 +strref 136 m13s303 concat 137 133 136 call 138 pith_cstring_release void 1 133 call 139 pith_cstring_release void 1 136 @@ -50800,8 +50890,8 @@ iconst 165 0 eq 166 164 165 brif 166 L2756 L2757 label L2756 -strref 167 m13s304 -strref 168 m13s581 +strref 167 m13s306 +strref 168 m13s583 load 169 fn_info field 170 169 56 int return_type call 171 types_get_type_name string 1 170 @@ -50848,8 +50938,8 @@ iconst 6 3 neq 7 5 6 brif 7 L2759 L2760 label L2759 -strref 8 m13s307 -strref 9 m13s592 +strref 8 m13s309 +strref 9 m13s594 load 10 arg_indices call 11 pith_list_len int 1 10 call 12 int_to_string string 1 11 @@ -50938,8 +51028,8 @@ sub 70 72 71 call 73 pith_cstring_release void 1 69 brif 70 L2771 L2772 label L2771 -strref 74 m13s304 -strref 75 m13s591 +strref 74 m13s306 +strref 75 m13s593 load 76 list_tid call 77 types_get_type_name string 1 76 concat 78 75 77 @@ -50970,8 +51060,8 @@ sub 96 98 97 call 99 pith_cstring_release void 1 95 brif 96 L2774 L2775 label L2774 -strref 100 m13s579 -strref 101 m13s590 +strref 100 m13s581 +strref 101 m13s592 call 102 checker_diagnostics_report_error void 2 100 101 call 103 pith_cstring_release void 1 100 call 104 pith_cstring_release void 1 101 @@ -50990,8 +51080,8 @@ iconst 113 2 neq 114 112 113 brif 114 L2777 L2778 label L2777 -strref 115 m13s307 -strref 116 m13s577 +strref 115 m13s309 +strref 116 m13s579 load 117 fn_info field 118 117 48 list param_types call 119 pith_list_len int 1 118 @@ -51020,14 +51110,14 @@ iconst 138 0 eq 139 137 138 brif 139 L2780 L2781 label L2780 -strref 140 m13s304 -strref 141 m13s576 +strref 140 m13s306 +strref 141 m13s578 load 142 init_tid call 143 types_get_type_name string 1 142 concat 144 141 143 call 145 pith_cstring_release void 1 141 call 146 pith_cstring_release void 1 143 -strref 147 m13s301 +strref 147 m13s303 concat 148 144 147 call 149 pith_cstring_release void 1 144 call 150 pith_cstring_release void 1 147 @@ -51061,15 +51151,15 @@ iconst 174 0 eq 175 173 174 brif 175 L2783 L2784 label L2783 -strref 176 m13s304 -strref 177 m13s575 +strref 176 m13s306 +strref 177 m13s577 load 178 list_info field 179 178 64 int inner call 180 types_get_type_name string 1 179 concat 181 177 180 call 182 pith_cstring_release void 1 177 call 183 pith_cstring_release void 1 180 -strref 184 m13s301 +strref 184 m13s303 concat 185 181 184 call 186 pith_cstring_release void 1 181 call 187 pith_cstring_release void 1 184 @@ -51100,14 +51190,14 @@ iconst 208 0 eq 209 207 208 brif 209 L2786 L2787 label L2786 -strref 210 m13s304 -strref 211 m13s574 +strref 210 m13s306 +strref 211 m13s576 load 212 init_tid call 213 types_get_type_name string 1 212 concat 214 211 213 call 215 pith_cstring_release void 1 211 call 216 pith_cstring_release void 1 213 -strref 217 m13s301 +strref 217 m13s303 concat 218 214 217 call 219 pith_cstring_release void 1 214 call 220 pith_cstring_release void 1 217 @@ -51153,8 +51243,8 @@ iconst 6 1 neq 7 5 6 brif 7 L2789 L2790 label L2789 -strref 8 m13s307 -strref 9 m13s589 +strref 8 m13s309 +strref 9 m13s591 load 10 args call 11 pith_list_len int 1 10 call 12 int_to_string string 1 11 @@ -51201,8 +51291,8 @@ sub 40 42 41 call 43 pith_cstring_release void 1 39 brif 40 L2795 L2796 label L2795 -strref 44 m13s579 -strref 45 m13s588 +strref 44 m13s581 +strref 45 m13s590 call 46 checker_diagnostics_report_error void 2 44 45 call 47 pith_cstring_release void 1 44 call 48 pith_cstring_release void 1 45 @@ -51219,8 +51309,8 @@ iconst 55 1 neq 56 54 55 brif 56 L2798 L2799 label L2798 -strref 57 m13s307 -strref 58 m13s587 +strref 57 m13s309 +strref 58 m13s589 load 59 fn_info field 60 59 48 list param_types call 61 pith_list_len int 1 60 @@ -51248,15 +51338,15 @@ iconst 79 0 eq 80 78 79 brif 80 L2801 L2802 label L2801 -strref 81 m13s304 -strref 82 m13s586 +strref 81 m13s306 +strref 82 m13s588 load 83 info field 84 83 64 int inner call 85 types_get_type_name string 1 84 concat 86 82 85 call 87 pith_cstring_release void 1 82 call 88 pith_cstring_release void 1 85 -strref 89 m13s301 +strref 89 m13s303 concat 90 86 89 call 91 pith_cstring_release void 1 86 call 92 pith_cstring_release void 1 89 @@ -51300,8 +51390,8 @@ iconst 6 1 neq 7 5 6 brif 7 L2804 L2805 label L2804 -strref 8 m13s307 -strref 9 m13s585 +strref 8 m13s309 +strref 9 m13s587 load 10 args call 11 pith_list_len int 1 10 call 12 int_to_string string 1 11 @@ -51348,8 +51438,8 @@ sub 40 42 41 call 43 pith_cstring_release void 1 39 brif 40 L2810 L2811 label L2810 -strref 44 m13s579 -strref 45 m13s584 +strref 44 m13s581 +strref 45 m13s586 call 46 checker_diagnostics_report_error void 2 44 45 call 47 pith_cstring_release void 1 44 call 48 pith_cstring_release void 1 45 @@ -51366,8 +51456,8 @@ iconst 55 1 neq 56 54 55 brif 56 L2813 L2814 label L2813 -strref 57 m13s307 -strref 58 m13s583 +strref 57 m13s309 +strref 58 m13s585 load 59 fn_info field 60 59 48 list param_types call 61 pith_list_len int 1 60 @@ -51395,15 +51485,15 @@ iconst 79 0 eq 80 78 79 brif 80 L2816 L2817 label L2816 -strref 81 m13s304 -strref 82 m13s582 +strref 81 m13s306 +strref 82 m13s584 load 83 info field 84 83 64 int inner call 85 types_get_type_name string 1 84 concat 86 82 85 call 87 pith_cstring_release void 1 82 call 88 pith_cstring_release void 1 85 -strref 89 m13s301 +strref 89 m13s303 concat 90 86 89 call 91 pith_cstring_release void 1 86 call 92 pith_cstring_release void 1 89 @@ -51439,8 +51529,8 @@ iconst 116 0 eq 117 115 116 brif 117 L2822 L2823 label L2822 -strref 118 m13s304 -strref 119 m13s581 +strref 118 m13s306 +strref 119 m13s583 load 120 fn_info field 121 120 56 int return_type call 122 types_get_type_name string 1 121 @@ -51482,8 +51572,8 @@ iconst 6 2 neq 7 5 6 brif 7 L2825 L2826 label L2825 -strref 8 m13s307 -strref 9 m13s580 +strref 8 m13s309 +strref 9 m13s582 load 10 args call 11 pith_list_len int 1 10 call 12 int_to_string string 1 11 @@ -51547,8 +51637,8 @@ sub 51 53 52 call 54 pith_cstring_release void 1 50 brif 51 L2834 L2835 label L2834 -strref 55 m13s579 -strref 56 m13s578 +strref 55 m13s581 +strref 56 m13s580 call 57 checker_diagnostics_report_error void 2 55 56 call 58 pith_cstring_release void 1 55 call 59 pith_cstring_release void 1 56 @@ -51565,8 +51655,8 @@ iconst 66 2 neq 67 65 66 brif 67 L2837 L2838 label L2837 -strref 68 m13s307 -strref 69 m13s577 +strref 68 m13s309 +strref 69 m13s579 load 70 fn_info field 71 70 48 list param_types call 72 pith_list_len int 1 71 @@ -51593,14 +51683,14 @@ iconst 89 0 eq 90 88 89 brif 90 L2840 L2841 label L2840 -strref 91 m13s304 -strref 92 m13s576 +strref 91 m13s306 +strref 92 m13s578 load 93 init_tid call 94 types_get_type_name string 1 93 concat 95 92 94 call 96 pith_cstring_release void 1 92 call 97 pith_cstring_release void 1 94 -strref 98 m13s301 +strref 98 m13s303 concat 99 95 98 call 100 pith_cstring_release void 1 95 call 101 pith_cstring_release void 1 98 @@ -51632,15 +51722,15 @@ iconst 123 0 eq 124 122 123 brif 124 L2843 L2844 label L2843 -strref 125 m13s304 -strref 126 m13s575 +strref 125 m13s306 +strref 126 m13s577 load 127 info field 128 127 64 int inner call 129 types_get_type_name string 1 128 concat 130 126 129 call 131 pith_cstring_release void 1 126 call 132 pith_cstring_release void 1 129 -strref 133 m13s301 +strref 133 m13s303 concat 134 130 133 call 135 pith_cstring_release void 1 130 call 136 pith_cstring_release void 1 133 @@ -51669,14 +51759,14 @@ iconst 155 0 eq 156 154 155 brif 156 L2846 L2847 label L2846 -strref 157 m13s304 -strref 158 m13s574 +strref 157 m13s306 +strref 158 m13s576 load 159 init_tid call 160 types_get_type_name string 1 159 concat 161 158 160 call 162 pith_cstring_release void 1 158 call 163 pith_cstring_release void 1 160 -strref 164 m13s301 +strref 164 m13s303 concat 165 161 164 call 166 pith_cstring_release void 1 161 call 167 pith_cstring_release void 1 164 @@ -51708,7 +51798,7 @@ func checker_iface_type_base_name 1 string param node load 1 node field 2 1 0 string kind -strref 3 m13s563 +strref 3 m13s565 call 4 pith_cstring_eq bool 2 2 3 call 5 pith_cstring_release void 1 3 brif 4 L2849 L2850 @@ -51721,7 +51811,7 @@ label L2850 label L2848 load 9 node field 10 9 0 string kind -strref 11 m13s564 +strref 11 m13s566 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 brif 12 L2852 L2853 @@ -51768,7 +51858,7 @@ call 8 pith_list_release_handle void 1 6 store names 7 load 9 node field 10 9 0 string kind -strref 11 m13s563 +strref 11 m13s565 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 brif 12 L2858 L2859 @@ -51810,7 +51900,7 @@ jmp L2857 label L2859 load 35 node field 36 35 0 string kind -strref 37 m13s564 +strref 37 m13s566 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 brif 38 L2864 L2865 @@ -52009,7 +52099,7 @@ gte 58 56 57 brif 58 L2888 L2889 label L2888 load 59 parts -strref 60 m13s573 +strref 60 m13s575 load 61 found_idx call 62 int_to_string string 1 61 concat 63 60 62 @@ -52019,7 +52109,7 @@ call 66 pith_list_push_value_owned void 2 59 63 jmp L2887 label L2889 load 67 parts -strref 68 m13s572 +strref 68 m13s574 load 69 __loopvar_150_n call 70 types_lookup_type_id int 1 69 call 71 int_to_string string 1 70 @@ -52133,7 +52223,7 @@ load 45 __for_idx_152 call 46 pith_list_get_value_unchecked string 2 44 45 store __loopvar_152_part 46 load 47 __loopvar_152_part -strref 48 m13s573 +strref 48 m13s575 call 49 pith_cstring_starts_with bool 2 47 48 call 50 pith_cstring_release void 1 48 brif 49 L2901 L2902 @@ -52182,7 +52272,7 @@ label L2903 jmp L2900 label L2902 load 79 __loopvar_152_part -strref 80 m13s572 +strref 80 m13s574 call 81 pith_cstring_starts_with bool 2 79 80 call 82 pith_cstring_release void 1 80 brif 81 L2908 L2909 @@ -52391,7 +52481,7 @@ call 24 pith_struct_release void 1 21 store cn 23 load 25 cn field 26 25 0 string kind -strref 27 m13s571 +strref 27 m13s573 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L2926 L2927 @@ -52668,7 +52758,7 @@ call 26 pith_struct_release void 1 23 store cn 25 load 27 cn field 28 27 0 string kind -strref 29 m13s571 +strref 29 m13s573 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 brif 30 L2963 L2964 @@ -52727,19 +52817,19 @@ iconst 68 0 eq 69 67 68 brif 69 L2973 L2974 label L2973 -strref 70 m13s568 -strref 71 m13s570 +strref 70 m13s570 +strref 71 m13s572 load 72 iface_name concat 73 71 72 call 74 pith_cstring_release void 1 71 -strref 75 m13s569 +strref 75 m13s571 concat 76 73 75 call 77 pith_cstring_release void 1 73 call 78 pith_cstring_release void 1 75 load 79 param_name concat 80 76 79 call 81 pith_cstring_release void 1 76 -strref 82 m13s349 +strref 82 m13s351 concat 83 80 82 call 84 pith_cstring_release void 1 80 call 85 pith_cstring_release void 1 82 @@ -52757,19 +52847,19 @@ iconst 93 0 eq 94 92 93 brif 94 L2976 L2977 label L2976 -strref 95 m13s568 -strref 96 m13s567 +strref 95 m13s570 +strref 96 m13s569 load 97 type_name concat 98 96 97 call 99 pith_cstring_release void 1 96 -strref 100 m13s566 +strref 100 m13s568 concat 101 98 100 call 102 pith_cstring_release void 1 98 call 103 pith_cstring_release void 1 100 load 104 iface_name concat 105 101 104 call 106 pith_cstring_release void 1 101 -strref 107 m13s349 +strref 107 m13s351 concat 108 105 107 call 109 pith_cstring_release void 1 105 call 110 pith_cstring_release void 1 107 @@ -52850,8 +52940,8 @@ iconst 11 0 eq 12 10 11 brif 12 L2982 L2983 label L2982 -strref 13 m13s304 -strref 14 m13s565 +strref 13 m13s306 +strref 14 m13s567 load 15 name concat 16 14 15 call 17 pith_cstring_release void 1 14 @@ -52864,7 +52954,7 @@ call 23 types_get_type_name string 1 22 concat 24 19 23 call 25 pith_cstring_release void 1 19 call 26 pith_cstring_release void 1 23 -strref 27 m13s369 +strref 27 m13s371 concat 28 24 27 call 29 pith_cstring_release void 1 24 call 30 pith_cstring_release void 1 27 @@ -53638,7 +53728,7 @@ call 27 pith_struct_release void 1 24 store node 26 load 28 node field 29 28 0 string kind -strref 30 m13s564 +strref 30 m13s566 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 brif 31 L3071 L3072 @@ -53666,7 +53756,7 @@ call 49 pith_struct_release void 1 46 store actual_info 48 load 50 node field 51 50 0 string kind -strref 52 m13s563 +strref 52 m13s565 call 53 pith_cstring_eq bool 2 51 52 call 54 pith_cstring_release void 1 52 brif 53 L3074 L3075 @@ -54049,7 +54139,7 @@ label L3075 label L3073 load 326 node field 327 326 0 string kind -strref 328 m13s562 +strref 328 m13s564 call 329 pith_cstring_eq bool 2 327 328 call 330 pith_cstring_release void 1 328 brif 329 L3127 L3128 @@ -54107,7 +54197,7 @@ label L3128 label L3126 load 368 node field 369 368 0 string kind -strref 370 m13s561 +strref 370 m13s563 call 371 pith_cstring_eq bool 2 369 370 call 372 pith_cstring_release void 1 370 brif 371 L3135 L3136 @@ -54211,7 +54301,7 @@ label L3136 label L3134 load 440 node field 441 440 0 string kind -strref 442 m13s560 +strref 442 m13s562 call 443 pith_cstring_eq bool 2 441 442 call 444 pith_cstring_release void 1 442 brif 443 L3151 L3152 @@ -54299,7 +54389,7 @@ label L3152 label L3150 load 496 node field 497 496 0 string kind -strref 498 m13s559 +strref 498 m13s561 call 499 pith_cstring_eq bool 2 497 498 call 500 pith_cstring_release void 1 498 brif 499 L3167 L3168 @@ -54337,7 +54427,7 @@ call 520 pith_struct_release void 1 517 store cn 519 load 521 cn field 522 521 0 string kind -strref 523 m13s323 +strref 523 m13s325 call 524 pith_cstring_eq bool 2 522 523 call 525 pith_cstring_release void 1 523 brif 524 L3177 L3178 @@ -54383,7 +54473,7 @@ label L3178 label L3176 load 552 cn field 553 552 0 string kind -strref 554 m13s555 +strref 554 m13s557 call 555 pith_cstring_eq bool 2 553 554 call 556 pith_cstring_release void 1 554 brif 555 L3186 L3187 @@ -54528,7 +54618,7 @@ load 40 __loopvar_164_ai store arg_expr 40 load 41 arg_node field 42 41 0 string kind -strref 43 m13s298 +strref 43 m13s300 call 44 pith_cstring_eq bool 2 42 43 call 45 pith_cstring_release void 1 43 brif 44 L3196 L3197 @@ -54591,7 +54681,7 @@ call 79 pith_struct_release void 1 76 store cn 78 load 80 cn field 81 80 0 string kind -strref 82 m13s323 +strref 82 m13s325 call 83 pith_cstring_eq bool 2 81 82 call 84 pith_cstring_release void 1 82 brif 83 L3206 L3207 @@ -54634,15 +54724,15 @@ call 107 pith_list_len int 1 106 neq 108 105 107 brif 108 L3212 L3213 label L3212 -strref 109 m13s307 -strref 110 m13s558 +strref 109 m13s309 +strref 110 m13s560 load 111 param_type_nodes call 112 pith_list_len int 1 111 call 113 int_to_string string 1 112 concat 114 110 113 call 115 pith_cstring_release void 1 110 call 116 pith_cstring_release void 1 113 -strref 117 m13s548 +strref 117 m13s550 concat 118 114 117 call 119 pith_cstring_release void 1 114 call 120 pith_cstring_release void 1 117 @@ -54894,8 +54984,8 @@ add 290 288 289 store __for_idx_169 290 jmp L3237 label L3240 -strref 291 m13s557 -strref 292 m13s556 +strref 291 m13s559 +strref 292 m13s558 load 293 __loopvar_167_gp concat 294 292 293 call 295 pith_cstring_release void 1 292 @@ -54993,7 +55083,7 @@ call 367 pith_struct_release void 1 364 store cn 366 load 368 cn field 369 368 0 string kind -strref 370 m13s555 +strref 370 m13s557 call 371 pith_cstring_eq bool 2 369 370 call 372 pith_cstring_release void 1 370 brif 371 L3252 L3253 @@ -55080,14 +55170,14 @@ iconst 424 0 eq 425 423 424 brif 425 L3274 L3275 label L3274 -strref 426 m13s304 -strref 427 m13s443 +strref 426 m13s306 +strref 427 m13s445 load 428 concrete call 429 types_get_type_name string 1 428 concat 430 427 429 call 431 pith_cstring_release void 1 427 call 432 pith_cstring_release void 1 429 -strref 433 m13s301 +strref 433 m13s303 concat 434 430 433 call 435 pith_cstring_release void 1 430 call 436 pith_cstring_release void 1 433 @@ -55215,7 +55305,7 @@ call 21 pith_struct_release void 1 18 store cn 20 load 22 cn field 23 22 0 string kind -strref 24 m13s323 +strref 24 m13s325 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 brif 25 L3281 L3282 @@ -55293,7 +55383,7 @@ call 17 pith_struct_release void 1 14 store cn 16 load 18 cn field 19 18 0 string kind -strref 20 m13s555 +strref 20 m13s557 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 brif 21 L3291 L3292 @@ -55349,7 +55439,7 @@ iconst 6 0 store __and_6_3299 6 load 7 arg_node field 8 7 0 string kind -strref 9 m13s298 +strref 9 m13s300 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 store __and_6_3299 10 @@ -55391,7 +55481,7 @@ param scope_id iconst 4 0 store message 4 load 5 message -strref 6 m13s554 +strref 6 m13s556 load 7 alias concat 8 6 7 call 9 pith_cstring_release void 1 6 @@ -55437,13 +55527,13 @@ call 42 contains_key bool 2 32 40 call 43 pith_cstring_release void 1 40 brif 42 L3308 L3309 label L3308 -strref 44 m13s550 +strref 44 m13s552 load 45 message -strref 46 m13s349 +strref 46 m13s351 load 47 name concat 48 46 47 call 49 pith_cstring_release void 1 46 -strref 50 m13s553 +strref 50 m13s555 concat 51 48 50 call 52 pith_cstring_release void 1 48 call 53 pith_cstring_release void 1 50 @@ -55452,14 +55542,14 @@ call 55 types_get_type_name string 1 54 concat 56 51 55 call 57 pith_cstring_release void 1 51 call 58 pith_cstring_release void 1 55 -strref 59 m13s552 +strref 59 m13s554 concat 60 56 59 call 61 pith_cstring_release void 1 56 call 62 pith_cstring_release void 1 59 load 63 name concat 64 60 63 call 65 pith_cstring_release void 1 60 -strref 66 m13s551 +strref 66 m13s553 concat 67 64 66 call 68 pith_cstring_release void 1 64 call 69 pith_cstring_release void 1 66 @@ -55478,7 +55568,7 @@ label L3304 jmp L3301 label L3303 label L3301 -strref 76 m13s550 +strref 76 m13s552 load 77 message call 78 checker_diagnostics_report_error void 2 76 77 call 79 pith_cstring_release void 1 76 @@ -55548,7 +55638,7 @@ store __and_34_3319 37 brif 37 L3319 L3320 label L3319 load 39 method -strref 40 m13s512 +strref 40 m13s514 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 store __and_34_3319 41 @@ -55599,7 +55689,7 @@ store __and_62_3328 65 brif 65 L3328 L3329 label L3328 load 67 method -strref 68 m13s480 +strref 68 m13s482 call 69 pith_cstring_eq bool 2 67 68 call 70 pith_cstring_release void 1 68 store __and_62_3328 69 @@ -55650,7 +55740,7 @@ store __and_90_3337 93 brif 93 L3337 L3338 label L3337 load 95 method -strref 96 m13s491 +strref 96 m13s493 call 97 pith_cstring_eq bool 2 95 96 call 98 pith_cstring_release void 1 96 store __and_90_3337 97 @@ -55939,7 +56029,7 @@ jmp L3355 label L3358 load 135 recv_node field 136 135 0 string kind -strref 137 m13s293 +strref 137 m13s295 call 138 pith_cstring_eq bool 2 136 137 call 139 pith_cstring_release void 1 137 brif 138 L3363 L3364 @@ -56094,7 +56184,7 @@ load 255 gen_ctor_name call 256 checker_get_generic_declaration_index int 1 255 call 257 ast_get_node struct:Node 1 256 field 258 257 0 string kind -strref 259 m13s287 +strref 259 m13s289 call 260 pith_cstring_eq bool 2 258 259 call 261 pith_cstring_release void 1 259 brif 260 L3383 L3384 @@ -56169,7 +56259,7 @@ load 320 method_name call 321 checker_get_generic_declaration_index int 1 320 call 322 ast_get_node struct:Node 1 321 field 323 322 0 string kind -strref 324 m13s287 +strref 324 m13s289 call 325 pith_cstring_eq bool 2 323 324 call 326 pith_cstring_release void 1 324 brif 325 L3389 L3390 @@ -56243,19 +56333,19 @@ iconst 387 1 sub 386 387 385 brif 386 L3392 L3393 label L3392 -strref 388 m13s442 -strref 389 m13s349 +strref 388 m13s444 +strref 389 m13s351 load 390 method_name concat 391 389 390 call 392 pith_cstring_release void 1 389 -strref 393 m13s441 +strref 393 m13s443 concat 394 391 393 call 395 pith_cstring_release void 1 391 call 396 pith_cstring_release void 1 393 load 397 recv_name concat 398 394 397 call 399 pith_cstring_release void 1 394 -strref 400 m13s349 +strref 400 m13s351 concat 401 398 400 call 402 pith_cstring_release void 1 398 call 403 pith_cstring_release void 1 400 @@ -56644,7 +56734,7 @@ brif 736 L3415 L3416 label L3415 load 737 recv_node field 738 737 0 string kind -strref 739 m13s293 +strref 739 m13s295 call 740 pith_cstring_eq bool 2 738 739 call 741 pith_cstring_release void 1 739 store __and_734_3415 740 @@ -56807,7 +56897,7 @@ ret 826 label L3425 label L3423 load 879 method_name -strref 880 m13s528 +strref 880 m13s530 call 881 pith_cstring_eq bool 2 879 880 call 882 pith_cstring_release void 1 880 brif 881 L3427 L3428 @@ -56818,8 +56908,8 @@ iconst 885 1 neq 886 884 885 brif 886 L3430 L3431 label L3430 -strref 887 m13s307 -strref 888 m13s527 +strref 887 m13s309 +strref 888 m13s529 load 889 arg_indices call 890 pith_list_len int 1 889 call 891 int_to_string string 1 890 @@ -57882,9 +57972,9 @@ call 1819 pith_list_len int 1 1818 neq 1820 1817 1819 brif 1820 L3498 L3499 label L3498 -strref 1821 m13s307 +strref 1821 m13s309 load 1822 method_name -strref 1823 m13s549 +strref 1823 m13s551 concat 1824 1822 1823 call 1825 pith_cstring_release void 1 1823 load 1826 payload_types @@ -57893,7 +57983,7 @@ call 1828 int_to_string string 1 1827 concat 1829 1824 1828 call 1830 pith_cstring_release void 1 1824 call 1831 pith_cstring_release void 1 1828 -strref 1832 m13s548 +strref 1832 m13s550 concat 1833 1829 1832 call 1834 pith_cstring_release void 1 1829 call 1835 pith_cstring_release void 1 1832 @@ -57989,7 +58079,7 @@ load 1912 __loopvar_175_pai store pa_expr 1912 load 1913 pa_node field 1914 1913 0 string kind -strref 1915 m13s298 +strref 1915 m13s300 call 1916 pith_cstring_eq bool 2 1914 1915 call 1917 pith_cstring_release void 1 1915 brif 1916 L3505 L3506 @@ -58050,8 +58140,8 @@ iconst 1950 0 eq 1951 1949 1950 brif 1951 L3519 L3520 label L3519 -strref 1952 m13s304 -strref 1953 m13s443 +strref 1952 m13s306 +strref 1953 m13s445 load 1954 payload_types load 1955 pi call 1956 pith_list_get_value_strict int 2 1954 1955 @@ -58059,7 +58149,7 @@ call 1957 types_get_type_name string 1 1956 concat 1958 1953 1957 call 1959 pith_cstring_release void 1 1953 call 1960 pith_cstring_release void 1 1957 -strref 1961 m13s301 +strref 1961 m13s303 concat 1962 1958 1961 call 1963 pith_cstring_release void 1 1958 call 1964 pith_cstring_release void 1 1961 @@ -58359,9 +58449,9 @@ call 2171 pith_list_len int 1 2170 neq 2172 2169 2171 brif 2172 L3550 L3551 label L3550 -strref 2173 m13s307 +strref 2173 m13s309 load 2174 method_name -strref 2175 m13s549 +strref 2175 m13s551 concat 2176 2174 2175 call 2177 pith_cstring_release void 1 2175 load 2178 param_types @@ -58370,7 +58460,7 @@ call 2180 int_to_string string 1 2179 concat 2181 2176 2180 call 2182 pith_cstring_release void 1 2176 call 2183 pith_cstring_release void 1 2180 -strref 2184 m13s548 +strref 2184 m13s550 concat 2185 2181 2184 call 2186 pith_cstring_release void 1 2181 call 2187 pith_cstring_release void 1 2184 @@ -58466,7 +58556,7 @@ load 2264 __loopvar_177_ai store arg_expr 2264 load 2265 arg_node field 2266 2265 0 string kind -strref 2267 m13s298 +strref 2267 m13s300 call 2268 pith_cstring_eq bool 2 2266 2267 call 2269 pith_cstring_release void 1 2267 brif 2268 L3557 L3558 @@ -58521,8 +58611,8 @@ iconst 2300 0 eq 2301 2299 2300 brif 2301 L3572 L3573 label L3572 -strref 2302 m13s304 -strref 2303 m13s443 +strref 2302 m13s306 +strref 2303 m13s445 load 2304 param_types load 2305 aidx call 2306 pith_list_get_value_strict int 2 2304 2305 @@ -58530,7 +58620,7 @@ call 2307 types_get_type_name string 1 2306 concat 2308 2303 2307 call 2309 pith_cstring_release void 1 2303 call 2310 pith_cstring_release void 1 2307 -strref 2311 m13s301 +strref 2311 m13s303 concat 2312 2308 2311 call 2313 pith_cstring_release void 1 2308 call 2314 pith_cstring_release void 1 2311 @@ -58749,17 +58839,17 @@ iconst 2478 0 eq 2479 2477 2478 brif 2479 L3589 L3590 label L3589 -strref 2480 m13s429 +strref 2480 m13s431 load 2481 receiver_type call 2482 types_get_type_name string 1 2481 -strref 2483 m13s547 +strref 2483 m13s549 concat 2484 2482 2483 call 2485 pith_cstring_release void 1 2482 call 2486 pith_cstring_release void 1 2483 load 2487 method_name concat 2488 2484 2487 call 2489 pith_cstring_release void 1 2484 -strref 2490 m13s349 +strref 2490 m13s351 concat 2491 2488 2490 call 2492 pith_cstring_release void 1 2488 call 2493 pith_cstring_release void 1 2490 @@ -58916,7 +59006,7 @@ call 10 types_lookup_type_id int 1 9 call 11 pith_cstring_release void 1 9 store tid_bool 10 load 12 method -strref 13 m13s454 +strref 13 m13s456 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 brif 14 L3594 L3595 @@ -58929,7 +59019,7 @@ ret 19 label L3595 label L3593 load 20 method -strref 21 m13s546 +strref 21 m13s548 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 brif 22 L3597 L3598 @@ -58942,7 +59032,7 @@ ret 27 label L3598 label L3596 load 28 method -strref 29 m13s545 +strref 29 m13s547 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 brif 30 L3600 L3601 @@ -58955,7 +59045,7 @@ ret 35 label L3601 label L3599 load 36 method -strref 37 m13s544 +strref 37 m13s546 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 brif 38 L3603 L3604 @@ -58968,7 +59058,7 @@ ret 43 label L3604 label L3602 load 44 method -strref 45 m13s488 +strref 45 m13s490 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 brif 46 L3606 L3607 @@ -58981,7 +59071,7 @@ ret 51 label L3607 label L3605 load 52 method -strref 53 m13s486 +strref 53 m13s488 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 brif 54 L3609 L3610 @@ -58995,7 +59085,7 @@ ret 60 label L3610 label L3608 load 61 method -strref 62 m13s543 +strref 62 m13s545 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 brif 63 L3612 L3613 @@ -59009,7 +59099,7 @@ ret 69 label L3613 label L3611 load 70 method -strref 71 m13s542 +strref 71 m13s544 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 brif 72 L3615 L3616 @@ -59023,7 +59113,7 @@ ret 78 label L3616 label L3614 load 79 method -strref 80 m13s506 +strref 80 m13s508 call 81 pith_cstring_eq bool 2 79 80 call 82 pith_cstring_release void 1 80 brif 81 L3618 L3619 @@ -59037,7 +59127,7 @@ ret 87 label L3619 label L3617 load 88 method -strref 89 m13s541 +strref 89 m13s543 call 90 pith_cstring_eq bool 2 88 89 call 91 pith_cstring_release void 1 89 brif 90 L3621 L3622 @@ -59051,7 +59141,7 @@ ret 96 label L3622 label L3620 load 97 method -strref 98 m13s540 +strref 98 m13s542 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 brif 99 L3624 L3625 @@ -59066,7 +59156,7 @@ ret 106 label L3625 label L3623 load 107 method -strref 108 m13s539 +strref 108 m13s541 call 109 pith_cstring_eq bool 2 107 108 call 110 pith_cstring_release void 1 108 brif 109 L3627 L3628 @@ -59080,7 +59170,7 @@ ret 115 label L3628 label L3626 load 116 method -strref 117 m13s538 +strref 117 m13s540 call 118 pith_cstring_eq bool 2 116 117 call 119 pith_cstring_release void 1 117 brif 118 L3630 L3631 @@ -59094,7 +59184,7 @@ ret 124 label L3631 label L3629 load 125 method -strref 126 m13s537 +strref 126 m13s539 call 127 pith_cstring_eq bool 2 125 126 call 128 pith_cstring_release void 1 126 brif 127 L3633 L3634 @@ -59109,7 +59199,7 @@ ret 134 label L3634 label L3632 load 135 method -strref 136 m13s536 +strref 136 m13s538 call 137 pith_cstring_eq bool 2 135 136 call 138 pith_cstring_release void 1 136 brif 137 L3636 L3637 @@ -59123,7 +59213,7 @@ ret 143 label L3637 label L3635 load 144 method -strref 145 m13s535 +strref 145 m13s537 call 146 pith_cstring_eq bool 2 144 145 call 147 pith_cstring_release void 1 145 brif 146 L3639 L3640 @@ -59137,7 +59227,7 @@ ret 152 label L3640 label L3638 load 153 method -strref 154 m13s534 +strref 154 m13s536 call 155 pith_cstring_eq bool 2 153 154 call 156 pith_cstring_release void 1 154 brif 155 L3642 L3643 @@ -59151,7 +59241,7 @@ ret 161 label L3643 label L3641 load 162 method -strref 163 m13s497 +strref 163 m13s499 call 164 pith_cstring_eq bool 2 162 163 call 165 pith_cstring_release void 1 163 brif 164 L3645 L3646 @@ -59168,12 +59258,12 @@ call 174 pith_struct_release void 1 172 ret 173 label L3646 label L3644 -strref 175 m13s429 -strref 176 m13s533 +strref 175 m13s431 +strref 176 m13s535 load 177 method concat 178 176 177 call 179 pith_cstring_release void 1 176 -strref 180 m13s349 +strref 180 m13s351 concat 181 178 180 call 182 pith_cstring_release void 1 178 call 183 pith_cstring_release void 1 180 @@ -59206,7 +59296,7 @@ call 13 types_lookup_type_id int 1 12 call 14 pith_cstring_release void 1 12 store tid_bool 13 load 15 method -strref 16 m13s454 +strref 16 m13s456 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 brif 17 L3648 L3649 @@ -59219,7 +59309,7 @@ ret 22 label L3649 label L3647 load 23 method -strref 24 m13s488 +strref 24 m13s490 call 25 pith_cstring_eq bool 2 23 24 call 26 pith_cstring_release void 1 24 brif 25 L3651 L3652 @@ -59232,7 +59322,7 @@ ret 30 label L3652 label L3650 load 31 method -strref 32 m13s505 +strref 32 m13s507 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 brif 33 L3654 L3655 @@ -59246,7 +59336,7 @@ ret 39 label L3655 label L3653 load 40 method -strref 41 m13s532 +strref 41 m13s534 call 42 pith_cstring_eq bool 2 40 41 call 43 pith_cstring_release void 1 41 brif 42 L3657 L3658 @@ -59261,7 +59351,7 @@ ret 49 label L3658 label L3656 load 50 method -strref 51 m13s531 +strref 51 m13s533 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 brif 52 L3660 L3661 @@ -59277,12 +59367,12 @@ call 61 pith_struct_release void 1 59 ret 60 label L3661 label L3659 -strref 62 m13s429 -strref 63 m13s530 +strref 62 m13s431 +strref 63 m13s532 load 64 method concat 65 63 64 call 66 pith_cstring_release void 1 63 -strref 67 m13s349 +strref 67 m13s351 concat 68 65 67 call 69 pith_cstring_release void 1 65 call 70 pith_cstring_release void 1 67 @@ -59308,7 +59398,7 @@ call 7 types_lookup_type_id int 1 6 call 8 pith_cstring_release void 1 6 store tid_string 7 load 9 method -strref 10 m13s514 +strref 10 m13s516 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 brif 11 L3663 L3664 @@ -59336,8 +59426,8 @@ label L3669 load 27 __or_16_3668 brif 27 L3666 L3667 label L3666 -strref 28 m13s304 -strref 29 m13s529 +strref 28 m13s306 +strref 29 m13s531 call 30 checker_diagnostics_report_error void 2 28 29 call 31 pith_cstring_release void 1 28 call 32 pith_cstring_release void 1 29 @@ -59358,7 +59448,7 @@ ret 38 label L3664 label L3662 load 43 method -strref 44 m13s528 +strref 44 m13s530 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 brif 45 L3671 L3672 @@ -59369,8 +59459,8 @@ iconst 49 1 neq 50 48 49 brif 50 L3674 L3675 label L3674 -strref 51 m13s307 -strref 52 m13s527 +strref 51 m13s309 +strref 52 m13s529 load 53 args call 54 pith_list_len int 1 53 call 55 int_to_string string 1 54 @@ -59405,7 +59495,7 @@ ret 75 label L3672 label L3670 load 80 method -strref 81 m13s526 +strref 81 m13s528 call 82 pith_cstring_eq bool 2 80 81 call 83 pith_cstring_release void 1 81 brif 82 L3677 L3678 @@ -59416,8 +59506,8 @@ iconst 86 1 neq 87 85 86 brif 87 L3680 L3681 label L3680 -strref 88 m13s307 -strref 89 m13s525 +strref 88 m13s309 +strref 89 m13s527 load 90 args call 91 pith_list_len int 1 90 call 92 int_to_string string 1 91 @@ -59468,8 +59558,8 @@ sub 124 126 125 call 127 pith_cstring_release void 1 123 brif 124 L3686 L3687 label L3686 -strref 128 m13s304 -strref 129 m13s524 +strref 128 m13s306 +strref 129 m13s526 load 130 handler_type call 131 types_get_type_name string 1 130 concat 132 129 131 @@ -59493,8 +59583,8 @@ iconst 146 1 neq 147 145 146 brif 147 L3689 L3690 label L3689 -strref 148 m13s304 -strref 149 m13s523 +strref 148 m13s306 +strref 149 m13s525 call 150 checker_diagnostics_report_error void 2 148 149 call 151 pith_cstring_release void 1 148 call 152 pith_cstring_release void 1 149 @@ -59517,15 +59607,15 @@ iconst 165 0 eq 166 164 165 brif 166 L3692 L3693 label L3692 -strref 167 m13s304 -strref 168 m13s522 +strref 167 m13s306 +strref 168 m13s524 load 169 info field 170 169 80 int value_type call 171 types_get_type_name string 1 170 concat 172 168 171 call 173 pith_cstring_release void 1 168 call 174 pith_cstring_release void 1 171 -strref 175 m13s301 +strref 175 m13s303 concat 176 172 175 call 177 pith_cstring_release void 1 172 call 178 pith_cstring_release void 1 175 @@ -59563,8 +59653,8 @@ sub 203 205 204 call 206 pith_cstring_release void 1 202 brif 203 L3695 L3696 label L3695 -strref 207 m13s304 -strref 208 m13s521 +strref 207 m13s306 +strref 208 m13s523 call 209 checker_diagnostics_report_error void 2 207 208 call 210 pith_cstring_release void 1 207 call 211 pith_cstring_release void 1 208 @@ -59585,15 +59675,15 @@ iconst 222 0 eq 223 221 222 brif 223 L3698 L3699 label L3698 -strref 224 m13s304 -strref 225 m13s520 +strref 224 m13s306 +strref 225 m13s522 load 226 info field 227 226 64 int inner call 228 types_get_type_name string 1 227 concat 229 225 228 call 230 pith_cstring_release void 1 225 call 231 pith_cstring_release void 1 228 -strref 232 m13s519 +strref 232 m13s521 concat 233 229 232 call 234 pith_cstring_release void 1 229 call 235 pith_cstring_release void 1 232 @@ -59649,7 +59739,7 @@ call 7 types_lookup_type_id int 1 6 call 8 pith_cstring_release void 1 6 store tid_float 7 load 9 method -strref 10 m13s514 +strref 10 m13s516 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 brif 11 L3701 L3702 @@ -59662,7 +59752,7 @@ ret 16 label L3702 label L3700 load 17 method -strref 18 m13s518 +strref 18 m13s520 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L3704 L3705 @@ -59674,12 +59764,12 @@ load 24 tid_float ret 24 label L3705 label L3703 -strref 25 m13s429 -strref 26 m13s517 +strref 25 m13s431 +strref 26 m13s519 load 27 method concat 28 26 27 call 29 pith_cstring_release void 1 26 -strref 30 m13s349 +strref 30 m13s351 concat 31 28 30 call 32 pith_cstring_release void 1 28 call 33 pith_cstring_release void 1 30 @@ -59704,7 +59794,7 @@ call 7 types_lookup_type_id int 1 6 call 8 pith_cstring_release void 1 6 store tid_int 7 load 9 method -strref 10 m13s514 +strref 10 m13s516 call 11 pith_cstring_eq bool 2 9 10 call 12 pith_cstring_release void 1 10 brif 11 L3707 L3708 @@ -59717,7 +59807,7 @@ ret 16 label L3708 label L3706 load 17 method -strref 18 m13s516 +strref 18 m13s518 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L3710 L3711 @@ -59729,12 +59819,12 @@ load 24 tid_int ret 24 label L3711 label L3709 -strref 25 m13s429 -strref 26 m13s515 +strref 25 m13s431 +strref 26 m13s517 load 27 method concat 28 26 27 call 29 pith_cstring_release void 1 26 -strref 30 m13s349 +strref 30 m13s351 concat 31 28 30 call 32 pith_cstring_release void 1 28 call 33 pith_cstring_release void 1 30 @@ -59755,7 +59845,7 @@ call 4 types_lookup_type_id int 1 3 call 5 pith_cstring_release void 1 3 store tid_string 4 load 6 method -strref 7 m13s514 +strref 7 m13s516 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L3713 L3714 @@ -59767,12 +59857,12 @@ load 13 tid_string ret 13 label L3714 label L3712 -strref 14 m13s429 -strref 15 m13s513 +strref 14 m13s431 +strref 15 m13s515 load 16 method concat 17 15 16 call 18 pith_cstring_release void 1 15 -strref 19 m13s349 +strref 19 m13s351 concat 20 17 19 call 21 pith_cstring_release void 1 17 call 22 pith_cstring_release void 1 19 @@ -59809,7 +59899,7 @@ call 16 types_lookup_type_id int 1 15 call 17 pith_cstring_release void 1 15 store tid_void 16 load 18 method -strref 19 m13s512 +strref 19 m13s514 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L3716 L3717 @@ -59824,7 +59914,7 @@ ret 27 label L3717 label L3715 load 28 method -strref 29 m13s454 +strref 29 m13s456 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 brif 30 L3719 L3720 @@ -59837,7 +59927,7 @@ ret 35 label L3720 label L3718 load 36 method -strref 37 m13s488 +strref 37 m13s490 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 brif 38 L3722 L3723 @@ -59850,7 +59940,7 @@ ret 43 label L3723 label L3721 load 44 method -strref 45 m13s487 +strref 45 m13s489 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 brif 46 L3725 L3726 @@ -59863,7 +59953,7 @@ ret 51 label L3726 label L3724 load 52 method -strref 53 m13s511 +strref 53 m13s513 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 brif 54 L3728 L3729 @@ -59876,7 +59966,7 @@ ret 59 label L3729 label L3727 load 60 method -strref 61 m13s485 +strref 61 m13s487 call 62 pith_cstring_eq bool 2 60 61 call 63 pith_cstring_release void 1 61 brif 62 L3731 L3732 @@ -59891,7 +59981,7 @@ ret 69 label L3732 label L3730 load 70 method -strref 71 m13s491 +strref 71 m13s493 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 brif 72 L3734 L3735 @@ -59902,8 +59992,8 @@ iconst 76 2 neq 77 75 76 brif 77 L3737 L3738 label L3737 -strref 78 m13s307 -strref 79 m13s510 +strref 78 m13s309 +strref 79 m13s512 load 80 args call 81 pith_list_len int 1 80 call 82 int_to_string string 1 81 @@ -59934,7 +60024,7 @@ ret 102 label L3735 label L3733 load 103 method -strref 104 m13s486 +strref 104 m13s488 call 105 pith_cstring_eq bool 2 103 104 call 106 pith_cstring_release void 1 104 brif 105 L3740 L3741 @@ -59949,7 +60039,7 @@ ret 112 label L3741 label L3739 load 113 method -strref 114 m13s509 +strref 114 m13s511 call 115 pith_cstring_eq bool 2 113 114 call 116 pith_cstring_release void 1 114 brif 115 L3743 L3744 @@ -59976,14 +60066,14 @@ label L3749 load 130 __and_122_3748 brif 130 L3746 L3747 label L3746 -strref 131 m13s304 -strref 132 m13s508 +strref 131 m13s306 +strref 132 m13s510 load 133 elem call 134 types_get_type_name string 1 133 concat 135 132 134 call 136 pith_cstring_release void 1 132 call 137 pith_cstring_release void 1 134 -strref 138 m13s507 +strref 138 m13s509 concat 139 135 138 call 140 pith_cstring_release void 1 135 call 141 pith_cstring_release void 1 138 @@ -59998,7 +60088,7 @@ ret 145 label L3744 label L3742 load 146 method -strref 147 m13s506 +strref 147 m13s508 call 148 pith_cstring_eq bool 2 146 147 call 149 pith_cstring_release void 1 147 brif 148 L3751 L3752 @@ -60016,7 +60106,7 @@ ret 157 label L3752 label L3750 load 159 method -strref 160 m13s505 +strref 160 m13s507 call 161 pith_cstring_eq bool 2 159 160 call 162 pith_cstring_release void 1 160 brif 161 L3754 L3755 @@ -60031,7 +60121,7 @@ ret 168 label L3755 label L3753 load 169 method -strref 170 m13s504 +strref 170 m13s506 call 171 pith_cstring_eq bool 2 169 170 call 172 pith_cstring_release void 1 170 brif 171 L3757 L3758 @@ -60058,7 +60148,7 @@ ret 185 label L3761 label L3759 load 186 method -strref 187 m13s503 +strref 187 m13s505 call 188 pith_cstring_eq bool 2 186 187 call 189 pith_cstring_release void 1 187 brif 188 L3763 L3764 @@ -60071,7 +60161,7 @@ ret 193 label L3764 label L3762 load 194 method -strref 195 m13s502 +strref 195 m13s504 call 196 pith_cstring_eq bool 2 194 195 call 197 pith_cstring_release void 1 195 brif 196 L3766 L3767 @@ -60084,7 +60174,7 @@ ret 201 label L3767 label L3765 load 202 method -strref 203 m13s497 +strref 203 m13s499 call 204 pith_cstring_eq bool 2 202 203 call 205 pith_cstring_release void 1 203 brif 204 L3769 L3770 @@ -60102,7 +60192,7 @@ ret 213 label L3770 label L3768 load 215 method -strref 216 m13s501 +strref 216 m13s503 call 217 pith_cstring_eq bool 2 215 216 call 218 pith_cstring_release void 1 216 brif 217 L3772 L3773 @@ -60118,7 +60208,7 @@ ret 224 label L3773 label L3771 load 226 method -strref 227 m13s500 +strref 227 m13s502 call 228 pith_cstring_eq bool 2 226 227 call 229 pith_cstring_release void 1 227 brif 228 L3775 L3776 @@ -60164,7 +60254,7 @@ call 15 types_lookup_type_id int 1 14 call 16 pith_cstring_release void 1 14 store tid_bool 15 load 17 method -strref 18 m13s491 +strref 18 m13s493 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L3778 L3779 @@ -60175,8 +60265,8 @@ iconst 23 2 neq 24 22 23 brif 24 L3781 L3782 label L3781 -strref 25 m13s307 -strref 26 m13s499 +strref 25 m13s309 +strref 26 m13s501 load 27 args call 28 pith_list_len int 1 27 call 29 int_to_string string 1 28 @@ -60207,7 +60297,7 @@ ret 49 label L3779 label L3777 load 50 method -strref 51 m13s454 +strref 51 m13s456 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 brif 52 L3784 L3785 @@ -60220,7 +60310,7 @@ ret 57 label L3785 label L3783 load 58 method -strref 59 m13s488 +strref 59 m13s490 call 60 pith_cstring_eq bool 2 58 59 call 61 pith_cstring_release void 1 59 brif 60 L3787 L3788 @@ -60233,7 +60323,7 @@ ret 65 label L3788 label L3786 load 66 method -strref 67 m13s487 +strref 67 m13s489 call 68 pith_cstring_eq bool 2 66 67 call 69 pith_cstring_release void 1 67 brif 68 L3790 L3791 @@ -60246,7 +60336,7 @@ ret 73 label L3791 label L3789 load 74 method -strref 75 m13s498 +strref 75 m13s500 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 brif 76 L3793 L3794 @@ -60261,7 +60351,7 @@ ret 83 label L3794 label L3792 load 84 method -strref 85 m13s497 +strref 85 m13s499 call 86 pith_cstring_eq bool 2 84 85 call 87 pith_cstring_release void 1 85 brif 86 L3796 L3797 @@ -60279,7 +60369,7 @@ ret 95 label L3797 label L3795 load 97 method -strref 98 m13s496 +strref 98 m13s498 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 brif 99 L3799 L3800 @@ -60290,8 +60380,8 @@ iconst 103 2 neq 104 102 103 brif 104 L3802 L3803 label L3802 -strref 105 m13s307 -strref 106 m13s495 +strref 105 m13s309 +strref 106 m13s497 load 107 args call 108 pith_list_len int 1 107 call 109 int_to_string string 1 108 @@ -60322,7 +60412,7 @@ ret 129 label L3800 label L3798 load 130 method -strref 131 m13s485 +strref 131 m13s487 call 132 pith_cstring_eq bool 2 130 131 call 133 pith_cstring_release void 1 131 brif 132 L3805 L3806 @@ -60337,7 +60427,7 @@ ret 139 label L3806 label L3804 load 140 method -strref 141 m13s494 +strref 141 m13s496 call 142 pith_cstring_eq bool 2 140 141 call 143 pith_cstring_release void 1 141 brif 142 L3808 L3809 @@ -60352,7 +60442,7 @@ ret 149 label L3809 label L3807 load 150 method -strref 151 m13s493 +strref 151 m13s495 call 152 pith_cstring_eq bool 2 150 151 call 153 pith_cstring_release void 1 151 brif 152 L3811 L3812 @@ -60366,7 +60456,7 @@ ret 158 label L3812 label L3810 load 159 method -strref 160 m13s492 +strref 160 m13s494 call 161 pith_cstring_eq bool 2 159 160 call 162 pith_cstring_release void 1 160 brif 161 L3814 L3815 @@ -60395,14 +60485,14 @@ load 4 info field 5 4 64 int inner store elem 5 load 6 method -strref 7 m13s491 +strref 7 m13s493 call 8 pith_cstring_eq bool 2 6 7 call 9 pith_cstring_release void 1 7 brif 8 L3817 L3818 label L3817 -strref 10 m13s429 -strref 11 m13s490 -strref 12 m13s489 +strref 10 m13s431 +strref 11 m13s492 +strref 12 m13s491 call 13 checker_diagnostics_report_error_with_fix void 3 10 11 12 call 14 pith_cstring_release void 1 10 call 15 pith_cstring_release void 1 11 @@ -60412,7 +60502,7 @@ ret 17 label L3818 label L3816 load 18 method -strref 19 m13s480 +strref 19 m13s482 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L3820 L3821 @@ -60427,7 +60517,7 @@ ret 27 label L3821 label L3819 load 28 method -strref 29 m13s454 +strref 29 m13s456 call 30 pith_cstring_eq bool 2 28 29 call 31 pith_cstring_release void 1 29 brif 30 L3823 L3824 @@ -60440,7 +60530,7 @@ ret 35 label L3824 label L3822 load 36 method -strref 37 m13s488 +strref 37 m13s490 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 brif 38 L3826 L3827 @@ -60453,7 +60543,7 @@ ret 43 label L3827 label L3825 load 44 method -strref 45 m13s487 +strref 45 m13s489 call 46 pith_cstring_eq bool 2 44 45 call 47 pith_cstring_release void 1 45 brif 46 L3829 L3830 @@ -60466,7 +60556,7 @@ ret 51 label L3830 label L3828 load 52 method -strref 53 m13s486 +strref 53 m13s488 call 54 pith_cstring_eq bool 2 52 53 call 55 pith_cstring_release void 1 53 brif 54 L3832 L3833 @@ -60481,7 +60571,7 @@ ret 61 label L3833 label L3831 load 62 method -strref 63 m13s485 +strref 63 m13s487 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 brif 64 L3835 L3836 @@ -60520,18 +60610,18 @@ call 11 types_lookup_type_id int 1 10 call 12 pith_cstring_release void 1 10 store tid_err 11 load 13 type_name -strref 14 m13s279 +strref 14 m13s281 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 brif 15 L3838 L3839 label L3838 load 17 method -strref 18 m13s484 +strref 18 m13s486 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L3841 L3842 label L3841 -strref 21 m13s483 +strref 21 m13s485 load 22 args call 23 checker_expect_no_arguments void 2 21 22 call 24 pith_cstring_release void 1 21 @@ -60540,12 +60630,12 @@ ret 25 label L3842 label L3840 load 26 method -strref 27 m13s482 +strref 27 m13s484 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L3844 L3845 label L3844 -strref 30 m13s481 +strref 30 m13s483 load 31 args call 32 checker_expect_no_arguments void 2 30 31 call 33 pith_cstring_release void 1 30 @@ -60557,18 +60647,18 @@ jmp L3837 label L3839 label L3837 load 35 type_name -strref 36 m13s278 +strref 36 m13s280 call 37 pith_cstring_eq bool 2 35 36 call 38 pith_cstring_release void 1 36 brif 37 L3847 L3848 label L3847 load 39 method -strref 40 m13s480 +strref 40 m13s482 call 41 pith_cstring_eq bool 2 39 40 call 42 pith_cstring_release void 1 40 brif 41 L3850 L3851 label L3850 -strref 43 m13s479 +strref 43 m13s481 load 44 args load 45 tid_int load 46 scope_id @@ -60579,12 +60669,12 @@ ret 49 label L3851 label L3849 load 50 method -strref 51 m13s478 +strref 51 m13s480 call 52 pith_cstring_eq bool 2 50 51 call 53 pith_cstring_release void 1 51 brif 52 L3853 L3854 label L3853 -strref 54 m13s477 +strref 54 m13s479 load 55 args call 56 checker_expect_no_arguments void 2 54 55 call 57 pith_cstring_release void 1 54 @@ -60593,12 +60683,12 @@ ret 58 label L3854 label L3852 load 59 method -strref 60 m13s476 +strref 60 m13s478 call 61 pith_cstring_eq bool 2 59 60 call 62 pith_cstring_release void 1 60 brif 61 L3856 L3857 label L3856 -strref 63 m13s475 +strref 63 m13s477 load 64 args call 65 checker_expect_no_arguments void 2 63 64 call 66 pith_cstring_release void 1 63 @@ -60610,18 +60700,18 @@ jmp L3846 label L3848 label L3846 load 68 type_name -strref 69 m13s277 +strref 69 m13s279 call 70 pith_cstring_eq bool 2 68 69 call 71 pith_cstring_release void 1 69 brif 70 L3859 L3860 label L3859 load 72 method -strref 73 m13s474 +strref 73 m13s476 call 74 pith_cstring_eq bool 2 72 73 call 75 pith_cstring_release void 1 73 brif 74 L3862 L3863 label L3862 -strref 76 m13s473 +strref 76 m13s475 load 77 args call 78 checker_expect_no_arguments void 2 76 77 call 79 pith_cstring_release void 1 76 @@ -60630,12 +60720,12 @@ ret 80 label L3863 label L3861 load 81 method -strref 82 m13s472 +strref 82 m13s474 call 83 pith_cstring_eq bool 2 81 82 call 84 pith_cstring_release void 1 82 brif 83 L3865 L3866 label L3865 -strref 85 m13s471 +strref 85 m13s473 load 86 args call 87 checker_expect_no_arguments void 2 85 86 call 88 pith_cstring_release void 1 85 @@ -60647,7 +60737,7 @@ jmp L3858 label L3860 label L3858 load 90 type_name -strref 91 m13s276 +strref 91 m13s278 call 92 pith_cstring_eq bool 2 90 91 call 93 pith_cstring_release void 1 91 brif 92 L3868 L3869 @@ -60657,12 +60747,12 @@ call 95 types_lookup_type_id int 1 94 call 96 pith_cstring_release void 1 94 store tid_bool 95 load 97 method -strref 98 m13s470 +strref 98 m13s472 call 99 pith_cstring_eq bool 2 97 98 call 100 pith_cstring_release void 1 98 brif 99 L3871 L3872 label L3871 -strref 101 m13s469 +strref 101 m13s471 load 102 args call 103 checker_expect_no_arguments void 2 101 102 call 104 pith_cstring_release void 1 101 @@ -60671,12 +60761,12 @@ ret 105 label L3872 label L3870 load 106 method -strref 107 m13s468 +strref 107 m13s470 call 108 pith_cstring_eq bool 2 106 107 call 109 pith_cstring_release void 1 107 brif 108 L3874 L3875 label L3874 -strref 110 m13s467 +strref 110 m13s469 load 111 args load 112 tid_int load 113 scope_id @@ -60687,12 +60777,12 @@ ret 116 label L3875 label L3873 load 117 method -strref 118 m13s466 +strref 118 m13s468 call 119 pith_cstring_eq bool 2 117 118 call 120 pith_cstring_release void 1 118 brif 119 L3877 L3878 label L3877 -strref 121 m13s465 +strref 121 m13s467 load 122 args load 123 tid_int load 124 tid_int @@ -60732,12 +60822,12 @@ load 13 info field 14 13 64 int inner store inner 14 load 15 method -strref 16 m13s381 +strref 16 m13s383 call 17 pith_cstring_eq bool 2 15 16 call 18 pith_cstring_release void 1 16 brif 17 L3880 L3881 label L3880 -strref 19 m13s464 +strref 19 m13s466 load 20 args load 21 inner load 22 scope_id @@ -60748,12 +60838,12 @@ ret 25 label L3881 label L3879 load 26 method -strref 27 m13s385 +strref 27 m13s387 call 28 pith_cstring_eq bool 2 26 27 call 29 pith_cstring_release void 1 27 brif 28 L3883 L3884 label L3883 -strref 30 m13s463 +strref 30 m13s465 load 31 args call 32 checker_expect_no_arguments void 2 30 31 call 33 pith_cstring_release void 1 30 @@ -60765,12 +60855,12 @@ ret 36 label L3884 label L3882 load 38 method -strref 39 m13s462 +strref 39 m13s464 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 brif 40 L3886 L3887 label L3886 -strref 42 m13s461 +strref 42 m13s463 load 43 args load 44 inner load 45 scope_id @@ -60781,12 +60871,12 @@ ret 48 label L3887 label L3885 load 49 method -strref 50 m13s460 +strref 50 m13s462 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 brif 51 L3889 L3890 label L3889 -strref 53 m13s459 +strref 53 m13s461 load 54 args call 55 checker_expect_no_arguments void 2 53 54 call 56 pith_cstring_release void 1 53 @@ -60798,12 +60888,12 @@ ret 59 label L3890 label L3888 load 61 method -strref 62 m13s458 +strref 62 m13s460 call 63 pith_cstring_eq bool 2 61 62 call 64 pith_cstring_release void 1 62 brif 63 L3892 L3893 label L3892 -strref 65 m13s457 +strref 65 m13s459 load 66 args call 67 checker_expect_no_arguments void 2 65 66 call 68 pith_cstring_release void 1 65 @@ -60812,12 +60902,12 @@ ret 69 label L3893 label L3891 load 70 method -strref 71 m13s456 +strref 71 m13s458 call 72 pith_cstring_eq bool 2 70 71 call 73 pith_cstring_release void 1 71 brif 72 L3895 L3896 label L3895 -strref 74 m13s455 +strref 74 m13s457 load 75 args call 76 checker_expect_no_arguments void 2 74 75 call 77 pith_cstring_release void 1 74 @@ -60826,12 +60916,12 @@ ret 78 label L3896 label L3894 load 79 method -strref 80 m13s454 +strref 80 m13s456 call 81 pith_cstring_eq bool 2 79 80 call 82 pith_cstring_release void 1 80 brif 81 L3898 L3899 label L3898 -strref 83 m13s453 +strref 83 m13s455 load 84 args call 85 checker_expect_no_arguments void 2 83 84 call 86 pith_cstring_release void 1 83 @@ -60840,12 +60930,12 @@ ret 87 label L3899 label L3897 load 88 method -strref 89 m13s452 +strref 89 m13s454 call 90 pith_cstring_eq bool 2 88 89 call 91 pith_cstring_release void 1 89 brif 90 L3901 L3902 label L3901 -strref 92 m13s451 +strref 92 m13s453 load 93 args call 94 checker_expect_no_arguments void 2 92 93 call 95 pith_cstring_release void 1 92 @@ -60876,12 +60966,12 @@ call 11 types_lookup_type_id int 1 10 call 12 pith_cstring_release void 1 10 store tid_err 11 load 13 method -strref 14 m13s450 +strref 14 m13s452 call 15 pith_cstring_eq bool 2 13 14 call 16 pith_cstring_release void 1 14 brif 15 L3904 L3905 label L3904 -strref 17 m13s449 +strref 17 m13s451 load 18 args call 19 checker_expect_no_arguments void 2 17 18 call 20 pith_cstring_release void 1 17 @@ -60890,12 +60980,12 @@ ret 21 label L3905 label L3903 load 22 method -strref 23 m13s448 +strref 23 m13s450 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 brif 24 L3907 L3908 label L3907 -strref 26 m13s447 +strref 26 m13s449 load 27 args call 28 checker_expect_no_arguments void 2 26 27 call 29 pith_cstring_release void 1 26 @@ -60917,9 +61007,9 @@ iconst 4 0 neq 5 3 4 brif 5 L3910 L3911 label L3910 -strref 6 m13s307 +strref 6 m13s309 load 7 method -strref 8 m13s446 +strref 8 m13s448 concat 9 7 8 call 10 pith_cstring_release void 1 8 load 11 args @@ -60951,9 +61041,9 @@ iconst 8 1 neq 9 7 8 brif 9 L3913 L3914 label L3913 -strref 10 m13s307 +strref 10 m13s309 load 11 method -strref 12 m13s445 +strref 12 m13s447 concat 13 11 12 call 14 pith_cstring_release void 1 12 load 15 args @@ -60992,9 +61082,9 @@ iconst 8 2 neq 9 7 8 brif 9 L3916 L3917 label L3916 -strref 10 m13s307 +strref 10 m13s309 load 11 method -strref 12 m13s444 +strref 12 m13s446 concat 13 11 12 call 14 pith_cstring_release void 1 12 load 15 args @@ -61039,9 +61129,9 @@ iconst 8 2 neq 9 7 8 brif 9 L3919 L3920 label L3919 -strref 10 m13s307 +strref 10 m13s309 load 11 method -strref 12 m13s444 +strref 12 m13s446 concat 13 11 12 call 14 pith_cstring_release void 1 12 load 15 args @@ -61090,9 +61180,9 @@ iconst 11 2 neq 12 10 11 brif 12 L3922 L3923 label L3922 -strref 13 m13s307 +strref 13 m13s309 load 14 method -strref 15 m13s444 +strref 15 m13s446 concat 16 14 15 call 17 pith_cstring_release void 1 15 load 18 args @@ -61134,9 +61224,9 @@ iconst 6 1 neq 7 5 6 brif 7 L3925 L3926 label L3925 -strref 8 m13s307 +strref 8 m13s309 load 9 method -strref 10 m13s445 +strref 10 m13s447 concat 11 9 10 call 12 pith_cstring_release void 1 10 load 13 args @@ -61173,9 +61263,9 @@ iconst 7 2 neq 8 6 7 brif 8 L3928 L3929 label L3928 -strref 9 m13s307 +strref 9 m13s309 load 10 method -strref 11 m13s444 +strref 11 m13s446 concat 12 10 11 call 13 pith_cstring_release void 1 11 load 14 args @@ -61233,14 +61323,14 @@ iconst 17 0 eq 18 16 17 brif 18 L3937 L3938 label L3937 -strref 19 m13s304 -strref 20 m13s443 +strref 19 m13s306 +strref 20 m13s445 load 21 expected call 22 types_get_type_name string 1 21 concat 23 20 22 call 24 pith_cstring_release void 1 20 call 25 pith_cstring_release void 1 22 -strref 26 m13s301 +strref 26 m13s303 concat 27 23 26 call 28 pith_cstring_release void 1 23 call 29 pith_cstring_release void 1 26 @@ -61324,7 +61414,7 @@ call 41 pith_struct_release void 1 38 store obj_node 40 load 42 obj_node field 43 42 0 string kind -strref 44 m13s293 +strref 44 m13s295 call 45 pith_cstring_eq bool 2 43 44 call 46 pith_cstring_release void 1 44 brif 45 L3943 L3944 @@ -61366,19 +61456,19 @@ iconst 75 1 sub 74 75 73 brif 74 L3949 L3950 label L3949 -strref 76 m13s442 -strref 77 m13s349 +strref 76 m13s444 +strref 77 m13s351 load 78 field_name concat 79 77 78 call 80 pith_cstring_release void 1 77 -strref 81 m13s441 +strref 81 m13s443 concat 82 79 81 call 83 pith_cstring_release void 1 79 call 84 pith_cstring_release void 1 81 load 85 obj_name concat 86 82 85 call 87 pith_cstring_release void 1 82 -strref 88 m13s349 +strref 88 m13s351 concat 89 86 88 call 90 pith_cstring_release void 1 86 call 91 pith_cstring_release void 1 88 @@ -61486,19 +61576,19 @@ call 174 pith_struct_release void 1 173 ret 160 label L3959 label L3957 -strref 175 m13s429 -strref 176 m13s440 +strref 175 m13s431 +strref 176 m13s442 load 177 obj_name concat 178 176 177 call 179 pith_cstring_release void 1 176 -strref 180 m13s439 +strref 180 m13s441 concat 181 178 180 call 182 pith_cstring_release void 1 178 call 183 pith_cstring_release void 1 180 load 184 field_name concat 185 181 184 call 186 pith_cstring_release void 1 181 -strref 187 m13s349 +strref 187 m13s351 concat 188 185 187 call 189 pith_cstring_release void 1 185 call 190 pith_cstring_release void 1 187 @@ -61634,17 +61724,17 @@ add 290 288 289 store fidx 290 jmp L3966 label L3968 -strref 291 m13s429 +strref 291 m13s431 load 292 obj_type call 293 types_get_type_name string 1 292 -strref 294 m13s428 +strref 294 m13s430 concat 295 293 294 call 296 pith_cstring_release void 1 293 call 297 pith_cstring_release void 1 294 load 298 field_name concat 299 295 298 call 300 pith_cstring_release void 1 295 -strref 301 m13s349 +strref 301 m13s351 concat 302 299 301 call 303 pith_cstring_release void 1 299 call 304 pith_cstring_release void 1 301 @@ -61684,8 +61774,8 @@ iconst 331 0 lt 332 330 331 brif 332 L3979 L3980 label L3979 -strref 333 m13s429 -strref 334 m13s438 +strref 333 m13s431 +strref 334 m13s440 call 335 checker_diagnostics_report_error void 2 333 334 call 336 pith_cstring_release void 1 333 call 337 pith_cstring_release void 1 334 @@ -61714,12 +61804,12 @@ call 356 pith_list_len int 1 355 gte 357 353 356 brif 357 L3982 L3983 label L3982 -strref 358 m13s429 -strref 359 m13s437 +strref 358 m13s431 +strref 359 m13s439 load 360 field_name concat 361 359 360 call 362 pith_cstring_release void 1 359 -strref 363 m13s436 +strref 363 m13s438 concat 364 361 363 call 365 pith_cstring_release void 1 361 call 366 pith_cstring_release void 1 363 @@ -61730,7 +61820,7 @@ call 370 int_to_string string 1 369 concat 371 364 370 call 372 pith_cstring_release void 1 364 call 373 pith_cstring_release void 1 370 -strref 374 m13s435 +strref 374 m13s437 concat 375 371 374 call 376 pith_cstring_release void 1 371 call 377 pith_cstring_release void 1 374 @@ -61790,14 +61880,14 @@ store tid_bool 420 iconst 422 0 store __or_422_3990 422 load 423 field_name -strref 424 m13s434 +strref 424 m13s436 call 425 checker_strings_equal bool 2 423 424 call 426 pith_cstring_release void 1 424 store __or_422_3990 425 brif 425 L3991 L3990 label L3990 load 427 field_name -strref 428 m13s433 +strref 428 m13s435 call 429 checker_strings_equal bool 2 427 428 call 430 pith_cstring_release void 1 428 store __or_422_3990 429 @@ -61824,7 +61914,7 @@ ret 432 label L3989 label L3987 load 447 field_name -strref 448 m13s432 +strref 448 m13s434 call 449 checker_strings_equal bool 2 447 448 call 450 pith_cstring_release void 1 448 brif 449 L3993 L3994 @@ -61849,7 +61939,7 @@ ret 452 label L3994 label L3992 load 467 field_name -strref 468 m13s431 +strref 468 m13s433 call 469 checker_strings_equal bool 2 467 468 call 470 pith_cstring_release void 1 468 brif 469 L3996 L3997 @@ -61873,12 +61963,12 @@ call 486 pith_struct_release void 1 485 ret 472 label L3997 label L3995 -strref 487 m13s429 -strref 488 m13s430 +strref 487 m13s431 +strref 488 m13s432 load 489 field_name concat 490 488 489 call 491 pith_cstring_release void 1 488 -strref 492 m13s349 +strref 492 m13s351 concat 493 490 492 call 494 pith_cstring_release void 1 490 call 495 pith_cstring_release void 1 492 @@ -61928,17 +62018,17 @@ call 533 pith_struct_release void 1 532 ret 519 label L4000 label L3998 -strref 534 m13s429 +strref 534 m13s431 load 535 obj_type call 536 types_get_type_name string 1 535 -strref 537 m13s428 +strref 537 m13s430 concat 538 536 537 call 539 pith_cstring_release void 1 536 call 540 pith_cstring_release void 1 537 load 541 field_name concat 542 538 541 call 543 pith_cstring_release void 1 538 -strref 544 m13s349 +strref 544 m13s351 concat 545 542 544 call 546 pith_cstring_release void 1 542 call 547 pith_cstring_release void 1 544 @@ -62014,7 +62104,7 @@ call 20 pith_cstring_char_at_strict string 2 18 19 call 21 pith_cstring_release void 1 17 store ch 20 load 22 ch -strref 23 m13s427 +strref 23 m13s429 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 brif 24 L4008 L4009 @@ -62026,7 +62116,7 @@ store result 28 jmp L4007 label L4009 load 29 ch -strref 30 m13s426 +strref 30 m13s428 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 brif 31 L4010 L4011 @@ -62040,7 +62130,7 @@ store result 37 jmp L4007 label L4011 load 38 ch -strref 39 m13s425 +strref 39 m13s427 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 brif 40 L4012 L4013 @@ -62054,7 +62144,7 @@ store result 46 jmp L4007 label L4013 load 47 ch -strref 48 m13s424 +strref 48 m13s426 call 49 pith_cstring_eq bool 2 47 48 call 50 pith_cstring_release void 1 48 brif 49 L4014 L4015 @@ -62068,7 +62158,7 @@ store result 55 jmp L4007 label L4015 load 56 ch -strref 57 m13s423 +strref 57 m13s425 call 58 pith_cstring_eq bool 2 56 57 call 59 pith_cstring_release void 1 57 brif 58 L4016 L4017 @@ -62082,7 +62172,7 @@ store result 64 jmp L4007 label L4017 load 65 ch -strref 66 m13s422 +strref 66 m13s424 call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 66 brif 67 L4018 L4019 @@ -62096,7 +62186,7 @@ store result 73 jmp L4007 label L4019 load 74 ch -strref 75 m13s421 +strref 75 m13s423 call 76 pith_cstring_eq bool 2 74 75 call 77 pith_cstring_release void 1 75 brif 76 L4020 L4021 @@ -62110,7 +62200,7 @@ store result 82 jmp L4007 label L4021 load 83 ch -strref 84 m13s420 +strref 84 m13s422 call 85 pith_cstring_eq bool 2 83 84 call 86 pith_cstring_release void 1 84 brif 85 L4022 L4023 @@ -62124,7 +62214,7 @@ store result 91 jmp L4007 label L4023 load 92 ch -strref 93 m13s419 +strref 93 m13s421 call 94 pith_cstring_eq bool 2 92 93 call 95 pith_cstring_release void 1 93 brif 94 L4024 L4025 @@ -62138,7 +62228,7 @@ store result 100 jmp L4007 label L4025 load 101 ch -strref 102 m13s418 +strref 102 m13s420 call 103 pith_cstring_eq bool 2 101 102 call 104 pith_cstring_release void 1 102 brif 103 L4026 L4027 @@ -62288,8 +62378,8 @@ iconst 73 0 eq 74 72 73 brif 74 L4046 L4047 label L4046 -strref 75 m13s413 -strref 76 m13s417 +strref 75 m13s415 +strref 76 m13s419 load 77 idx_type call 78 types_get_type_name string 1 77 concat 79 76 78 @@ -62321,8 +62411,8 @@ iconst 96 0 eq 97 95 96 brif 97 L4052 L4053 label L4052 -strref 98 m13s413 -strref 99 m13s416 +strref 98 m13s415 +strref 99 m13s418 load 100 idx_type call 101 types_get_type_name string 1 100 concat 102 99 101 @@ -62356,8 +62446,8 @@ iconst 121 0 eq 122 120 121 brif 122 L4058 L4059 label L4058 -strref 123 m13s413 -strref 124 m13s415 +strref 123 m13s415 +strref 124 m13s417 load 125 idx_type call 126 types_get_type_name string 1 125 concat 127 124 126 @@ -62392,15 +62482,15 @@ field 147 146 72 int key_type neq 148 145 147 brif 148 L4064 L4065 label L4064 -strref 149 m13s413 -strref 150 m13s414 +strref 149 m13s415 +strref 150 m13s416 load 151 obj_info field 152 151 72 int key_type call 153 types_get_type_name string 1 152 concat 154 150 153 call 155 pith_cstring_release void 1 150 call 156 pith_cstring_release void 1 153 -strref 157 m13s301 +strref 157 m13s303 concat 158 154 157 call 159 pith_cstring_release void 1 154 call 160 pith_cstring_release void 1 157 @@ -62425,10 +62515,10 @@ call 175 pith_struct_release void 1 174 ret 173 label L4062 label L4060 -strref 176 m13s413 +strref 176 m13s415 load 177 obj_type call 178 types_get_type_name string 1 177 -strref 179 m13s412 +strref 179 m13s414 concat 180 178 179 call 181 pith_cstring_release void 1 178 call 182 pith_cstring_release void 1 179 @@ -62517,9 +62607,9 @@ iconst 46 0 lt 47 45 46 brif 47 L4079 L4080 label L4079 -strref 48 m13s411 -strref 49 m13s410 -strref 50 m13s409 +strref 48 m13s413 +strref 49 m13s412 +strref 50 m13s411 call 51 checker_diagnostics_report_error_with_fix void 3 48 49 50 call 52 pith_cstring_release void 1 48 call 53 pith_cstring_release void 1 49 @@ -62546,9 +62636,9 @@ sub 67 69 68 call 70 pith_cstring_release void 1 66 brif 67 L4082 L4083 label L4082 -strref 71 m13s411 -strref 72 m13s410 -strref 73 m13s409 +strref 71 m13s413 +strref 72 m13s412 +strref 73 m13s411 call 74 checker_diagnostics_report_error_with_fix void 3 71 72 73 call 75 pith_cstring_release void 1 71 call 76 pith_cstring_release void 1 72 @@ -62577,28 +62667,28 @@ call 92 pith_cstring_eq bool 2 90 91 call 93 pith_cstring_release void 1 91 brif 92 L4085 L4086 label L4085 -strref 94 m13s398 -strref 95 m13s407 +strref 94 m13s400 +strref 95 m13s409 load 96 inner call 97 types_get_type_name string 1 96 concat 98 95 97 call 99 pith_cstring_release void 1 95 call 100 pith_cstring_release void 1 97 -strref 101 m13s408 +strref 101 m13s410 call 102 checker_diagnostics_report_error_with_fix void 3 94 98 101 call 103 pith_cstring_release void 1 94 call 104 pith_cstring_release void 1 98 call 105 pith_cstring_release void 1 101 jmp L4084 label L4086 -strref 106 m13s398 -strref 107 m13s407 +strref 106 m13s400 +strref 107 m13s409 load 108 inner call 109 types_get_type_name string 1 108 concat 110 107 109 call 111 pith_cstring_release void 1 107 call 112 pith_cstring_release void 1 109 -strref 113 m13s406 +strref 113 m13s408 call 114 checker_diagnostics_report_error_with_fix void 3 106 110 113 call 115 pith_cstring_release void 1 106 call 116 pith_cstring_release void 1 110 @@ -62690,8 +62780,8 @@ iconst 46 0 lt 47 45 46 brif 47 L4100 L4101 label L4100 -strref 48 m13s404 -strref 49 m13s405 +strref 48 m13s406 +strref 49 m13s407 call 50 checker_diagnostics_report_error void 2 48 49 call 51 pith_cstring_release void 1 48 call 52 pith_cstring_release void 1 49 @@ -62717,8 +62807,8 @@ sub 65 67 66 call 68 pith_cstring_release void 1 64 brif 65 L4103 L4104 label L4103 -strref 69 m13s404 -strref 70 m13s405 +strref 69 m13s406 +strref 70 m13s407 call 71 checker_diagnostics_report_error void 2 69 70 call 72 pith_cstring_release void 1 69 call 73 pith_cstring_release void 1 70 @@ -62739,15 +62829,15 @@ iconst 84 0 eq 85 83 84 brif 85 L4106 L4107 label L4106 -strref 86 m13s404 -strref 87 m13s403 +strref 86 m13s406 +strref 87 m13s405 load 88 info field 89 88 80 int value_type call 90 types_get_type_name string 1 89 concat 91 87 90 call 92 pith_cstring_release void 1 87 call 93 pith_cstring_release void 1 90 -strref 94 m13s402 +strref 94 m13s404 concat 95 91 94 call 96 pith_cstring_release void 1 91 call 97 pith_cstring_release void 1 94 @@ -62783,28 +62873,28 @@ call 120 pith_cstring_eq bool 2 118 119 call 121 pith_cstring_release void 1 119 brif 120 L4109 L4110 label L4109 -strref 122 m13s398 -strref 123 m13s400 +strref 122 m13s400 +strref 123 m13s402 load 124 inner call 125 types_get_type_name string 1 124 concat 126 123 125 call 127 pith_cstring_release void 1 123 call 128 pith_cstring_release void 1 125 -strref 129 m13s401 +strref 129 m13s403 call 130 checker_diagnostics_report_error_with_fix void 3 122 126 129 call 131 pith_cstring_release void 1 122 call 132 pith_cstring_release void 1 126 call 133 pith_cstring_release void 1 129 jmp L4108 label L4110 -strref 134 m13s398 -strref 135 m13s400 +strref 134 m13s400 +strref 135 m13s402 load 136 inner call 137 types_get_type_name string 1 136 concat 138 135 137 call 139 pith_cstring_release void 1 135 call 140 pith_cstring_release void 1 137 -strref 141 m13s399 +strref 141 m13s401 call 142 checker_diagnostics_report_error_with_fix void 3 134 138 141 call 143 pith_cstring_release void 1 134 call 144 pith_cstring_release void 1 138 @@ -62872,8 +62962,8 @@ sub 29 31 30 call 32 pith_cstring_release void 1 28 brif 29 L4118 L4119 label L4118 -strref 33 m13s398 -strref 34 m13s397 +strref 33 m13s400 +strref 34 m13s399 load 35 result_type call 36 types_get_type_name string 1 35 concat 37 34 36 @@ -62913,15 +63003,15 @@ iconst 61 0 eq 62 60 61 brif 62 L4124 L4125 label L4124 -strref 63 m13s304 -strref 64 m13s396 +strref 63 m13s306 +strref 64 m13s398 load 65 result_info field 66 65 64 int inner call 67 types_get_type_name string 1 66 concat 68 64 67 call 69 pith_cstring_release void 1 64 call 70 pith_cstring_release void 1 67 -strref 71 m13s301 +strref 71 m13s303 concat 72 68 71 call 73 pith_cstring_release void 1 68 call 74 pith_cstring_release void 1 71 @@ -62961,8 +63051,8 @@ iconst 6 0 eq 7 5 6 brif 7 L4127 L4128 label L4127 -strref 8 m13s289 -strref 9 m13s395 +strref 8 m13s291 +strref 9 m13s397 call 10 checker_diagnostics_report_error void 2 8 9 call 11 pith_cstring_release void 1 8 call 12 pith_cstring_release void 1 9 @@ -63006,7 +63096,7 @@ call 35 checker_check_select_arm int 2 33 34 store arm_type 35 load 36 arm_node field 37 36 0 string kind -strref 38 m13s388 +strref 38 m13s390 call 39 pith_cstring_eq bool 2 37 38 call 40 pith_cstring_release void 1 38 brif 39 L4134 L4135 @@ -63014,8 +63104,8 @@ label L4134 load 41 saw_default brif 41 L4137 L4138 label L4137 -strref 42 m13s289 -strref 43 m13s394 +strref 42 m13s291 +strref 43 m13s396 call 44 checker_diagnostics_report_error void 2 42 43 call 45 pith_cstring_release void 1 42 call 46 pith_cstring_release void 1 43 @@ -63028,7 +63118,7 @@ jmp L4133 label L4135 load 48 arm_node field 49 48 0 string kind -strref 50 m13s389 +strref 50 m13s391 call 51 pith_cstring_eq bool 2 49 50 call 52 pith_cstring_release void 1 50 brif 51 L4139 L4140 @@ -63036,8 +63126,8 @@ label L4139 load 53 saw_timeout brif 53 L4142 L4143 label L4142 -strref 54 m13s289 -strref 55 m13s393 +strref 54 m13s291 +strref 55 m13s395 call 56 checker_diagnostics_report_error void 2 54 55 call 57 pith_cstring_release void 1 54 call 58 pith_cstring_release void 1 55 @@ -63091,14 +63181,14 @@ label L4159 load 82 __and_75_4158 brif 82 L4156 L4157 label L4156 -strref 83 m13s371 -strref 84 m13s392 +strref 83 m13s373 +strref 84 m13s394 load 85 result_type call 86 types_get_type_name string 1 85 concat 87 84 86 call 88 pith_cstring_release void 1 84 call 89 pith_cstring_release void 1 86 -strref 90 m13s369 +strref 90 m13s371 concat 91 87 90 call 92 pith_cstring_release void 1 87 call 93 pith_cstring_release void 1 90 @@ -63143,7 +63233,7 @@ param arm param scope_id load 2 arm field 3 2 0 string kind -strref 4 m13s391 +strref 4 m13s393 call 5 pith_cstring_eq bool 2 3 4 call 6 pith_cstring_release void 1 4 brif 5 L4161 L4162 @@ -63156,7 +63246,7 @@ label L4162 label L4160 load 10 arm field 11 10 0 string kind -strref 12 m13s390 +strref 12 m13s392 call 13 pith_cstring_eq bool 2 11 12 call 14 pith_cstring_release void 1 12 brif 13 L4164 L4165 @@ -63169,7 +63259,7 @@ label L4165 label L4163 load 18 arm field 19 18 0 string kind -strref 20 m13s389 +strref 20 m13s391 call 21 pith_cstring_eq bool 2 19 20 call 22 pith_cstring_release void 1 20 brif 21 L4167 L4168 @@ -63182,7 +63272,7 @@ label L4168 label L4166 load 26 arm field 27 26 0 string kind -strref 28 m13s388 +strref 28 m13s390 call 29 pith_cstring_eq bool 2 27 28 call 30 pith_cstring_release void 1 28 brif 29 L4170 L4171 @@ -63194,8 +63284,8 @@ call 34 checker_check_select_arm_body int 3 31 32 33 ret 34 label L4171 label L4169 -strref 35 m13s289 -strref 36 m13s387 +strref 35 m13s291 +strref 36 m13s389 call 37 checker_diagnostics_report_error void 2 35 36 call 38 pith_cstring_release void 1 35 call 39 pith_cstring_release void 1 36 @@ -63216,8 +63306,8 @@ iconst 6 2 lt 7 5 6 brif 7 L4173 L4174 label L4173 -strref 8 m13s289 -strref 9 m13s386 +strref 8 m13s291 +strref 9 m13s388 call 10 checker_diagnostics_report_error void 2 8 9 call 11 pith_cstring_release void 1 8 call 12 pith_cstring_release void 1 9 @@ -63239,7 +63329,7 @@ iconst 23 0 store __or_23_4178 23 load 24 recv_node field 25 24 0 string kind -strref 26 m13s382 +strref 26 m13s384 call 28 pith_cstring_eq bool 2 25 26 iconst 29 1 sub 27 29 28 @@ -63249,7 +63339,7 @@ brif 27 L4179 L4178 label L4178 load 31 recv_node field 32 31 8 string value -strref 33 m13s385 +strref 33 m13s387 call 35 pith_cstring_eq bool 2 32 33 iconst 36 1 sub 34 36 35 @@ -63259,8 +63349,8 @@ label L4179 load 38 __or_23_4178 brif 38 L4176 L4177 label L4176 -strref 39 m13s289 -strref 40 m13s384 +strref 39 m13s291 +strref 40 m13s386 call 41 checker_diagnostics_report_error void 2 39 40 call 42 pith_cstring_release void 1 39 call 43 pith_cstring_release void 1 40 @@ -63320,8 +63410,8 @@ iconst 6 2 lt 7 5 6 brif 7 L4184 L4185 label L4184 -strref 8 m13s289 -strref 9 m13s383 +strref 8 m13s291 +strref 9 m13s385 call 10 checker_diagnostics_report_error void 2 8 9 call 11 pith_cstring_release void 1 8 call 12 pith_cstring_release void 1 9 @@ -63343,7 +63433,7 @@ iconst 23 0 store __or_23_4189 23 load 24 send_node field 25 24 0 string kind -strref 26 m13s382 +strref 26 m13s384 call 28 pith_cstring_eq bool 2 25 26 iconst 29 1 sub 27 29 28 @@ -63353,7 +63443,7 @@ brif 27 L4190 L4189 label L4189 load 31 send_node field 32 31 8 string value -strref 33 m13s381 +strref 33 m13s383 call 35 pith_cstring_eq bool 2 32 33 iconst 36 1 sub 34 36 35 @@ -63363,8 +63453,8 @@ label L4190 load 38 __or_23_4189 brif 38 L4187 L4188 label L4187 -strref 39 m13s289 -strref 40 m13s380 +strref 39 m13s291 +strref 40 m13s382 call 41 checker_diagnostics_report_error void 2 39 40 call 42 pith_cstring_release void 1 39 call 43 pith_cstring_release void 1 40 @@ -63396,8 +63486,8 @@ load 59 types_TID_BOOL neq 60 58 59 brif 60 L4195 L4196 label L4195 -strref 61 m13s289 -strref 62 m13s379 +strref 61 m13s291 +strref 62 m13s381 call 63 checker_diagnostics_report_error void 2 61 62 call 64 pith_cstring_release void 1 61 call 65 pith_cstring_release void 1 62 @@ -63429,8 +63519,8 @@ iconst 5 2 lt 6 4 5 brif 6 L4198 L4199 label L4198 -strref 7 m13s289 -strref 8 m13s378 +strref 7 m13s291 +strref 8 m13s380 call 9 checker_diagnostics_report_error void 2 7 8 call 10 pith_cstring_release void 1 7 call 11 pith_cstring_release void 1 8 @@ -63456,8 +63546,8 @@ load 24 types_TID_INT neq 25 23 24 brif 25 L4204 L4205 label L4204 -strref 26 m13s304 -strref 27 m13s377 +strref 26 m13s306 +strref 27 m13s379 load 28 timeout_type call 29 types_get_type_name string 1 28 concat 30 27 29 @@ -63509,7 +63599,7 @@ call 18 pith_struct_release void 1 12 store body_node 17 load 19 body_node field 20 19 0 string kind -strref 21 m13s320 +strref 21 m13s322 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 brif 22 L4210 L4211 @@ -63540,7 +63630,7 @@ label L4211 label L4209 load 40 body_node field 41 40 0 string kind -strref 42 m13s319 +strref 42 m13s321 call 43 pith_cstring_eq bool 2 41 42 call 44 pith_cstring_release void 1 42 brif 43 L4216 L4217 @@ -63604,8 +63694,8 @@ load 22 types_TID_BOOL neq 23 21 22 brif 23 L4225 L4226 label L4225 -strref 24 m13s375 -strref 25 m13s374 +strref 24 m13s377 +strref 25 m13s376 load 26 cond call 27 types_get_type_name string 1 26 concat 28 25 27 @@ -63667,7 +63757,7 @@ call 61 pith_struct_release void 1 58 store cn 60 load 62 cn field 63 62 0 string kind -strref 64 m13s376 +strref 64 m13s378 call 65 pith_cstring_eq bool 2 63 64 call 66 pith_cstring_release void 1 64 brif 65 L4235 L4236 @@ -63697,8 +63787,8 @@ load 83 types_TID_BOOL neq 84 82 83 brif 84 L4244 L4245 label L4244 -strref 85 m13s375 -strref 86 m13s374 +strref 85 m13s377 +strref 86 m13s376 load 87 econd call 88 types_get_type_name string 1 87 concat 89 86 88 @@ -63746,14 +63836,14 @@ iconst 114 0 eq 115 113 114 brif 115 L4255 L4256 label L4255 -strref 116 m13s371 -strref 117 m13s373 +strref 116 m13s373 +strref 117 m13s375 load 118 result_type call 119 types_get_type_name string 1 118 concat 120 117 119 call 121 pith_cstring_release void 1 117 call 122 pith_cstring_release void 1 119 -strref 123 m13s369 +strref 123 m13s371 concat 124 120 123 call 125 pith_cstring_release void 1 120 call 126 pith_cstring_release void 1 123 @@ -63809,14 +63899,14 @@ iconst 151 0 eq 152 150 151 brif 152 L4266 L4267 label L4266 -strref 153 m13s371 -strref 154 m13s373 +strref 153 m13s373 +strref 154 m13s375 load 155 result_type call 156 types_get_type_name string 1 155 concat 157 154 156 call 158 pith_cstring_release void 1 154 call 159 pith_cstring_release void 1 156 -strref 160 m13s369 +strref 160 m13s371 concat 161 157 160 call 162 pith_cstring_release void 1 157 call 163 pith_cstring_release void 1 160 @@ -63968,7 +64058,7 @@ call 75 pith_struct_release void 1 72 store arm_node 74 load 76 arm_node field 77 76 0 string kind -strref 78 m13s372 +strref 78 m13s374 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 brif 79 L4282 L4283 @@ -63995,7 +64085,7 @@ call 96 pith_struct_release void 1 90 store pat 95 load 97 pat field 98 97 0 string kind -strref 99 m13s358 +strref 99 m13s360 call 100 pith_cstring_eq bool 2 98 99 call 101 pith_cstring_release void 1 99 brif 100 L4288 L4289 @@ -64102,14 +64192,14 @@ iconst 158 0 eq 159 157 158 brif 159 L4315 L4316 label L4315 -strref 160 m13s371 -strref 161 m13s370 +strref 160 m13s373 +strref 161 m13s372 load 162 result_type call 163 types_get_type_name string 1 162 concat 164 161 163 call 165 pith_cstring_release void 1 161 call 166 pith_cstring_release void 1 163 -strref 167 m13s369 +strref 167 m13s371 concat 168 164 167 call 169 pith_cstring_release void 1 164 call 170 pith_cstring_release void 1 167 @@ -64231,7 +64321,7 @@ call 36 pith_struct_release void 1 30 store guard_node 35 load 37 guard_node field 38 37 0 string kind -strref 39 m13s368 +strref 39 m13s370 call 40 pith_cstring_eq bool 2 38 39 call 41 pith_cstring_release void 1 39 brif 40 L4324 L4325 @@ -64261,8 +64351,8 @@ load 58 types_TID_BOOL neq 59 57 58 brif 59 L4333 L4334 label L4333 -strref 60 m13s367 -strref 61 m13s366 +strref 60 m13s369 +strref 61 m13s368 load 62 guard_type call 63 types_get_type_name string 1 62 concat 64 61 63 @@ -64313,7 +64403,7 @@ call 87 pith_struct_release void 1 81 store body_node 86 load 88 body_node field 89 88 0 string kind -strref 90 m13s320 +strref 90 m13s322 call 91 pith_cstring_eq bool 2 89 90 call 92 pith_cstring_release void 1 90 brif 91 L4339 L4340 @@ -64348,7 +64438,7 @@ label L4340 label L4338 load 113 body_node field 114 113 0 string kind -strref 115 m13s319 +strref 115 m13s321 call 116 pith_cstring_eq bool 2 114 115 call 117 pith_cstring_release void 1 115 brif 116 L4345 L4346 @@ -64397,7 +64487,7 @@ call 8 pith_struct_release void 1 5 store pat 7 load 9 pat field 10 9 0 string kind -strref 11 m13s337 +strref 11 m13s339 call 12 pith_cstring_eq bool 2 10 11 call 13 pith_cstring_release void 1 11 brif 12 L4348 L4349 @@ -64412,7 +64502,7 @@ label L4349 label L4347 load 19 pat field 20 19 0 string kind -strref 21 m13s338 +strref 21 m13s340 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 brif 22 L4351 L4352 @@ -64460,7 +64550,7 @@ label L4352 label L4350 load 56 pat field 57 56 0 string kind -strref 58 m13s341 +strref 58 m13s343 call 59 pith_cstring_eq bool 2 57 58 call 60 pith_cstring_release void 1 58 brif 59 L4357 L4358 @@ -64471,8 +64561,8 @@ iconst 63 0 eq 64 62 63 brif 64 L4360 L4361 label L4360 -strref 65 m13s348 -strref 66 m13s365 +strref 65 m13s350 +strref 66 m13s367 load 67 expected_type call 68 types_get_type_name string 1 67 concat 69 66 68 @@ -64494,7 +64584,7 @@ label L4358 label L4356 load 80 pat field 81 80 0 string kind -strref 82 m13s364 +strref 82 m13s366 call 83 pith_cstring_eq bool 2 81 82 call 84 pith_cstring_release void 1 82 brif 83 L4363 L4364 @@ -64505,8 +64595,8 @@ iconst 87 0 eq 88 86 87 brif 88 L4366 L4367 label L4366 -strref 89 m13s348 -strref 90 m13s363 +strref 89 m13s350 +strref 90 m13s365 load 91 expected_type call 92 types_get_type_name string 1 91 concat 93 90 92 @@ -64528,7 +64618,7 @@ label L4364 label L4362 load 104 pat field 105 104 0 string kind -strref 106 m13s362 +strref 106 m13s364 call 107 pith_cstring_eq bool 2 105 106 call 108 pith_cstring_release void 1 106 brif 107 L4369 L4370 @@ -64538,8 +64628,8 @@ load 110 types_TID_FLOAT neq 111 109 110 brif 111 L4372 L4373 label L4372 -strref 112 m13s348 -strref 113 m13s361 +strref 112 m13s350 +strref 113 m13s363 load 114 expected_type call 115 types_get_type_name string 1 114 concat 116 113 115 @@ -64561,7 +64651,7 @@ label L4370 label L4368 load 127 pat field 128 127 0 string kind -strref 129 m13s340 +strref 129 m13s342 call 130 pith_cstring_eq bool 2 128 129 call 131 pith_cstring_release void 1 129 brif 130 L4375 L4376 @@ -64571,8 +64661,8 @@ load 133 types_TID_STRING neq 134 132 133 brif 134 L4378 L4379 label L4378 -strref 135 m13s348 -strref 136 m13s360 +strref 135 m13s350 +strref 136 m13s362 load 137 expected_type call 138 types_get_type_name string 1 137 concat 139 136 138 @@ -64594,7 +64684,7 @@ label L4376 label L4374 load 150 pat field 151 150 0 string kind -strref 152 m13s343 +strref 152 m13s345 call 153 pith_cstring_eq bool 2 151 152 call 154 pith_cstring_release void 1 152 brif 153 L4381 L4382 @@ -64604,8 +64694,8 @@ load 156 types_TID_BOOL neq 157 155 156 brif 157 L4384 L4385 label L4384 -strref 158 m13s348 -strref 159 m13s359 +strref 158 m13s350 +strref 159 m13s361 load 160 expected_type call 161 types_get_type_name string 1 160 concat 162 159 161 @@ -64627,7 +64717,7 @@ label L4382 label L4380 load 173 pat field 174 173 0 string kind -strref 175 m13s336 +strref 175 m13s338 call 176 pith_cstring_eq bool 2 174 175 call 177 pith_cstring_release void 1 175 brif 176 L4387 L4388 @@ -64642,7 +64732,7 @@ label L4388 label L4386 load 183 pat field 184 183 0 string kind -strref 185 m13s342 +strref 185 m13s344 call 186 pith_cstring_eq bool 2 184 185 call 187 pith_cstring_release void 1 185 brif 186 L4390 L4391 @@ -64661,7 +64751,7 @@ label L4391 label L4389 load 197 pat field 198 197 0 string kind -strref 199 m13s358 +strref 199 m13s360 call 200 pith_cstring_eq bool 2 198 199 call 201 pith_cstring_release void 1 199 brif 200 L4393 L4394 @@ -64680,7 +64770,7 @@ label L4394 label L4392 load 211 pat field 212 211 0 string kind -strref 213 m13s339 +strref 213 m13s341 call 214 pith_cstring_eq bool 2 212 213 call 215 pith_cstring_release void 1 213 brif 214 L4396 L4397 @@ -64736,7 +64826,7 @@ iconst 18 0 store __or_18_4405 18 load 19 alt_node field 20 19 0 string kind -strref 21 m13s338 +strref 21 m13s340 call 22 pith_cstring_eq bool 2 20 21 call 23 pith_cstring_release void 1 21 store __or_18_4405 22 @@ -64744,7 +64834,7 @@ brif 22 L4406 L4405 label L4405 load 24 alt_node field 25 24 0 string kind -strref 26 m13s337 +strref 26 m13s339 call 27 pith_cstring_eq bool 2 25 26 call 28 pith_cstring_release void 1 26 store __or_18_4405 27 @@ -64752,8 +64842,8 @@ label L4406 load 29 __or_18_4405 brif 29 L4403 L4404 label L4403 -strref 30 m13s348 -strref 31 m13s357 +strref 30 m13s350 +strref 31 m13s359 call 32 checker_diagnostics_report_error void 2 30 31 call 33 pith_cstring_release void 1 30 call 34 pith_cstring_release void 1 31 @@ -64837,8 +64927,8 @@ iconst 42 0 lt 43 41 42 brif 43 L4411 L4412 label L4411 -strref 44 m13s310 -strref 45 m13s311 +strref 44 m13s312 +strref 45 m13s313 load 46 type_name concat 47 45 46 call 48 pith_cstring_release void 1 45 @@ -64864,12 +64954,12 @@ load 64 expected_type neq 65 63 64 brif 65 L4414 L4415 label L4414 -strref 66 m13s348 -strref 67 m13s356 +strref 66 m13s350 +strref 67 m13s358 load 68 type_name concat 69 67 68 call 70 pith_cstring_release void 1 67 -strref 71 m13s355 +strref 71 m13s357 concat 72 69 71 call 73 pith_cstring_release void 1 69 call 74 pith_cstring_release void 1 71 @@ -64909,9 +64999,9 @@ sub 101 103 102 call 104 pith_cstring_release void 1 100 brif 101 L4417 L4418 label L4417 -strref 105 m13s348 +strref 105 m13s350 load 106 type_name -strref 107 m13s354 +strref 107 m13s356 concat 108 106 107 call 109 pith_cstring_release void 1 107 call 110 checker_diagnostics_report_error void 2 105 108 @@ -64982,9 +65072,9 @@ call 156 pith_list_len int 1 155 neq 157 154 156 brif 157 L4430 L4431 label L4430 -strref 158 m13s346 +strref 158 m13s348 load 159 variant_name -strref 160 m13s353 +strref 160 m13s355 concat 161 159 160 call 162 pith_cstring_release void 1 160 load 163 variant_fields @@ -64993,7 +65083,7 @@ call 165 int_to_string string 1 164 concat 166 161 165 call 167 pith_cstring_release void 1 161 call 168 pith_cstring_release void 1 165 -strref 169 m13s352 +strref 169 m13s354 concat 170 166 169 call 171 pith_cstring_release void 1 166 call 172 pith_cstring_release void 1 169 @@ -65088,15 +65178,15 @@ iconst 228 0 eq 229 227 228 brif 229 L4440 L4441 label L4440 -strref 230 m13s351 +strref 230 m13s353 load 231 type_name -strref 232 m13s350 +strref 232 m13s352 concat 233 231 232 call 234 pith_cstring_release void 1 232 load 235 variant_name concat 236 233 235 call 237 pith_cstring_release void 1 233 -strref 238 m13s349 +strref 238 m13s351 concat 239 236 238 call 240 pith_cstring_release void 1 236 call 241 pith_cstring_release void 1 238 @@ -65139,8 +65229,8 @@ sub 11 13 12 call 14 pith_cstring_release void 1 10 brif 11 L4443 L4444 label L4443 -strref 15 m13s348 -strref 16 m13s347 +strref 15 m13s350 +strref 16 m13s349 load 17 expected_type call 18 types_get_type_name string 1 17 concat 19 16 18 @@ -65164,8 +65254,8 @@ call 33 pith_list_len int 1 32 neq 34 30 33 brif 34 L4446 L4447 label L4446 -strref 35 m13s346 -strref 36 m13s345 +strref 35 m13s348 +strref 36 m13s347 load 37 pat field 38 37 16 list children call 39 pith_list_len int 1 38 @@ -65173,7 +65263,7 @@ call 40 int_to_string string 1 39 concat 41 36 40 call 42 pith_cstring_release void 1 36 call 43 pith_cstring_release void 1 40 -strref 44 m13s344 +strref 44 m13s346 concat 45 41 44 call 46 pith_cstring_release void 1 41 call 47 pith_cstring_release void 1 44 @@ -65253,7 +65343,7 @@ iconst 2 0 store sub 2 load 3 pat field 4 3 0 string kind -strref 5 m13s337 +strref 5 m13s339 call 6 pith_cstring_eq bool 2 4 5 call 7 pith_cstring_release void 1 5 brif 6 L4456 L4457 @@ -65268,7 +65358,7 @@ label L4457 label L4455 load 13 pat field 14 13 0 string kind -strref 15 m13s338 +strref 15 m13s340 call 16 pith_cstring_eq bool 2 14 15 call 17 pith_cstring_release void 1 15 brif 16 L4459 L4460 @@ -65283,7 +65373,7 @@ label L4460 label L4458 load 23 pat field 24 23 0 string kind -strref 25 m13s343 +strref 25 m13s345 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 brif 26 L4462 L4463 @@ -65300,7 +65390,7 @@ label L4463 label L4461 load 35 pat field 36 35 0 string kind -strref 37 m13s342 +strref 37 m13s344 call 38 pith_cstring_eq bool 2 36 37 call 39 pith_cstring_release void 1 37 brif 38 L4465 L4466 @@ -65340,7 +65430,7 @@ label L4466 label L4464 load 64 pat field 65 64 0 string kind -strref 66 m13s341 +strref 66 m13s343 call 67 pith_cstring_eq bool 2 65 66 call 68 pith_cstring_release void 1 66 brif 67 L4471 L4472 @@ -65357,7 +65447,7 @@ label L4472 label L4470 load 76 pat field 77 76 0 string kind -strref 78 m13s340 +strref 78 m13s342 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 brif 79 L4474 L4475 @@ -65374,7 +65464,7 @@ label L4475 label L4473 load 88 pat field 89 88 0 string kind -strref 90 m13s339 +strref 90 m13s341 call 91 pith_cstring_eq bool 2 89 90 call 92 pith_cstring_release void 1 90 brif 91 L4477 L4478 @@ -65405,7 +65495,7 @@ iconst 107 0 store __and_107_4486 107 load 108 sub field 109 108 0 string kind -strref 110 m13s338 +strref 110 m13s340 call 112 pith_cstring_eq bool 2 109 110 iconst 113 1 sub 111 113 112 @@ -65415,7 +65505,7 @@ brif 111 L4486 L4487 label L4486 load 115 sub field 116 115 0 string kind -strref 117 m13s337 +strref 117 m13s339 call 119 pith_cstring_eq bool 2 116 117 iconst 120 1 sub 118 120 119 @@ -65450,12 +65540,12 @@ label L4478 label L4476 load 136 pat field 137 136 0 string kind -strref 138 m13s336 +strref 138 m13s338 call 139 pith_cstring_eq bool 2 137 138 call 140 pith_cstring_release void 1 138 brif 139 L4489 L4490 label L4489 -strref 141 m13s334 +strref 141 m13s336 load 142 parts call 143 pith_struct_release void 1 142 load 144 sub @@ -65579,7 +65669,7 @@ load 60 __for_idx_188 call 61 pith_list_get_value_unchecked string 2 59 60 store __loopvar_188_v 61 load 62 __loopvar_188_v -strref 63 m13s335 +strref 63 m13s337 call 64 pith_cstring_eq bool 2 62 63 call 65 pith_cstring_release void 1 63 brif 64 L4512 L4513 @@ -65600,7 +65690,7 @@ jmp L4511 label L4515 label L4511 load 72 __loopvar_188_v -strref 73 m13s334 +strref 73 m13s336 call 74 pith_cstring_eq bool 2 72 73 call 75 pith_cstring_release void 1 73 brif 74 L4517 L4518 @@ -65632,8 +65722,8 @@ iconst 87 1 sub 86 87 85 brif 86 L4522 L4523 label L4522 -strref 88 m13s326 -strref 89 m13s333 +strref 88 m13s328 +strref 89 m13s335 call 90 checker_diagnostics_report_error void 2 88 89 call 91 pith_cstring_release void 1 88 call 92 pith_cstring_release void 1 89 @@ -65645,8 +65735,8 @@ iconst 95 1 sub 94 95 93 brif 94 L4525 L4526 label L4525 -strref 96 m13s326 -strref 97 m13s332 +strref 96 m13s328 +strref 97 m13s334 call 98 checker_diagnostics_report_error void 2 96 97 call 99 pith_cstring_release void 1 96 call 100 pith_cstring_release void 1 97 @@ -65659,8 +65749,8 @@ iconst 103 0 ret 103 label L4506 label L4504 -strref 104 m13s326 -strref 105 m13s331 +strref 104 m13s328 +strref 105 m13s333 call 106 checker_diagnostics_report_error void 2 104 105 call 107 pith_cstring_release void 1 104 call 108 pith_cstring_release void 1 105 @@ -65692,7 +65782,7 @@ load 10 __for_idx_189 call 11 pith_list_get_value_unchecked string 2 9 10 store __loopvar_189_v 11 load 12 __loopvar_189_v -strref 13 m13s330 +strref 13 m13s332 call 14 pith_cstring_eq bool 2 12 13 call 15 pith_cstring_release void 1 13 brif 14 L4532 L4533 @@ -65703,7 +65793,7 @@ jmp L4531 label L4533 label L4531 load 17 __loopvar_189_v -strref 18 m13s329 +strref 18 m13s331 call 19 pith_cstring_eq bool 2 17 18 call 20 pith_cstring_release void 1 18 brif 19 L4535 L4536 @@ -65725,8 +65815,8 @@ iconst 26 0 eq 27 25 26 brif 27 L4538 L4539 label L4538 -strref 28 m13s326 -strref 29 m13s328 +strref 28 m13s328 +strref 29 m13s330 call 30 checker_diagnostics_report_error void 2 28 29 call 31 pith_cstring_release void 1 28 call 32 pith_cstring_release void 1 29 @@ -65738,8 +65828,8 @@ iconst 34 0 eq 35 33 34 brif 35 L4541 L4542 label L4541 -strref 36 m13s326 -strref 37 m13s327 +strref 36 m13s328 +strref 37 m13s329 call 38 checker_diagnostics_report_error void 2 36 37 call 39 pith_cstring_release void 1 36 call 40 pith_cstring_release void 1 37 @@ -65834,10 +65924,10 @@ iconst 44 0 gt 45 43 44 brif 45 L4558 L4559 label L4558 -strref 46 m13s326 -strref 47 m13s325 +strref 46 m13s328 +strref 47 m13s327 load 48 missing -strref 49 m13s324 +strref 49 m13s326 call 50 list_join string 2 48 49 call 51 pith_cstring_release void 1 49 concat 52 47 50 @@ -65900,7 +65990,7 @@ call 27 pith_struct_release void 1 24 store cn 26 load 28 cn field 29 28 0 string kind -strref 30 m13s323 +strref 30 m13s325 call 31 pith_cstring_eq bool 2 29 30 call 32 pith_cstring_release void 1 30 brif 31 L4565 L4566 @@ -65934,8 +66024,8 @@ iconst 54 0 call 55 scope_define_binding void 4 51 52 53 54 jmp L4567 label L4569 -strref 56 m13s322 -strref 57 m13s321 +strref 56 m13s324 +strref 57 m13s323 call 58 checker_diagnostics_report_error void 2 56 57 call 59 pith_cstring_release void 1 56 call 60 pith_cstring_release void 1 57 @@ -65969,7 +66059,7 @@ call 75 pith_struct_release void 1 72 store body_node 74 load 76 body_node field 77 76 0 string kind -strref 78 m13s320 +strref 78 m13s322 call 79 pith_cstring_eq bool 2 77 78 call 80 pith_cstring_release void 1 78 brif 79 L4574 L4575 @@ -65995,7 +66085,7 @@ jmp L4573 label L4575 load 92 body_node field 93 92 0 string kind -strref 94 m13s319 +strref 94 m13s321 call 95 pith_cstring_eq bool 2 93 94 call 96 pith_cstring_release void 1 94 brif 95 L4579 L4580 @@ -66133,14 +66223,14 @@ label L4600 load 41 __and_32_4599 brif 41 L4597 L4598 label L4597 -strref 42 m13s314 -strref 43 m13s318 +strref 42 m13s316 +strref 43 m13s320 load 44 elem_type call 45 types_get_type_name string 1 44 concat 46 43 45 call 47 pith_cstring_release void 1 43 call 48 pith_cstring_release void 1 45 -strref 49 m13s301 +strref 49 m13s303 concat 50 46 49 call 51 pith_cstring_release void 1 46 call 52 pith_cstring_release void 1 49 @@ -66229,7 +66319,7 @@ call 29 pith_struct_release void 1 26 store entry 28 load 30 entry field 31 30 0 string kind -strref 32 m13s317 +strref 32 m13s319 call 33 pith_cstring_eq bool 2 31 32 call 34 pith_cstring_release void 1 32 brif 33 L4612 L4613 @@ -66274,8 +66364,8 @@ load 60 key_type neq 61 59 60 brif 61 L4623 L4624 label L4623 -strref 62 m13s314 -strref 63 m13s316 +strref 62 m13s316 +strref 63 m13s318 call 64 checker_diagnostics_report_error void 2 62 63 call 65 pith_cstring_release void 1 62 call 66 pith_cstring_release void 1 63 @@ -66317,8 +66407,8 @@ label L4634 load 83 __and_74_4633 brif 83 L4631 L4632 label L4631 -strref 84 m13s314 -strref 85 m13s315 +strref 84 m13s316 +strref 85 m13s317 call 86 checker_diagnostics_report_error void 2 84 85 call 87 pith_cstring_release void 1 84 call 88 pith_cstring_release void 1 85 @@ -66445,8 +66535,8 @@ label L4657 load 41 __and_32_4656 brif 41 L4654 L4655 label L4654 -strref 42 m13s314 -strref 43 m13s313 +strref 42 m13s316 +strref 43 m13s315 call 44 checker_diagnostics_report_error void 2 42 43 call 45 pith_cstring_release void 1 42 call 46 pith_cstring_release void 1 43 @@ -66512,7 +66602,7 @@ call 20 pith_struct_release void 1 17 store cn 19 load 21 cn field 22 21 0 string kind -strref 23 m13s312 +strref 23 m13s314 call 24 pith_cstring_eq bool 2 22 23 call 25 pith_cstring_release void 1 23 brif 24 L4666 L4667 @@ -66575,8 +66665,8 @@ iconst 12 0 lt 13 11 12 brif 13 L4669 L4670 label L4669 -strref 14 m13s310 -strref 15 m13s311 +strref 14 m13s312 +strref 15 m13s313 load 16 struct_name concat 17 15 16 call 18 pith_cstring_release void 1 15 @@ -66605,9 +66695,9 @@ sub 34 36 35 call 37 pith_cstring_release void 1 33 brif 34 L4672 L4673 label L4672 -strref 38 m13s310 +strref 38 m13s312 load 39 struct_name -strref 40 m13s309 +strref 40 m13s311 concat 41 39 40 call 42 pith_cstring_release void 1 40 call 43 checker_diagnostics_report_error void 2 38 41 @@ -66630,9 +66720,9 @@ call 56 pith_list_len int 1 55 gt 57 53 56 brif 57 L4675 L4676 label L4675 -strref 58 m13s307 +strref 58 m13s309 load 59 struct_name -strref 60 m13s308 +strref 60 m13s310 concat 61 59 60 call 62 pith_cstring_release void 1 60 load 63 info @@ -66642,7 +66732,7 @@ call 66 int_to_string string 1 65 concat 67 61 66 call 68 pith_cstring_release void 1 61 call 69 pith_cstring_release void 1 66 -strref 70 m13s305 +strref 70 m13s307 concat 71 67 70 call 72 pith_cstring_release void 1 67 call 73 pith_cstring_release void 1 70 @@ -66675,9 +66765,9 @@ load 95 min_required lt 96 94 95 brif 96 L4678 L4679 label L4678 -strref 97 m13s307 +strref 97 m13s309 load 98 struct_name -strref 99 m13s306 +strref 99 m13s308 concat 100 98 99 call 101 pith_cstring_release void 1 99 load 102 min_required @@ -66685,7 +66775,7 @@ call 103 int_to_string string 1 102 concat 104 100 103 call 105 pith_cstring_release void 1 100 call 106 pith_cstring_release void 1 103 -strref 107 m13s305 +strref 107 m13s307 concat 108 104 107 call 109 pith_cstring_release void 1 104 call 110 pith_cstring_release void 1 107 @@ -66771,15 +66861,15 @@ iconst 168 0 eq 169 167 168 brif 169 L4697 L4698 label L4697 -strref 170 m13s304 -strref 171 m13s303 +strref 170 m13s306 +strref 171 m13s305 load 172 info field 173 172 16 list_string fields load 174 idx call 175 pith_list_get_value_strict string 2 173 174 concat 176 171 175 call 177 pith_cstring_release void 1 171 -strref 178 m13s302 +strref 178 m13s304 concat 179 176 178 call 180 pith_cstring_release void 1 176 call 181 pith_cstring_release void 1 178 @@ -66788,7 +66878,7 @@ call 183 types_get_type_name string 1 182 concat 184 179 183 call 185 pith_cstring_release void 1 179 call 186 pith_cstring_release void 1 183 -strref 187 m13s301 +strref 187 m13s303 concat 188 184 187 call 189 pith_cstring_release void 1 184 call 190 pith_cstring_release void 1 187 @@ -66851,8 +66941,8 @@ iconst 6 1 lt 7 5 6 brif 7 L4700 L4701 label L4700 -strref 8 m13s289 -strref 9 m13s299 +strref 8 m13s291 +strref 9 m13s301 call 10 checker_diagnostics_report_error void 2 8 9 call 11 pith_cstring_release void 1 8 call 12 pith_cstring_release void 1 9 @@ -66872,15 +66962,15 @@ call 22 pith_struct_release void 1 16 store inner_node 21 load 23 inner_node field 24 23 0 string kind -strref 25 m13s300 +strref 25 m13s302 call 27 pith_cstring_eq bool 2 24 25 iconst 28 1 sub 26 28 27 call 29 pith_cstring_release void 1 25 brif 26 L4703 L4704 label L4703 -strref 30 m13s289 -strref 31 m13s299 +strref 30 m13s291 +strref 31 m13s301 call 32 checker_diagnostics_report_error void 2 30 31 call 33 pith_cstring_release void 1 30 call 34 pith_cstring_release void 1 31 @@ -66965,7 +67055,7 @@ iconst 22 0 store __and_22_4718 22 load 23 arg_node field 24 23 0 string kind -strref 25 m13s298 +strref 25 m13s300 call 26 pith_cstring_eq bool 2 24 25 call 27 pith_cstring_release void 1 25 store __and_22_4718 26 @@ -67002,16 +67092,16 @@ call 45 pith_cstring_retain void 1 44 call 46 pith_cstring_release void 1 40 store kind 44 load 47 expr_idx -strref 48 m13s297 -strref 49 m13s296 +strref 48 m13s299 +strref 49 m13s298 load 50 kind concat 51 49 50 call 52 pith_cstring_release void 1 49 -strref 53 m13s295 +strref 53 m13s297 concat 54 51 53 call 55 pith_cstring_release void 1 51 call 56 pith_cstring_release void 1 53 -strref 57 m13s294 +strref 57 m13s296 load 58 kind concat 59 57 58 call 60 pith_cstring_release void 1 57 @@ -67057,7 +67147,7 @@ iconst 8 0 store __and_8_4726 8 load 9 node field 10 9 0 string kind -strref 11 m13s293 +strref 11 m13s295 call 13 pith_cstring_eq bool 2 10 11 iconst 14 1 sub 12 14 13 @@ -67067,7 +67157,7 @@ brif 12 L4726 L4727 label L4726 load 16 node field 17 16 0 string kind -strref 18 m13s292 +strref 18 m13s294 call 20 pith_cstring_eq bool 2 17 18 iconst 21 1 sub 19 21 20 @@ -67080,7 +67170,7 @@ brif 23 L4728 L4729 label L4728 load 24 node field 25 24 0 string kind -strref 26 m13s291 +strref 26 m13s293 call 28 pith_cstring_eq bool 2 25 26 iconst 29 1 sub 27 29 28 @@ -67173,8 +67263,8 @@ iconst 6 1 lt 7 5 6 brif 7 L4738 L4739 label L4738 -strref 8 m13s289 -strref 9 m13s290 +strref 8 m13s291 +strref 9 m13s292 call 10 checker_diagnostics_report_error void 2 8 9 call 11 pith_cstring_release void 1 8 call 12 pith_cstring_release void 1 9 @@ -67220,8 +67310,8 @@ call 39 pith_struct_release void 1 38 ret 37 label L4745 label L4743 -strref 40 m13s289 -strref 41 m13s288 +strref 40 m13s291 +strref 41 m13s290 load 42 inner call 43 types_get_type_name string 1 42 concat 44 41 43 @@ -67251,7 +67341,7 @@ call 6 pith_struct_release void 1 3 store decl 5 load 7 decl field 8 7 0 string kind -strref 9 m13s287 +strref 9 m13s289 call 10 pith_cstring_eq bool 2 8 9 call 11 pith_cstring_release void 1 9 brif 10 L4747 L4748 @@ -67266,7 +67356,7 @@ label L4748 label L4746 load 17 decl field 18 17 0 string kind -strref 19 m13s286 +strref 19 m13s288 call 20 pith_cstring_eq bool 2 18 19 call 21 pith_cstring_release void 1 19 brif 20 L4750 L4751 @@ -67407,7 +67497,7 @@ call 83 pith_struct_release void 1 80 store cn 82 load 84 cn field 85 84 0 string kind -strref 86 m13s285 +strref 86 m13s287 call 87 pith_cstring_eq bool 2 85 86 call 88 pith_cstring_release void 1 86 brif 87 L4760 L4761 @@ -67420,13 +67510,13 @@ call 93 pith_cstring_release void 1 89 store fname 92 load 94 cn field 95 94 8 string value -strref 96 m13s284 +strref 96 m13s286 call 97 pith_cstring_contains bool 2 95 96 call 98 pith_cstring_release void 1 96 store is_pub 97 load 99 cn field 100 99 8 string value -strref 101 m13s283 +strref 101 m13s285 call 102 pith_cstring_contains bool 2 100 101 call 103 pith_cstring_release void 1 101 store is_mut 102 @@ -67669,7 +67759,7 @@ call 71 pith_struct_release void 1 68 store cn 70 load 72 cn field 73 72 0 string kind -strref 74 m13s282 +strref 74 m13s284 call 75 pith_cstring_eq bool 2 73 74 call 76 pith_cstring_release void 1 74 brif 75 L4776 L4777 @@ -68864,7 +68954,7 @@ string m14s215 "result_int" string m14s216 "parse_float" string m14s217 "tuple" string m14s218 "," -string m14s219 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m14s219 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m14s220 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" string m14s221 "write_file,append_file,write_file_bytes,append_file_bytes" string m14s222 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" @@ -68873,7 +68963,7 @@ string m14s224 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list string m14s225 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" string m14s226 "sort_strings,zip,enumerate,toml_keys" string m14s227 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m14s228 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m14s228 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m14s229 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" string m14s230 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" string m14s231 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" @@ -68925,6 +69015,8 @@ string m14s276 "crypto_aes_128_gcm_open failed" string m14s277 "crypto_chacha20_poly1305_seal failed" string m14s278 "crypto_chacha20_poly1305_open failed" string m14s279 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m14s280 "crypto_blake2b failed" +string m14s281 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -70979,6 +71071,8 @@ string m15s47 "crypto_aes_128_gcm_open failed" string m15s48 "crypto_chacha20_poly1305_seal failed" string m15s49 "crypto_chacha20_poly1305_open failed" string m15s50 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m15s51 "crypto_blake2b failed" +string m15s52 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -71340,6 +71434,8 @@ string m16s59 "crypto_aes_128_gcm_open failed" string m16s60 "crypto_chacha20_poly1305_seal failed" string m16s61 "crypto_chacha20_poly1305_open failed" string m16s62 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m16s63 "crypto_blake2b failed" +string m16s64 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -72747,7 +72843,7 @@ string m17s807 "parse_int" string m17s808 "result_bool" string m17s809 "result_int" string m17s810 "parse_float" -string m17s811 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m17s811 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m17s812 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" string m17s813 "write_file,append_file,write_file_bytes,append_file_bytes" string m17s814 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" @@ -72756,7 +72852,7 @@ string m17s816 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list string m17s817 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" string m17s818 "sort_strings,zip,enumerate,toml_keys" string m17s819 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m17s820 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m17s820 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m17s821 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" string m17s822 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" string m17s823 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" @@ -72830,6 +72926,8 @@ string m17s890 "crypto_aes_128_gcm_open failed" string m17s891 "crypto_chacha20_poly1305_seal failed" string m17s892 "crypto_chacha20_poly1305_open failed" string m17s893 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m17s894 "crypto_blake2b failed" +string m17s895 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -76309,7 +76407,7 @@ string m18s230 "result_int" string m18s231 "parse_float" string m18s232 "tuple" string m18s233 "," -string m18s234 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m18s234 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m18s235 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" string m18s236 "write_file,append_file,write_file_bytes,append_file_bytes" string m18s237 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" @@ -76318,7 +76416,7 @@ string m18s239 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list string m18s240 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" string m18s241 "sort_strings,zip,enumerate,toml_keys" string m18s242 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m18s243 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m18s243 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m18s244 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" string m18s245 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" string m18s246 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" @@ -76450,6 +76548,8 @@ string m18s371 "crypto_aes_128_gcm_open failed" string m18s372 "crypto_chacha20_poly1305_seal failed" string m18s373 "crypto_chacha20_poly1305_open failed" string m18s374 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m18s375 "crypto_blake2b failed" +string m18s376 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -77016,6 +77116,8 @@ string m19s74 "crypto_aes_128_gcm_open failed" string m19s75 "crypto_chacha20_poly1305_seal failed" string m19s76 "crypto_chacha20_poly1305_open failed" string m19s77 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m19s78 "crypto_blake2b failed" +string m19s79 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -77838,6 +77940,8 @@ string m20s44 "crypto_aes_128_gcm_open failed" string m20s45 "crypto_chacha20_poly1305_seal failed" string m20s46 "crypto_chacha20_poly1305_open failed" string m20s47 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m20s48 "crypto_blake2b failed" +string m20s49 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -78551,6 +78655,8 @@ string m21s179 "crypto_aes_128_gcm_open failed" string m21s180 "crypto_chacha20_poly1305_seal failed" string m21s181 "crypto_chacha20_poly1305_open failed" string m21s182 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m21s183 "crypto_blake2b failed" +string m21s184 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -80582,6 +80688,8 @@ string m22s72 "crypto_aes_128_gcm_open failed" string m22s73 "crypto_chacha20_poly1305_seal failed" string m22s74 "crypto_chacha20_poly1305_open failed" string m22s75 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m22s76 "crypto_blake2b failed" +string m22s77 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -81597,6 +81705,8 @@ string m23s266 "crypto_aes_128_gcm_open failed" string m23s267 "crypto_chacha20_poly1305_seal failed" string m23s268 "crypto_chacha20_poly1305_open failed" string m23s269 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m23s270 "crypto_blake2b failed" +string m23s271 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -85023,6 +85133,8 @@ string m24s729 "crypto_aes_128_gcm_open failed" string m24s730 "crypto_chacha20_poly1305_seal failed" string m24s731 "crypto_chacha20_poly1305_open failed" string m24s732 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m24s733 "crypto_blake2b failed" +string m24s734 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -85896,6 +86008,8 @@ string m25s208 "crypto_aes_128_gcm_open failed" string m25s209 "crypto_chacha20_poly1305_seal failed" string m25s210 "crypto_chacha20_poly1305_open failed" string m25s211 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m25s212 "crypto_blake2b failed" +string m25s213 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -86627,6 +86741,8 @@ string m26s69 "crypto_aes_128_gcm_open failed" string m26s70 "crypto_chacha20_poly1305_seal failed" string m26s71 "crypto_chacha20_poly1305_open failed" string m26s72 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m26s73 "crypto_blake2b failed" +string m26s74 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -87286,6 +87402,8 @@ string m27s202 "crypto_aes_128_gcm_open failed" string m27s203 "crypto_chacha20_poly1305_seal failed" string m27s204 "crypto_chacha20_poly1305_open failed" string m27s205 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m27s206 "crypto_blake2b failed" +string m27s207 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -89052,6 +89170,8 @@ string m28s762 "crypto_aes_128_gcm_open failed" string m28s763 "crypto_chacha20_poly1305_seal failed" string m28s764 "crypto_chacha20_poly1305_open failed" string m28s765 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m28s766 "crypto_blake2b failed" +string m28s767 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -89757,6 +89877,8 @@ string m29s70 "crypto_aes_128_gcm_open failed" string m29s71 "crypto_chacha20_poly1305_seal failed" string m29s72 "crypto_chacha20_poly1305_open failed" string m29s73 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m29s74 "crypto_blake2b failed" +string m29s75 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -90948,6 +91070,8 @@ string m30s811 "crypto_aes_128_gcm_open failed" string m30s812 "crypto_chacha20_poly1305_seal failed" string m30s813 "crypto_chacha20_poly1305_open failed" string m30s814 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m30s815 "crypto_blake2b failed" +string m30s816 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -92575,6 +92699,8 @@ string m31s112 "crypto_aes_128_gcm_open failed" string m31s113 "crypto_chacha20_poly1305_seal failed" string m31s114 "crypto_chacha20_poly1305_open failed" string m31s115 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m31s116 "crypto_blake2b failed" +string m31s117 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -92917,6 +93043,8 @@ string m32s77 "crypto_aes_128_gcm_open failed" string m32s78 "crypto_chacha20_poly1305_seal failed" string m32s79 "crypto_chacha20_poly1305_open failed" string m32s80 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m32s81 "crypto_blake2b failed" +string m32s82 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -93405,7 +93533,7 @@ string m33s230 "result_int" string m33s231 "parse_float" string m33s232 "tuple" string m33s233 "," -string m33s234 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m33s234 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m33s235 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" string m33s236 "write_file,append_file,write_file_bytes,append_file_bytes" string m33s237 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" @@ -93414,7 +93542,7 @@ string m33s239 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list string m33s240 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" string m33s241 "sort_strings,zip,enumerate,toml_keys" string m33s242 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m33s243 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m33s243 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m33s244 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" string m33s245 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" string m33s246 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" @@ -93596,6 +93724,8 @@ string m33s421 "crypto_aes_128_gcm_open failed" string m33s422 "crypto_chacha20_poly1305_seal failed" string m33s423 "crypto_chacha20_poly1305_open failed" string m33s424 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m33s425 "crypto_blake2b failed" +string m33s426 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -94631,6 +94761,8 @@ string m34s83 "crypto_aes_128_gcm_open failed" string m34s84 "crypto_chacha20_poly1305_seal failed" string m34s85 "crypto_chacha20_poly1305_open failed" string m34s86 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m34s87 "crypto_blake2b failed" +string m34s88 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -95842,6 +95974,8 @@ string m35s810 "crypto_aes_128_gcm_open failed" string m35s811 "crypto_chacha20_poly1305_seal failed" string m35s812 "crypto_chacha20_poly1305_open failed" string m35s813 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m35s814 "crypto_blake2b failed" +string m35s815 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -99520,7 +99654,7 @@ string m36s230 "result_int" string m36s231 "parse_float" string m36s232 "tuple" string m36s233 "," -string m36s234 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m36s234 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m36s235 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" string m36s236 "write_file,append_file,write_file_bytes,append_file_bytes" string m36s237 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" @@ -99529,7 +99663,7 @@ string m36s239 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list string m36s240 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" string m36s241 "sort_strings,zip,enumerate,toml_keys" string m36s242 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m36s243 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m36s243 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m36s244 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" string m36s245 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" string m36s246 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" @@ -99608,6 +99742,8 @@ string m36s318 "crypto_aes_128_gcm_open failed" string m36s319 "crypto_chacha20_poly1305_seal failed" string m36s320 "crypto_chacha20_poly1305_open failed" string m36s321 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m36s322 "crypto_blake2b failed" +string m36s323 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -101098,6 +101234,8 @@ string m37s84 "crypto_aes_128_gcm_open failed" string m37s85 "crypto_chacha20_poly1305_seal failed" string m37s86 "crypto_chacha20_poly1305_open failed" string m37s87 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m37s88 "crypto_blake2b failed" +string m37s89 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -101608,7 +101746,7 @@ string m38s230 "result_int" string m38s231 "parse_float" string m38s232 "tuple" string m38s233 "," -string m38s234 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m38s234 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m38s235 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" string m38s236 "write_file,append_file,write_file_bytes,append_file_bytes" string m38s237 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" @@ -101617,7 +101755,7 @@ string m38s239 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list string m38s240 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" string m38s241 "sort_strings,zip,enumerate,toml_keys" string m38s242 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m38s243 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m38s243 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m38s244 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" string m38s245 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" string m38s246 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" @@ -101682,6 +101820,8 @@ string m38s304 "crypto_aes_128_gcm_open failed" string m38s305 "crypto_chacha20_poly1305_seal failed" string m38s306 "crypto_chacha20_poly1305_open failed" string m38s307 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m38s308 "crypto_blake2b failed" +string m38s309 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -103147,6 +103287,8 @@ string m39s967 "crypto_aes_128_gcm_open failed" string m39s968 "crypto_chacha20_poly1305_seal failed" string m39s969 "crypto_chacha20_poly1305_open failed" string m39s970 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m39s971 "crypto_blake2b failed" +string m39s972 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -113107,7 +113249,7 @@ string m40s237 "result_int" string m40s238 "parse_float" string m40s239 "tuple" string m40s240 "," -string m40s241 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m40s241 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m40s242 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" string m40s243 "write_file,append_file,write_file_bytes,append_file_bytes" string m40s244 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" @@ -113116,7 +113258,7 @@ string m40s246 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list string m40s247 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" string m40s248 "sort_strings,zip,enumerate,toml_keys" string m40s249 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m40s250 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m40s250 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m40s251 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" string m40s252 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" string m40s253 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" @@ -113173,6 +113315,8 @@ string m40s303 "crypto_aes_128_gcm_open failed" string m40s304 "crypto_chacha20_poly1305_seal failed" string m40s305 "crypto_chacha20_poly1305_open failed" string m40s306 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m40s307 "crypto_blake2b failed" +string m40s308 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -113945,6 +114089,8 @@ string m41s98 "crypto_aes_128_gcm_open failed" string m41s99 "crypto_chacha20_poly1305_seal failed" string m41s100 "crypto_chacha20_poly1305_open failed" string m41s101 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m41s102 "crypto_blake2b failed" +string m41s103 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -114682,6 +114828,8 @@ string m42s101 "crypto_aes_128_gcm_open failed" string m42s102 "crypto_chacha20_poly1305_seal failed" string m42s103 "crypto_chacha20_poly1305_open failed" string m42s104 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m42s105 "crypto_blake2b failed" +string m42s106 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -115589,6 +115737,8 @@ string m43s96 "crypto_aes_128_gcm_open failed" string m43s97 "crypto_chacha20_poly1305_seal failed" string m43s98 "crypto_chacha20_poly1305_open failed" string m43s99 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m43s100 "crypto_blake2b failed" +string m43s101 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -116490,7 +116640,7 @@ string m44s230 "result_int" string m44s231 "parse_float" string m44s232 "tuple" string m44s233 "," -string m44s234 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m44s234 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m44s235 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" string m44s236 "write_file,append_file,write_file_bytes,append_file_bytes" string m44s237 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" @@ -116499,7 +116649,7 @@ string m44s239 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list string m44s240 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" string m44s241 "sort_strings,zip,enumerate,toml_keys" string m44s242 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m44s243 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m44s243 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m44s244 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" string m44s245 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" string m44s246 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" @@ -116567,6 +116717,8 @@ string m44s307 "crypto_aes_128_gcm_open failed" string m44s308 "crypto_chacha20_poly1305_seal failed" string m44s309 "crypto_chacha20_poly1305_open failed" string m44s310 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m44s311 "crypto_blake2b failed" +string m44s312 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -118848,6 +119000,8 @@ string m45s730 "crypto_aes_128_gcm_open failed" string m45s731 "crypto_chacha20_poly1305_seal failed" string m45s732 "crypto_chacha20_poly1305_open failed" string m45s733 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m45s734 "crypto_blake2b failed" +string m45s735 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -121342,7 +121496,7 @@ string m46s807 "parse_int" string m46s808 "result_bool" string m46s809 "result_int" string m46s810 "parse_float" -string m46s811 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m46s811 "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m46s812 "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" string m46s813 "write_file,append_file,write_file_bytes,append_file_bytes" string m46s814 "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" @@ -121351,7 +121505,7 @@ string m46s816 "reverse,clear,push,remove,insert,add,list_remove,list_clear,list string m46s817 "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" string m46s818 "sort_strings,zip,enumerate,toml_keys" string m46s819 "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" -string m46s820 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m46s820 "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m46s821 "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" string m46s822 "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" string m46s823 "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" @@ -121683,7 +121837,7 @@ string m46s1148 "pith_list_push_value_owned" string m46s1149 " 2 " string m46s1150 "struct:tuple" string m46s1151 " 3" -string m46s1152 "parse_int,file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,write_file,append_file,write_file_bytes,append_file_bytes,read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err,read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m46s1152 "parse_int,file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,write_file,append_file,write_file_bytes,append_file_bytes,read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err,read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m46s1153 "main" string m46s1154 "__init_globals" string m46s1155 "__enum_eq_" @@ -121892,6 +122046,8 @@ string m46s1357 "crypto_aes_128_gcm_open failed" string m46s1358 "crypto_chacha20_poly1305_seal failed" string m46s1359 "crypto_chacha20_poly1305_open failed" string m46s1360 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m46s1361 "crypto_blake2b failed" +string m46s1362 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -174181,7 +174337,7 @@ string m47s7 "struct_decl" string m47s8 "type_alias" string m47s9 " failed" string m47s10 "," -string m47s11 "parse_int,file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,write_file,append_file,write_file_bytes,append_file_bytes,read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err,read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +string m47s11 "parse_int,file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,write_file,append_file,write_file_bytes,append_file_bytes,read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err,read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" string m47s12 "test_decl" string m47s13 "main" string m47s14 "fn" @@ -174669,6 +174825,8 @@ string m47s495 "crypto_aes_128_gcm_open failed" string m47s496 "crypto_chacha20_poly1305_seal failed" string m47s497 "crypto_chacha20_poly1305_open failed" string m47s498 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m47s499 "crypto_blake2b failed" +string m47s500 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -175693,6 +175851,8 @@ string m48s860 "crypto_aes_128_gcm_open failed" string m48s861 "crypto_chacha20_poly1305_seal failed" string m48s862 "crypto_chacha20_poly1305_open failed" string m48s863 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m48s864 "crypto_blake2b failed" +string m48s865 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types @@ -179615,6 +179775,8 @@ string m49s941 "crypto_aes_128_gcm_open failed" string m49s942 "crypto_chacha20_poly1305_seal failed" string m49s943 "crypto_chacha20_poly1305_open failed" string m49s944 "crypto_sign_rsa_pss_sha256_pkcs8 failed" +string m49s945 "crypto_blake2b failed" +string m49s946 "crypto_argon2id failed" struct Node kind value children line col struct Token kind value current_line current_column struct TypeInfo kind name fields field_types field_pub field_mut param_types return_type inner key_type value_type elements variants variant_types diff --git a/self-host/checker_builtins.pith b/self-host/checker_builtins.pith index 31670b4a..a4560ffe 100644 --- a/self-host/checker_builtins.pith +++ b/self-host/checker_builtins.pith @@ -158,6 +158,8 @@ pub fn register_builtin_types(scope_id: Int): define_builtin_function("crypto_verify_rsa_pkcs1_sha384", create_function_type([tid_bytes, tid_bytes, tid_bytes], TID_BOOL)) define_builtin_function("crypto_verify_rsa_pss_sha256", create_function_type([tid_bytes, tid_bytes, tid_bytes], TID_BOOL)) define_builtin_function("crypto_sign_rsa_pss_sha256_pkcs8", create_function_type([tid_bytes, tid_bytes], bytes_result)) + define_builtin_function("crypto_blake2b", create_function_type([tid_bytes, tid_bytes, TID_INT], bytes_result)) + define_builtin_function("crypto_argon2id", create_function_type([tid_bytes, tid_bytes, TID_INT, TID_INT, TID_INT, TID_INT], bytes_result)) define_builtin_function("byte_buffer_new", create_function_type([], TID_INT)) define_builtin_function("byte_buffer_free", create_function_type([TID_INT], TID_VOID)) define_builtin_function("byte_buffer_take_bytes", create_function_type([TID_INT], tid_bytes)) @@ -316,6 +318,8 @@ pub fn register_builtin_types(scope_id: Int): fix_builtin_binding("crypto_verify_rsa_pkcs1_sha384", [tid_bytes, tid_bytes, tid_bytes], tid_bool) fix_builtin_binding("crypto_verify_rsa_pss_sha256", [tid_bytes, tid_bytes, tid_bytes], tid_bool) fix_builtin_binding("crypto_sign_rsa_pss_sha256_pkcs8", [tid_bytes, tid_bytes], bytes_result) + fix_builtin_binding("crypto_blake2b", [tid_bytes, tid_bytes, tid_int], bytes_result) + fix_builtin_binding("crypto_argon2id", [tid_bytes, tid_bytes, tid_int, tid_int, tid_int, tid_int], bytes_result) fix_builtin_binding("byte_buffer_new", [], tid_int) fix_builtin_binding("byte_buffer_free", [tid_int], tid_void) fix_builtin_binding("byte_buffer_take_bytes", [tid_int], tid_bytes) diff --git a/self-host/ir_emitter_core.pith b/self-host/ir_emitter_core.pith index a8399afb..0d62c9c4 100644 --- a/self-host/ir_emitter_core.pith +++ b/self-host/ir_emitter_core.pith @@ -7586,7 +7586,7 @@ fn ir_append_lambda_bodies(): ir_builder_append_lines(bodies) fn ir_preseed_result_error_strings(): - builtin_names := "parse_int,file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,write_file,append_file,write_file_bytes,append_file_bytes,read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err,read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8".split(",") + builtin_names := "parse_int,file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,write_file,append_file,write_file_bytes,append_file_bytes,read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err,read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id".split(",") for builtin_name in builtin_names: ir_str(builtin_name + " failed") diff --git a/self-host/ir_metadata.pith b/self-host/ir_metadata.pith index f34eb999..71006c0b 100644 --- a/self-host/ir_metadata.pith +++ b/self-host/ir_metadata.pith @@ -4,7 +4,7 @@ FLOAT_RETURNING_FUNCS := "pow,sqrt,floor,ceil,round,to_float,get_float,float_fro BOOL_RETURNING_FUNCS := "file_exists,dir_exists,fs_remove_dir,fs_remove_tree,os_chdir,os_set_env,os_unset_env,get_bool,object_has,has,crypto_constant_time_eq,crypto_verify_ed25519,crypto_verify_ecdsa_p256_sha256_asn1,crypto_verify_ecdsa_p384_sha384_asn1,crypto_verify_rsa_pkcs1_sha256,crypto_verify_rsa_pkcs1_sha384,crypto_verify_rsa_pss_sha256,byte_buffer_set" INT_RETURNING_FUNCS := "abs,min,max,clamp,len,fnv1a,ord,exec,fs_file_size,byte_buffer_len,byte_buffer_get,crypto_x25519_keygen,crypto_p256_keygen,UInt,Int8,Int16,Int32,Int64,UInt8,UInt16,UInt32,UInt64,float_to_bits" STRING_RETURNING_FUNCS := "sha256,hex_encode,hex_decode,to_hex,b64_encode,chr,read_file,env,os_getcwd,os_temp_dir,os_home_dir,os_cert_roots_pem,scheme,host,query,fragment,decode,exec_output,type_of,get_string" -BYTES_RETURNING_FUNCS := "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +BYTES_RETURNING_FUNCS := "bytes_from_string_utf8,read_file_bytes,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,byte_buffer_bytes,b64_decode,from_hex,bytes_slice,bytes_concat,secure_random_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" LIST_RETURNING_FUNCS := "args,range,repeat_val,zeros,sort,sort_desc,reversed,take,drop,slice,unique,without,intersection,difference,flatten,chunks" LIST_STRING_RETURNING_FUNCS := "sort_strings,zip,enumerate,toml_keys" BOOL_RETURNING_METHODS := "contains,starts_with,ends_with,is_empty,string_contains,string_is_empty,contains_key,map_contains_key,map_contains_ikey,map_is_empty,set_contains,set_contains_int,set_is_empty,send,try_send,close,is_closed,is_done" @@ -17,7 +17,7 @@ STRING_RETURNING_METHODS := "trim,substring,to_upper,to_lower,reverse,replace,re RESULT_INT_FUNCS := "file_open_read,file_open_write,file_open_append,byte_buffer_write,byte_buffer_write_string_utf8,byte_buffer_write_byte,file_write,file_write_bytes,tcp_connect,tcp_listen,tcp_accept,tcp_write,tcp_write_bytes,process_spawn,process_spawn_argv,process_output_argv,process_write,process_write_bytes,crypto_x25519_keygen,crypto_p256_keygen" RESULT_BOOL_FUNCS := "write_file,append_file,write_file_bytes,append_file_bytes" RESULT_STRING_FUNCS := "read_file,exec_output,dns_resolve,bytes_to_string_utf8,bytes_substring_utf8,file_read,tcp_read,process_read,process_read_err" -RESULT_BYTES_FUNCS := "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8" +RESULT_BYTES_FUNCS := "read_file_bytes,b64_decode,from_hex,file_read_bytes,tcp_read_bytes,process_read_bytes,process_read_err_bytes,crypto_x25519_public_key,crypto_x25519_shared_secret,crypto_aes_128_gcm_seal,crypto_aes_128_gcm_open,crypto_chacha20_poly1305_seal,crypto_chacha20_poly1305_open,crypto_sign_rsa_pss_sha256_pkcs8,crypto_blake2b,crypto_argon2id" fn ir_csv_contains(csv: String, name: String) -> Bool: if name.len() == 0: diff --git a/std/crypto.pith b/std/crypto.pith index d5218bbb..e0b66571 100644 --- a/std/crypto.pith +++ b/std/crypto.pith @@ -1,9 +1,72 @@ -# std.crypto - practical cryptographic building blocks +# std.crypto - the standard library's cryptography, and where each piece lives # -# most code should use the submodules directly: -# `std.crypto.random`, `std.crypto.hmac`, `std.crypto.kdf`, -# `std.crypto.subtle`, `std.crypto.aead`, `std.crypto.ecdh`, -# `std.crypto.signature`, and `std.crypto.x509`. +# pith has no re-export, so importing this module hands you nothing; import the +# submodule you want directly, as `import std.crypto.password as password`. +# what this file is for is the moment before that, when you know you need a mac +# or a password hash and not yet which module holds it. +# +# ## storing and checking credentials +# +# `std.crypto.password` hashes passwords with argon2id and writes the result as +# a phc string, so the cost parameters travel with the hash. `hash` and +# `verify` are the whole story for most callers; `needs_rehash` is how you +# raise the parameters later without locking anyone out. +# +# `std.crypto.jwt` signs and verifies json web tokens. it can issue HS256, +# HS384, HS512 and PS256, and can verify those plus EdDSA, ES256 and RS256 from +# an outside issuer — the runtime has no ed25519, ecdsa or rsa pkcs#1 signer, +# so those three are verification only. every verifier names the algorithm it +# accepts rather than reading it off the token. +# +# ## keys, macs and randomness +# +# `std.crypto.random` is the os random source. use it for keys, nonces, salts +# and session ids; `std.rand` is the seedable one, for tests and simulations. +# +# `std.crypto.hmac` is hmac over sha-1, sha-256, sha-384 and sha-512, with +# constant-time verify helpers. +# +# `std.crypto.kdf` derives keys: hkdf for key material you already have, and +# pbkdf2 for legacy password hashes you are migrating off. new passwords go +# through `std.crypto.password`. +# +# `std.crypto.ecdh` is x25519 and p-256 key agreement, which is how tls gets to +# a shared secret. +# +# ## encrypting and authenticating messages +# +# `std.crypto.aead` is aes-128-gcm and chacha20-poly1305. both authenticate as +# well as encrypt, so a tampered ciphertext fails to open rather than +# decrypting to garbage. +# +# `std.crypto.signature` verifies ed25519, ecdsa p-256 and p-384, and rsa +# pkcs#1 and pss signatures, and signs with rsa-pss. +# +# `std.crypto.subtle` compares byte strings without an early return. anything +# that compares a secret — a mac, a password tag, a token signature — goes +# through it, and everything in std that compares one does. +# +# `std.crypto.x509` parses certificates and applies the hostname, validity and +# name-constraint checks tls needs. +# +# ## what is not here +# +# there is no asymmetric key generation beyond ecdh, no ed25519 or ecdsa +# signing, and no certificate issuance. unkeyed hashes live in `std.hash`, and +# base64, base32 and hex live in `std.encoding`. + +import std.algo as algo +import std.fs as fs +import std.strings as strings + +# the submodules the index above describes. the test below reads the directory +# and compares, so a new module cannot ship without a line in the index. +INDEXED := "aead,ecdh,hmac,jwt,kdf,password,random,signature,subtle,x509" + +test "the index covers every submodule that ships": + mut found: List[String] := [] + for entry in fs.list("std/crypto"): + if entry.ends_with(".pith"): + found.push(strings.remove_suffix(entry, ".pith")) -test "crypto root module loads": - assert(true) + assert_eq(algo.sort_strings(found).join(","), INDEXED) diff --git a/std/crypto/jwt.pith b/std/crypto/jwt.pith new file mode 100644 index 00000000..4efc2156 --- /dev/null +++ b/std/crypto/jwt.pith @@ -0,0 +1,575 @@ +# std.crypto.jwt - json web tokens over the jws compact serialization +# +# the signing and verification halves are deliberately not symmetric, because +# the runtime's primitives are not either. hmac and rsa-pss can sign; ed25519, +# ecdsa and rsa pkcs#1 can only verify. so a pith service can issue HS256, +# HS384, HS512 and PS256 tokens, and can validate those plus EdDSA, ES256 and +# RS256 tokens minted somewhere else. that asymmetry is in the function names: +# there is no `sign_rs256`, and there never silently was one. +# +# every verifier names the algorithm it will accept. the token's own `alg` +# header is only ever compared against that name, never used to pick the +# verification path, and `alg: none` is refused with no way to opt in. + +import std.bytes as bytes +import std.encoding as encoding +import std.json as json +import std.strings as strings +import std.time as time +import std.crypto.hmac as hmac +import std.crypto.signature as signature +import std.crypto.subtle as subtle + +# the algorithm names this module knows, spelled the way rfc 7518 spells them. +pub HS256 := "HS256" +pub HS384 := "HS384" +pub HS512 := "HS512" +pub PS256 := "PS256" +pub RS256 := "RS256" +pub ES256 := "ES256" +pub EDDSA := "EdDSA" + +# a compact jws is three dot-separated fields. asking for a few more splits +# than that means a token with extra fields comes back too long rather than +# quietly folding its tail into the signature. +MAX_FIELDS := 8 + +# tokens are credentials, not documents. anything past this is either not a +# token or an attempt to make the parser do work. +MAX_TOKEN_LEN := 8192 +MAX_HEADER_PARAMS := 16 +MAX_CLAIMS := 64 +MAX_AUDIENCE_ENTRIES := 32 + +# a p-256 signature carries r and s as 32 bytes each (rfc 7518 section 3.4). +P256_COORDINATE_LEN := 32 + +# what a verified token carries: the decoded header and claims, as the json +# text they were sent as. parse them with std.json — `json.decode_text[T]` if +# you have a struct for your claims, `json.parse` if you want handles. +pub struct Verified: + pub header: String + pub claims: String + +# how strictly to check the registered claims. `now` of zero means "read the +# clock"; set it to a unix timestamp to validate against a fixed instant. +# `leeway` is the clock skew allowed on every time comparison. an empty +# `audience`, `issuer` or `subject` means that claim is not checked. +pub struct Options: + pub now: Int + pub leeway: Int + pub check_exp: Bool + pub check_nbf: Bool + pub check_iat: Bool + pub require_exp: Bool + pub audience: String + pub issuer: String + pub subject: String + +# the defaults: check exp, nbf and iat, allow a minute of clock skew, and do +# not compare an audience, issuer or subject the caller has not named. +pub fn default_options() -> Options: + return Options(0, 60, true, true, true, false, "", "", "") + +# validate against a fixed unix timestamp instead of the system clock. +pub fn at_time(options: Options, unix_seconds: Int) -> Options: + return Options(unix_seconds, options.leeway, options.check_exp, options.check_nbf, options.check_iat, options.require_exp, options.audience, options.issuer, options.subject) + +# change how much clock skew the time comparisons tolerate, in seconds. +pub fn with_leeway(options: Options, seconds: Int) -> Options: + return Options(options.now, seconds, options.check_exp, options.check_nbf, options.check_iat, options.require_exp, options.audience, options.issuer, options.subject) + +# require the token's `aud` claim to name this audience. +pub fn with_audience(options: Options, audience: String) -> Options: + return Options(options.now, options.leeway, options.check_exp, options.check_nbf, options.check_iat, options.require_exp, audience, options.issuer, options.subject) + +# require the token's `iss` claim to be this issuer. +pub fn with_issuer(options: Options, issuer: String) -> Options: + return Options(options.now, options.leeway, options.check_exp, options.check_nbf, options.check_iat, options.require_exp, options.audience, issuer, options.subject) + +# require the token's `sub` claim to be this subject. +pub fn with_subject(options: Options, subject: String) -> Options: + return Options(options.now, options.leeway, options.check_exp, options.check_nbf, options.check_iat, options.require_exp, options.audience, options.issuer, subject) + +# refuse a token that carries no `exp` claim. tokens that never expire are a +# revocation problem, so this is worth turning on for anything long-lived. +pub fn requiring_exp(options: Options) -> Options: + return Options(options.now, options.leeway, options.check_exp, options.check_nbf, options.check_iat, true, options.audience, options.issuer, options.subject) + +# turn off the `exp`, `nbf` and `iat` comparisons. this is for replaying a +# fixed test vector, not for production traffic. +pub fn without_time_checks(options: Options) -> Options: + return Options(options.now, options.leeway, false, false, false, false, options.audience, options.issuer, options.subject) + +# the three fields of a compact token, plus the bytes the signature covers. +struct Parts: + header: String + signing_input: Bytes + payload_b64: String + signature: Bytes + +fn decode_b64url(text: String, what: String) -> Bytes!: + decoded := encoding.b64_url_raw_decode(text) + if decoded.is_err: + fail what + " is not valid base64url" + return decoded.ok + +fn decode_b64url_text(text: String, what: String) -> String!: + decoded := decode_b64url(text, what)! + utf8 := decoded.to_string_utf8() + if utf8.is_err: + fail what + " is not valid utf-8" + return utf8.ok + +# read the header's `alg`, refusing the shapes that have no business being +# verified at all. this never returns a value the caller then dispatches on — +# see `open_token`. +fn header_algorithm(header: String) -> String!: + scope := json.open_scope() + defer json.close_scope(scope) + + root := json.parse(header) + if json.type_of(root) != "object": + fail "token header is not a json object" + if json.object_keys(root).len() > MAX_HEADER_PARAMS: + fail "token header has too many parameters" + # rfc 7515 section 4.1.11: a verifier that does not understand every + # extension listed in `crit` has to reject the token rather than ignore it. + if json.object_has(root, "crit"): + fail "token header names a critical extension this verifier does not implement" + + alg_node := json.object_get(root, "alg") + if json.type_of(alg_node) != "string": + fail "token header has no alg" + alg := json.get_string(alg_node) + if alg.len() == 0 or strings.equals_ignore_case(alg, "none"): + fail "unsecured tokens (alg none) are never accepted" + return alg + +# split a compact token and confirm it claims to be the algorithm the caller +# asked for. the expected algorithm comes from the caller, and the header's +# `alg` is only ever compared against it. letting the token choose the +# verification path is the algorithm confusion bug: an attacker re-signs a +# token as HS256 using an rsa public key as the hmac secret, and a verifier +# that dispatches on the header hands them a valid token. +fn open_token(token: String, expected_alg: String) -> Parts!: + if token.len() == 0 or token.len() > MAX_TOKEN_LEN: + fail "token is empty or longer than " + MAX_TOKEN_LEN.to_string() + " bytes" + + fields := strings.split_n(token, ".", MAX_FIELDS) + if fields.len() != 3: + fail "a compact jws has three dot-separated fields" + if fields[0].len() == 0 or fields[1].len() == 0 or fields[2].len() == 0: + fail "a compact jws field is empty" + + header := decode_b64url_text(fields[0], "token header")! + alg := header_algorithm(header)! + if alg != expected_alg: + fail "token is signed with " + alg + ", expected " + expected_alg + + sig := decode_b64url(fields[2], "token signature")! + signing_input := bytes.from_string_utf8(fields[0] + "." + fields[1]) + return Parts(header, signing_input, fields[1], sig) + +fn require_signature(matched: Bool) -> Bool!: + if not matched: + fail "token signature does not verify" + return true + +# decode the payload and check the registered claims. everything up to here +# has already established that the signature is good, so a failure past this +# point is about the token's contents rather than its authenticity. +fn finish(parts: Parts, options: Options) -> Verified!: + claims := decode_b64url_text(parts.payload_b64, "token payload")! + check_claims(claims, options)! + return Verified(parts.header, claims) + +fn resolved_now(options: Options) -> Int: + if options.now > 0: + return options.now + return time.now() + +# read a numeric-date claim. rfc 7519 allows a fraction of a second, which +# nothing that matters here cares about, so a float is floored. +fn numeric_claim(root: Int, name: String) -> Int!: + node := json.object_get(root, name) + kind := json.type_of(node) + if kind == "int": + return json.get_int(node) + if kind == "float": + return floor(json.get_float(node)).to_int() + fail "the " + name + " claim is not a number" + +fn audience_matches(root: Int, wanted: String) -> Bool!: + node := json.object_get(root, "aud") + kind := json.type_of(node) + if kind == "string": + return json.get_string(node) == wanted + if kind != "array": + fail "token has no aud claim" + count := json.array_len(node) + if count > MAX_AUDIENCE_ENTRIES: + fail "token audience list is too long" + mut i := 0 + while i < count: + if json.get_string(json.array_get(node, i)) == wanted: + return true + i = i + 1 + return false + +fn check_claims(claims: String, options: Options) -> Bool!: + scope := json.open_scope() + defer json.close_scope(scope) + + root := json.parse(claims) + if json.type_of(root) != "object": + fail "token payload is not a json object" + if json.object_keys(root).len() > MAX_CLAIMS: + fail "token payload has too many claims" + + now := resolved_now(options) + has_exp := json.object_has(root, "exp") + if options.require_exp and not has_exp: + fail "token has no exp claim" + if options.check_exp and has_exp: + exp := numeric_claim(root, "exp")! + if now > exp + options.leeway: + fail "token expired" + if options.check_nbf and json.object_has(root, "nbf"): + nbf := numeric_claim(root, "nbf")! + if now + options.leeway < nbf: + fail "token is not valid yet" + if options.check_iat and json.object_has(root, "iat"): + iat := numeric_claim(root, "iat")! + if now + options.leeway < iat: + fail "token was issued in the future" + + if options.issuer.len() > 0 and json.object_get_string(root, "iss") != options.issuer: + fail "token issuer does not match" + if options.subject.len() > 0 and json.object_get_string(root, "sub") != options.subject: + fail "token subject does not match" + if options.audience.len() > 0 and not audience_matches(root, options.audience)!: + fail "token audience does not match" + return true + +# check that a claims document is an object of a sane size before signing it. +# minting a token nobody can verify is a bug worth catching at the source. +fn check_claims_document(claims: String) -> Bool!: + if claims.len() == 0 or claims.len() > MAX_TOKEN_LEN: + fail "claims json is empty or longer than " + MAX_TOKEN_LEN.to_string() + " bytes" + scope := json.open_scope() + defer json.close_scope(scope) + root := json.parse(claims) + if json.type_of(root) != "object": + fail "claims json is not an object" + if json.object_keys(root).len() > MAX_CLAIMS: + fail "claims json has too many claims" + return true + +# the two encoded fields the signature covers. the header is a fixed string +# per algorithm, so there is nothing to escape. the doubled braces are pith's +# escape for a literal brace in a string, which is otherwise the start of an +# interpolation; the json in this file is written that way throughout. +fn signing_input(alg: String, claims: String) -> String!: + check_claims_document(claims)! + header := "{{\"alg\":\"" + alg + "\",\"typ\":\"JWT\"}}" + return encoding.b64_url_raw_encode(bytes.from_string_utf8(header)) + "." + encoding.b64_url_raw_encode(bytes.from_string_utf8(claims)) + +fn assemble(unsigned: String, sig: Bytes) -> String: + return unsigned + "." + encoding.b64_url_raw_encode(sig) + +# sign a claims object with hmac-sha256 and return a compact token. +pub fn sign_hs256(claims: String, secret: Bytes) -> String!: + unsigned := signing_input(HS256, claims)! + return assemble(unsigned, hmac.sha256(secret, bytes.from_string_utf8(unsigned))) + +# sign a claims object with hmac-sha384 and return a compact token. +pub fn sign_hs384(claims: String, secret: Bytes) -> String!: + unsigned := signing_input(HS384, claims)! + return assemble(unsigned, hmac.sha384(secret, bytes.from_string_utf8(unsigned))) + +# sign a claims object with hmac-sha512 and return a compact token. +pub fn sign_hs512(claims: String, secret: Bytes) -> String!: + unsigned := signing_input(HS512, claims)! + return assemble(unsigned, hmac.sha512(secret, bytes.from_string_utf8(unsigned))) + +# sign a claims object with rsa-pss and sha-256, given a pkcs#8 private key. +# this is the only asymmetric algorithm pith can issue. +pub fn sign_ps256(claims: String, pkcs8_private_key: Bytes) -> String!: + unsigned := signing_input(PS256, claims)! + sig := signature.sign_rsa_pss_sha256_pkcs8(pkcs8_private_key, bytes.from_string_utf8(unsigned))! + return assemble(unsigned, sig) + +# verify an HS256 token. a token that names any other algorithm is rejected +# before its signature is looked at. +pub fn verify_hs256(token: String, secret: Bytes, options: Options) -> Verified!: + parts := open_token(token, HS256)! + require_signature(subtle.equal(hmac.sha256(secret, parts.signing_input), parts.signature))! + return finish(parts, options)! + +# verify an HS384 token. +pub fn verify_hs384(token: String, secret: Bytes, options: Options) -> Verified!: + parts := open_token(token, HS384)! + require_signature(subtle.equal(hmac.sha384(secret, parts.signing_input), parts.signature))! + return finish(parts, options)! + +# verify an HS512 token. +pub fn verify_hs512(token: String, secret: Bytes, options: Options) -> Verified!: + parts := open_token(token, HS512)! + require_signature(subtle.equal(hmac.sha512(secret, parts.signing_input), parts.signature))! + return finish(parts, options)! + +# verify a PS256 token. `public_key` is the pkcs#1 rsapublickey der, which is +# what `std.crypto.x509` hands back as a certificate's subject public key. +pub fn verify_ps256(token: String, public_key: Bytes, options: Options) -> Verified!: + parts := open_token(token, PS256)! + require_signature(signature.verify_rsa_pss_sha256(public_key, parts.signing_input, parts.signature))! + return finish(parts, options)! + +# verify an RS256 token issued elsewhere. `public_key` is the pkcs#1 +# rsapublickey der. pith cannot issue RS256: the runtime has no pkcs#1 signer. +pub fn verify_rs256(token: String, public_key: Bytes, options: Options) -> Verified!: + parts := open_token(token, RS256)! + require_signature(signature.verify_rsa_pkcs1_sha256(public_key, parts.signing_input, parts.signature))! + return finish(parts, options)! + +# verify an EdDSA (ed25519) token issued elsewhere. `public_key` is the raw 32 +# byte key. pith cannot issue EdDSA: the runtime has no ed25519 signer. +pub fn verify_eddsa(token: String, public_key: Bytes, options: Options) -> Verified!: + parts := open_token(token, EDDSA)! + require_signature(signature.verify_ed25519(public_key, parts.signing_input, parts.signature))! + return finish(parts, options)! + +# one asn.1 der INTEGER holding a big-endian unsigned value. der wants the +# shortest form, and a leading bit of 1 would read as negative, so a zero byte +# goes in front of it. +fn der_unsigned_integer(value: Bytes) -> Bytes: + mut start := 0 + while start + 1 < value.len() and value[start] == 0: + start = start + 1 + body := value.slice(start, value.len()) + pad := body[0] >= 128 + + out := bytes.buffer_with_capacity(body.len() + 3) + defer out.free() + out.write_byte(2) catch 0 + if pad: + out.write_byte(body.len() + 1) catch 0 + out.write_byte(0) catch 0 + else: + out.write_byte(body.len()) catch 0 + out.write(body) catch 0 + return out.bytes() + +# jws carries an ecdsa signature as r and s glued together at a fixed width +# (rfc 7518 section 3.4); the runtime verifier reads the asn.1 der encoding, so +# the two have to be re-wrapped. +fn ecdsa_der_signature(raw: Bytes, half: Int) -> Bytes!: + if raw.len() != half * 2: + fail "an ecdsa jws signature must be " + (half * 2).to_string() + " bytes" + body := der_unsigned_integer(raw.slice(0, half)).concat(der_unsigned_integer(raw.slice(half, raw.len()))) + # two p-256 integers never reach the 128 bytes that would need der's long + # length form, so the single-byte length below is always enough. + if body.len() > 127: + fail "ecdsa signature is out of range" + + out := bytes.buffer_with_capacity(body.len() + 2) + defer out.free() + out.write_byte(48) catch 0 + out.write_byte(body.len()) catch 0 + out.write(body) catch 0 + return out.bytes() + +# verify an ES256 token issued elsewhere. `public_key` is the uncompressed +# p-256 point: 0x04 followed by x and y. pith cannot issue ES256: the runtime +# has no ecdsa signer. +pub fn verify_es256(token: String, public_key: Bytes, options: Options) -> Verified!: + parts := open_token(token, ES256)! + der := ecdsa_der_signature(parts.signature, P256_COORDINATE_LEN)! + require_signature(signature.verify_ecdsa_p256_sha256_asn1(public_key, parts.signing_input, der))! + return finish(parts, options)! + +# rfc 7515 appendix a.1: an HS256 token, its key, and the exact compact +# serialization, all written by someone else. a token that only round trips +# against this module would prove nothing about interoperating with anyone. +RFC7515_A1_TOKEN := "eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk" +RFC7515_A1_KEY := "AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow" + +# rfc 7515 appendix a.3: the same claims signed with ES256, and the p-256 +# public key as its two jwk coordinates. +RFC7515_A3_TOKEN := "eyJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q" +RFC7515_A3_X := "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU" +RFC7515_A3_Y := "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0" + +# the appendix tokens expire in 2011, so the tests read the clock from a +# moment when they were still good. +RFC7515_INSTANT := 1300819000 + +fn rfc7515_options() -> Options: + return at_time(default_options(), RFC7515_INSTANT) + +fn secret() -> Bytes: + return bytes.from_string_utf8("a shared secret nobody else knows") + +test "hs256 verifies the rfc 7515 appendix a.1 vector": + key := encoding.b64_url_raw_decode(RFC7515_A1_KEY)! + verified := verify_hs256(RFC7515_A1_TOKEN, key, rfc7515_options())! + + assert(verified.claims.contains("\"iss\":\"joe\"")) + assert(verified.header.contains("HS256")) + assert(verify_hs256(RFC7515_A1_TOKEN, bytes.from_string_utf8("wrong"), rfc7515_options()).is_err) + +test "es256 verifies the rfc 7515 appendix a.3 vector": + x := encoding.b64_url_raw_decode(RFC7515_A3_X)! + y := encoding.b64_url_raw_decode(RFC7515_A3_Y)! + public_key := bytes.from_string_utf8(chr(4)).concat(x).concat(y) + verified := verify_es256(RFC7515_A3_TOKEN, public_key, rfc7515_options())! + + assert(verified.claims.contains("\"iss\":\"joe\"")) + assert(verify_es256(RFC7515_A3_TOKEN, public_key.slice(0, 64), rfc7515_options()).is_err) + +test "hmac tokens round trip at every digest size": + claims := "{{\"sub\":\"u-1\",\"iss\":\"pith\"}}" + options := without_time_checks(default_options()) + + assert_eq(verify_hs256(sign_hs256(claims, secret())!, secret(), options)!.claims, claims) + assert_eq(verify_hs384(sign_hs384(claims, secret())!, secret(), options)!.claims, claims) + assert_eq(verify_hs512(sign_hs512(claims, secret())!, secret(), options)!.claims, claims) + +test "a verifier only accepts the algorithm it was asked for": + claims := "{{\"sub\":\"u-1\"}}" + token := sign_hs256(claims, secret())! + options := without_time_checks(default_options()) + + # the header says HS256, so every other verifier refuses it — including the + # asymmetric ones an attacker would aim a re-signed token at. + assert(verify_hs384(token, secret(), options).is_err) + assert(verify_hs512(token, secret(), options).is_err) + assert(verify_rs256(token, secret(), options).is_err) + assert(verify_ps256(token, secret(), options).is_err) + assert(verify_es256(token, secret(), options).is_err) + assert(verify_eddsa(token, secret(), options).is_err) + +test "an algorithm confusion attempt is refused": + # the attack: take a token meant for an rsa verifier, re-sign it as HS256 + # with the rsa public key as the hmac secret, and hand it to a verifier + # that picks its algorithm from the header. every verifier here names its + # own algorithm, so the re-signed token never reaches the rsa path. + public_key := bytes.from_string_utf8("-----BEGIN PUBLIC KEY----- pretend this is rsa") + forged := sign_hs256("{{\"sub\":\"admin\"}}", public_key)! + options := without_time_checks(default_options()) + + assert(verify_rs256(forged, public_key, options).is_err) + assert(verify_ps256(forged, public_key, options).is_err) + # it is a perfectly good HS256 token; it is simply not an rsa one. + assert(verify_hs256(forged, public_key, options).is_ok) + +test "an alg none token is rejected": + header := encoding.b64_url_raw_encode(bytes.from_string_utf8("{{\"alg\":\"none\",\"typ\":\"JWT\"}}")) + payload := encoding.b64_url_raw_encode(bytes.from_string_utf8("{{\"sub\":\"admin\"}}")) + options := without_time_checks(default_options()) + + # unsigned, and with a signature field bolted on, and spelled to dodge a + # case-sensitive check. + assert(verify_hs256(header + "." + payload + ".", secret(), options).is_err) + assert(verify_hs256(header + "." + payload + ".AAAA", secret(), options).is_err) + upper := encoding.b64_url_raw_encode(bytes.from_string_utf8("{{\"alg\":\"NONE\"}}")) + assert(verify_hs256(upper + "." + payload + ".AAAA", secret(), options).is_err) + +test "a tampered token does not verify": + token := sign_hs256("{{\"sub\":\"u-1\"}}", secret())! + options := without_time_checks(default_options()) + cut := token.len() - 1 + mut last := "A" + if token[cut] == "A": + last = "B" + + swapped_signature := token.substring(0, cut) + last + fields := strings.split_n(token, ".", MAX_FIELDS) + forged_claims := encoding.b64_url_raw_encode(bytes.from_string_utf8("{{\"sub\":\"admin\"}}")) + swapped_payload := fields[0] + "." + forged_claims + "." + fields[2] + + assert(verify_hs256(swapped_signature, secret(), options).is_err) + assert(verify_hs256(swapped_payload, secret(), options).is_err) + +test "expiry, not-before and issued-at are checked": + issued := 1_700_000_000 + fresh := sign_hs256("{{\"exp\":1700000600,\"iat\":1700000000}}", secret())! + future := sign_hs256("{{\"nbf\":1700000600,\"exp\":1700001200}}", secret())! + + assert(verify_hs256(fresh, secret(), at_time(default_options(), issued + 60)).is_ok) + assert(verify_hs256(fresh, secret(), at_time(default_options(), issued + 6000)).is_err) + assert(verify_hs256(future, secret(), at_time(default_options(), issued)).is_err) + assert(verify_hs256(future, secret(), at_time(default_options(), issued + 600)).is_ok) + # a token dated well into the future is refused, and the leeway is what + # decides "well into". + ahead := sign_hs256("{{\"iat\":1700000600}}", secret())! + assert(verify_hs256(ahead, secret(), at_time(without_time_checks(default_options()), issued)).is_ok) + assert(verify_hs256(ahead, secret(), at_time(default_options(), issued)).is_err) + assert(verify_hs256(ahead, secret(), with_leeway(at_time(default_options(), issued), 3600)).is_ok) + +test "a missing exp is only fatal when required": + token := sign_hs256("{{\"sub\":\"u-1\"}}", secret())! + options := at_time(default_options(), 1_700_000_000) + + assert(verify_hs256(token, secret(), options).is_ok) + assert(verify_hs256(token, secret(), requiring_exp(options)).is_err) + +test "audience, issuer and subject are compared when asked for": + token := sign_hs256("{{\"iss\":\"pith\",\"sub\":\"u-1\",\"aud\":\"chat\"}}", secret())! + listed := sign_hs256("{{\"aud\":[\"web\",\"chat\"]}}", secret())! + options := without_time_checks(default_options()) + + assert(verify_hs256(token, secret(), with_audience(options, "chat")).is_ok) + assert(verify_hs256(token, secret(), with_audience(options, "billing")).is_err) + assert(verify_hs256(token, secret(), with_issuer(options, "pith")).is_ok) + assert(verify_hs256(token, secret(), with_issuer(options, "somebody-else")).is_err) + assert(verify_hs256(token, secret(), with_subject(options, "u-1")).is_ok) + assert(verify_hs256(token, secret(), with_subject(options, "u-2")).is_err) + assert(verify_hs256(listed, secret(), with_audience(options, "chat")).is_ok) + assert(verify_hs256(listed, secret(), with_audience(options, "admin")).is_err) + +test "malformed tokens fail cleanly": + options := without_time_checks(default_options()) + + assert(verify_hs256("", secret(), options).is_err) + assert(verify_hs256("not-a-token", secret(), options).is_err) + assert(verify_hs256("a.b", secret(), options).is_err) + assert(verify_hs256("a.b.c.d", secret(), options).is_err) + # a header that is not base64url, then one that is not json, then one that + # is json but not an object. + assert(verify_hs256("!!!.aaaa.bbbb", secret(), options).is_err) + not_json := encoding.b64_url_raw_encode(bytes.from_string_utf8("{{oh no")) + assert(verify_hs256(not_json + ".aaaa.bbbb", secret(), options).is_err) + array_header := encoding.b64_url_raw_encode(bytes.from_string_utf8("[\"HS256\"]")) + assert(verify_hs256(array_header + ".aaaa.bbbb", secret(), options).is_err) + +test "a signed token with a malformed payload fails after the signature": + # the signature is genuine, so these exercise the payload path rather than + # the signature one. + unsigned := encoding.b64_url_raw_encode(bytes.from_string_utf8("{{\"alg\":\"HS256\",\"typ\":\"JWT\"}}")) + "." + encoding.b64_url_raw_encode(bytes.from_string_utf8("nope, not json")) + mac := hmac.sha256(secret(), bytes.from_string_utf8(unsigned)) + token := unsigned + "." + encoding.b64_url_raw_encode(mac) + + assert(verify_hs256(token, secret(), without_time_checks(default_options())).is_err) + +test "signing refuses claims that are not a bounded json object": + assert(sign_hs256("", secret()).is_err) + assert(sign_hs256("not json", secret()).is_err) + assert(sign_hs256("[1,2,3]", secret()).is_err) + + mut big := "{{" + mut i := 0 + while i <= MAX_CLAIMS: + if i > 0: + big = big + "," + big = big + "\"k" + i.to_string() + "\":1" + i = i + 1 + assert(sign_hs256(big + "}}", secret()).is_err) + +test "an oversized token is refused before it is parsed": + long_claims := "{{\"pad\":\"" + "x".repeat(MAX_TOKEN_LEN) + "\"}}" + options := without_time_checks(default_options()) + + assert(sign_hs256(long_claims, secret()).is_err) + assert(verify_hs256("a.b." + "c".repeat(MAX_TOKEN_LEN), secret(), options).is_err) diff --git a/std/crypto/password.pith b/std/crypto/password.pith new file mode 100644 index 00000000..af39c526 --- /dev/null +++ b/std/crypto/password.pith @@ -0,0 +1,300 @@ +# std.crypto.password - argon2id password hashing +# +# `hash` turns a password into a self-describing phc string and `verify` checks +# one. the cost parameters travel inside the encoded hash, so a stored hash +# stays verifiable after you raise them and `needs_rehash` tells you which +# stored hashes are due for an upgrade. + +import std.bytes as bytes +import std.encoding as encoding +import std.strings as strings +import std.crypto.random as random +import std.crypto.subtle as subtle + +# the argon2 variant and version this module writes and accepts. argon2id is +# the variant rfc 9106 recommends when you have no reason to pick another, and +# 19 is argon2 1.3, the only version worth writing today. +ALGORITHM := "argon2id" +VERSION := 19 + +# owasp's argon2id parameters as of 2024: 19 mib of memory, two passes, one +# lane. that measures around 30 ms per hash on a modest core, which is the +# point — high enough to make offline cracking expensive, low enough that a +# login endpoint under load is not attacking itself. rfc 9106's other option, +# 64 mib over three passes and four lanes, measures around 230 ms here — the +# runtime derives single-threaded, so the lanes cost time rather than saving +# it, and an endpoint spending that per attempt is its own denial of service. +pub DEFAULT_MEMORY_KIB := 19456 +pub DEFAULT_PASSES := 2 +pub DEFAULT_LANES := 1 +pub DEFAULT_SALT_LEN := 16 +pub DEFAULT_TAG_LEN := 32 + +# the runtime refuses more than a gibibyte of argon2 memory, and there is no +# reason for a password hash to be longer than a hash function's output. +MAX_MEMORY_KIB := 1048576 +MAX_PASSES := 4294967295 +MAX_LANES := 16777215 +MAX_SALT_LEN := 1024 +MAX_TAG_LEN := 1024 +MIN_SALT_LEN := 8 +MIN_TAG_LEN := 16 + +# an encoded hash is a short, fixed-shape string. anything much longer than the +# defaults produce is not a phc string we wrote, and parsing it is wasted work. +MAX_ENCODED_LEN := 512 + +# a password long enough to matter is long enough. the cap keeps a single +# request from feeding megabytes into the hash. +MAX_PASSWORD_LEN := 4096 + +# enough splits to see every field of a well-formed phc string and a few more, +# so a string with extra fields comes back too long instead of silently +# collapsing its tail into the last one. +MAX_FIELDS := 16 + +# argon2id cost parameters, plus the salt and tag lengths `hash` should use. +pub struct Params: + pub memory_kib: Int + pub passes: Int + pub lanes: Int + pub salt_len: Int + pub tag_len: Int + +# the recommended parameters. use these unless you have measured something. +pub fn default_params() -> Params: + return Params(DEFAULT_MEMORY_KIB, DEFAULT_PASSES, DEFAULT_LANES, DEFAULT_SALT_LEN, DEFAULT_TAG_LEN) + +# build cost parameters with the default salt and tag lengths. memory is in +# kibibytes, `passes` is argon2's time cost and `lanes` its parallelism. +pub fn params(memory_kib: Int, passes: Int, lanes: Int) -> Params: + return Params(memory_kib, passes, lanes, DEFAULT_SALT_LEN, DEFAULT_TAG_LEN) + +# build cost parameters and choose the salt and tag lengths too. +pub fn params_with_lengths(memory_kib: Int, passes: Int, lanes: Int, salt_len: Int, tag_len: Int) -> Params: + return Params(memory_kib, passes, lanes, salt_len, tag_len) + +fn check_params(p: Params) -> Bool!: + if p.passes < 1 or p.passes > MAX_PASSES: + fail "argon2id passes must be between 1 and " + MAX_PASSES.to_string() + if p.lanes < 1 or p.lanes > MAX_LANES: + fail "argon2id lanes must be between 1 and " + MAX_LANES.to_string() + if p.memory_kib < 8 * p.lanes: + fail "argon2id memory must be at least 8 kib per lane" + if p.memory_kib > MAX_MEMORY_KIB: + fail "argon2id memory must be at most " + MAX_MEMORY_KIB.to_string() + " kib" + if p.salt_len < MIN_SALT_LEN or p.salt_len > MAX_SALT_LEN: + fail "argon2id salt must be between " + MIN_SALT_LEN.to_string() + " and " + MAX_SALT_LEN.to_string() + " bytes" + if p.tag_len < MIN_TAG_LEN or p.tag_len > MAX_TAG_LEN: + fail "argon2id tag must be between " + MIN_TAG_LEN.to_string() + " and " + MAX_TAG_LEN.to_string() + " bytes" + return true + +# a decoded phc string: the parameters it names plus the salt and tag it holds. +struct Decoded: + params: Params + salt: Bytes + tag: Bytes + +# phc strings use the standard base64 alphabet with the padding left off. +fn phc_encode(data: Bytes) -> String: + return encoding.b64_raw_encode(data) + +fn phc_decode(text: String) -> Bytes!: + return encoding.b64_raw_decode(text)! + +# parse a bare non-negative decimal. `parse_int` accepts signs and would let +# `m=-1` through as a number we then have to re-reject. +fn parse_count(text: String) -> Int!: + if text.len() == 0 or text.len() > 10: + fail "expected a decimal number" + mut value := 0 + mut i := 0 + while i < text.len(): + digit := ord(text[i]) - 48 + if digit < 0 or digit > 9: + fail "expected a decimal number" + value = value * 10 + digit + i = i + 1 + return value + +# read one `key=value` field and return the value, checking the key first. +fn field_value(field: String, key: String) -> Int!: + prefix := key + "=" + if not field.starts_with(prefix): + fail "expected the " + key + " parameter" + return parse_count(field.substring(prefix.len(), field.len()))! + +fn parse_decoded(encoded: String) -> Decoded!: + if encoded.len() == 0 or encoded.len() > MAX_ENCODED_LEN: + fail "malformed password hash" + # a phc string is defined by its field positions, so the empty fields have + # to survive the split — `split_n` keeps them where the built-in `split` + # drops them. a leading separator means the first field is always empty: + # "", variant, version, parameters, salt, tag. + parts := strings.split_n(encoded, "$", MAX_FIELDS) + if parts.len() != 6 or parts[0].len() != 0: + fail "malformed password hash" + if parts[1] != ALGORITHM: + fail "unsupported password hash algorithm: " + parts[1] + version := field_value(parts[2], "v")! + if version != VERSION: + fail "unsupported argon2 version: " + version.to_string() + + cost := strings.split_n(parts[3], ",", MAX_FIELDS) + if cost.len() != 3: + fail "malformed argon2id parameters" + memory_kib := field_value(cost[0], "m")! + passes := field_value(cost[1], "t")! + lanes := field_value(cost[2], "p")! + + salt := phc_decode(parts[4])! + tag := phc_decode(parts[5])! + p := Params(memory_kib, passes, lanes, salt.len(), tag.len()) + check_params(p)! + return Decoded(p, salt, tag) + +fn encode_phc(p: Params, salt: Bytes, tag: Bytes) -> String: + header := "$" + ALGORITHM + "$v=" + VERSION.to_string() + cost := "$m=" + p.memory_kib.to_string() + ",t=" + p.passes.to_string() + ",p=" + p.lanes.to_string() + return header + cost + "$" + phc_encode(salt) + "$" + phc_encode(tag) + +fn derive(password: String, salt: Bytes, p: Params) -> Bytes!: + if password.len() > MAX_PASSWORD_LEN: + fail "password is longer than " + MAX_PASSWORD_LEN.to_string() + " bytes" + return crypto_argon2id(bytes.from_string_utf8(password), salt, p.passes, p.memory_kib, p.lanes, p.tag_len)! + +# hash a password with the recommended parameters and return a phc string. +pub fn hash(password: String) -> String!: + return hash_with(password, default_params())! + +# hash a password with the given parameters and return a phc string. the salt +# is fresh os randomness on every call, so hashing the same password twice +# gives two different strings. +pub fn hash_with(password: String, p: Params) -> String!: + check_params(p)! + salt := random.bytes(p.salt_len)! + tag := derive(password, salt, p)! + return encode_phc(p, salt, tag) + +fn verify_parsed(password: String, encoded: String) -> Bool!: + decoded := parse_decoded(encoded)! + tag := derive(password, decoded.salt, decoded.params)! + return subtle.equal(tag, decoded.tag) + +# check a password against a phc string. a malformed or unsupported hash is a +# failed verification rather than an error, so a caller cannot accidentally +# treat "we could not parse this" as "the password was right". +pub fn verify(password: String, encoded: String) -> Bool: + return verify_parsed(password, encoded) catch false + +# read the parameters out of a phc string. the salt and tag lengths come from +# the string's own salt and tag. +pub fn parse_params(encoded: String) -> Params!: + decoded := parse_decoded(encoded)! + return decoded.params + +fn is_weaker(encoded: String, want: Params) -> Bool!: + stored := parse_params(encoded)! + if stored.memory_kib < want.memory_kib: + return true + if stored.passes < want.passes: + return true + if stored.lanes < want.lanes: + return true + if stored.salt_len < want.salt_len: + return true + return stored.tag_len < want.tag_len + +# report whether a stored hash was made with weaker parameters than `want`, so +# a server can re-hash it the next time the password is verified. a hash it +# cannot parse also needs replacing. +pub fn needs_rehash(encoded: String, want: Params) -> Bool: + return is_weaker(encoded, want) catch true + +# the tests below use parameters far under the defaults. correctness of the +# encoding and the comparison does not depend on the cost, and running the real +# 19 mib parameters once per assertion would make the suite crawl. +fn cheap() -> Params: + return params_with_lengths(64, 1, 1, 8, 16) + +test "hash and verify round trip": + encoded := hash_with("correct horse battery staple", cheap())! + + assert(encoded.starts_with("$argon2id$v=19$m=64,t=1,p=1$")) + assert(verify("correct horse battery staple", encoded)) + assert(not verify("correct horse battery stapl", encoded)) + assert(not verify("", encoded)) + +test "each hash gets a fresh salt": + first := hash_with("same password", cheap())! + second := hash_with("same password", cheap())! + + assert(first != second) + assert(verify("same password", first)) + assert(verify("same password", second)) + +test "parameters survive the encoding": + encoded := hash_with("pw", params_with_lengths(128, 3, 2, 16, 32))! + parsed := parse_params(encoded)! + + assert_eq(parsed.memory_kib, 128) + assert_eq(parsed.passes, 3) + assert_eq(parsed.lanes, 2) + assert_eq(parsed.salt_len, 16) + assert_eq(parsed.tag_len, 32) + +test "a tampered hash does not verify": + encoded := hash_with("pw", cheap())! + fields := encoded.split("$") + + # tamper the FIRST character of a field, never the last. a 16-byte hash + # base64-encodes to 22 characters whose final one carries two meaningful + # bits and four spare ones, so several different characters there decode + # to the same bytes and the "tampered" string verifies just fine. + assert(not verify("pw", replace_first_char(encoded, fields[fields.len() - 1]))) + assert(not verify("pw", replace_first_char(encoded, fields[fields.len() - 2]))) + +# rebuild `encoded` with the first character of `field` changed to something else. +fn replace_first_char(encoded: String, field: String) -> String: + mut swapped := "a" + if field[0] == "a": + swapped = "b" + altered := swapped + field.substring(1, field.len()) + return strings.replace_n(encoded, "$" + field, "$" + altered, 1) + +test "needs_rehash points at the weaker side": + cheaper := hash_with("pw", params_with_lengths(64, 1, 1, 8, 16))! + stronger := hash_with("pw", params_with_lengths(128, 2, 1, 16, 32))! + + assert(needs_rehash(cheaper, params_with_lengths(128, 2, 1, 16, 32))) + assert(not needs_rehash(stronger, params_with_lengths(64, 1, 1, 8, 16))) + assert(not needs_rehash(cheaper, params_with_lengths(64, 1, 1, 8, 16))) + assert(needs_rehash("not a hash at all", cheap())) + +test "malformed phc strings fail cleanly": + assert(not verify("pw", "")) + assert(not verify("pw", "$argon2id$v=19$m=64,t=1,p=1$c2FsdHNhbHQ")) + assert(not verify("pw", "$argon2d$v=19$m=64,t=1,p=1$c2FsdHNhbHQ$AAAAAAAAAAAAAAAAAAAAAA")) + assert(not verify("pw", "$argon2id$v=16$m=64,t=1,p=1$c2FsdHNhbHQ$AAAAAAAAAAAAAAAAAAAAAA")) + assert(not verify("pw", "$argon2id$v=19$m=64,t=1$c2FsdHNhbHQ$AAAAAAAAAAAAAAAAAAAAAA")) + assert(not verify("pw", "$argon2id$v=19$m=-64,t=1,p=1$c2FsdHNhbHQ$AAAAAAAAAAAAAAAAAAAAAA")) + assert(not verify("pw", "$argon2id$v=19$m=64,t=1,p=1$!!!!!!!!$AAAAAAAAAAAAAAAAAAAAAA")) + assert(not verify("pw", "$argon2id$v=19$m=64,t=1,p=1$c2FsdA$AAAAAAAAAAAAAAAAAAAAAA")) + assert(parse_params("garbage").is_err) + +test "invalid parameters are refused before hashing": + assert(hash_with("pw", params_with_lengths(64, 0, 1, 8, 16)).is_err) + assert(hash_with("pw", params_with_lengths(4, 1, 1, 8, 16)).is_err) + assert(hash_with("pw", params_with_lengths(64, 1, 0, 8, 16)).is_err) + assert(hash_with("pw", params_with_lengths(64, 1, 1, 4, 16)).is_err) + assert(hash_with("pw", params_with_lengths(64, 1, 1, 8, 4)).is_err) + assert(hash_with("pw", params_with_lengths(2097152, 1, 1, 8, 16)).is_err) + +test "default parameters are the recommended ones": + p := default_params() + + assert_eq(p.memory_kib, 19456) + assert_eq(p.passes, 2) + assert_eq(p.lanes, 1) + assert_eq(p.salt_len, 16) + assert_eq(p.tag_len, 32) diff --git a/std/encoding.pith b/std/encoding.pith index 5bf610e8..b4dba9d1 100644 --- a/std/encoding.pith +++ b/std/encoding.pith @@ -107,6 +107,7 @@ fn b64_decode_with(input: String, table: String, padded: Bool, ignore_ws: Bool) text = append_padding(text, 4) buf := bytes.buffer_with_capacity(text.len()) + defer buf.free() mut i := 0 while i < text.len(): a := table_char_val(text[i], table) @@ -229,6 +230,7 @@ fn b32_decode_with(input: String, table: String, padded: Bool, ignore_ws: Bool) fail "invalid base32 padding" buf := bytes.buffer_with_capacity(text.len()) + defer buf.free() mut buffer := 0 mut bits_left := 0 mut seen_pad := false @@ -350,6 +352,7 @@ pub fn base58_decode(input: String) -> Bytes!: i = i + 1 out := bytes.buffer_with_capacity(zeroes + digits.len()) + defer out.free() i = 0 while i < zeroes: out.write_byte(0) @@ -431,6 +434,7 @@ pub fn varint_encode(value: Int) -> Bytes!: if value < 0: fail "varint value must be non-negative" out := bytes.buffer() + defer out.free() mut remaining := value while true: mut byte_value := bits.band(remaining, 127) diff --git a/tests/cases/test_jwt_asymmetric.pith b/tests/cases/test_jwt_asymmetric.pith new file mode 100644 index 00000000..ceeb163a --- /dev/null +++ b/tests/cases/test_jwt_asymmetric.pith @@ -0,0 +1,51 @@ +# jwt against keys and tokens that came from somewhere else. +# +# the RS256 and EdDSA tokens below were signed with openssl, so verifying them +# says the compact serialization and the signing input agree with another +# implementation and not only with this module. PS256 is a round trip instead, +# because rsa-pss is the one asymmetric algorithm pith can sign with. + +import std.encoding as encoding +import std.crypto.jwt as jwt +import std.crypto.x509 as x509 + +# signed with tests/live/fixtures/localhost.key. +RS256_TOKEN := "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJleHRlcm5hbC1pc3N1ZXIiLCJzdWIiOiJ1LTQyIiwiYXVkIjoiY2hhdCIsImV4cCI6MTkwMDAwMDAwMH0.PUnc4hVzxTmUdMsqUeg1cOiFjNal3YkpWIin1I9So4W6rhCpJWINCG1nuxmkk-DknncDj6YmJQlvsp_bnyZ7AVd_XTI1JPQPublSn5g1IdkmsSincob7rOhcYePFtpvkHP8v7YsMIT3OZOWnW3V4S4gXXXso8gRB1ZXiOLyfPjEK9oGA6DJO2xSkq2gpAmYtHJTYgwtaZkrpOBr55DTuemllumPylCj1rhaRUMEHDLE21s-FCBtiVxIiQWwNTBBvShF_XIgg33PoM_thCrnxPL6_SS8lq4Kr-5BnzXxLYZyajTusyc9jhhaN7SSoORJKI7z5Z0wkukDUr2ksYP_7hQ" + +# signed with a throwaway ed25519 key; the raw public key is below it. +EDDSA_TOKEN := "eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJleHRlcm5hbC1pc3N1ZXIiLCJzdWIiOiJ1LTQyIiwiYXVkIjoiY2hhdCIsImV4cCI6MTkwMDAwMDAwMH0.lCrCeRMDoOAJWgCygsdIgpg9c2lWHIOaZfTCf786EC7nHZzduYXvp-rF55-IVZfXTYd7wG-f1ScWXBKTgz_NDA" +EDDSA_PUBLIC_KEY := "1ab366e6b16df7f5b5d43f4366b999cf62d9b7001439620b2169e55b54520fdc" + +# both tokens expire in 2030. validating at a fixed instant keeps the test from +# depending on when it runs, in either direction. +INSTANT := 1800000000 + +fn main() -> Int!: + cert := x509.parse_pem(read_file("tests/live/fixtures/localhost.crt")!)! + rsa_public := cert.subject_public_key + rsa_private := encoding.pem_decode(read_file("tests/live/fixtures/localhost.key")!)! + ed_public := encoding.from_hex(EDDSA_PUBLIC_KEY)! + + base := jwt.at_time(jwt.default_options(), INSTANT) + expected := jwt.with_issuer(jwt.with_audience(base, "chat"), "external-issuer") + + rs := jwt.verify_rs256(RS256_TOKEN, rsa_public, expected)! + print("rs256 claims: " + rs.claims) + print("rs256 wrong audience: " + jwt.verify_rs256(RS256_TOKEN, rsa_public, jwt.with_audience(base, "billing")).is_err.to_string()) + print("rs256 wrong key: " + jwt.verify_rs256(RS256_TOKEN, ed_public, base).is_err.to_string()) + + ed := jwt.verify_eddsa(EDDSA_TOKEN, ed_public, expected)! + print("eddsa claims: " + ed.claims) + print("eddsa wrong key: " + jwt.verify_eddsa(EDDSA_TOKEN, rsa_public, base).is_err.to_string()) + + # an RS256 token handed to the rsa-pss verifier is refused on its `alg` + # before either signature is looked at, and the reverse holds too. + print("rs256 through the ps256 verifier: " + jwt.verify_ps256(RS256_TOKEN, rsa_public, base).is_err.to_string()) + print("eddsa through the rs256 verifier: " + jwt.verify_rs256(EDDSA_TOKEN, ed_public, base).is_err.to_string()) + + claims := "{{\"sub\":\"u-7\",\"aud\":\"chat\"}}" + issued := jwt.sign_ps256(claims, rsa_private.body)! + round_tripped := jwt.verify_ps256(issued, rsa_public, jwt.with_audience(base, "chat"))! + print("ps256 claims: " + round_tripped.claims) + print("ps256 wrong verifier: " + jwt.verify_rs256(issued, rsa_public, base).is_err.to_string()) + return 0 diff --git a/tests/cases/test_password_hashing.pith b/tests/cases/test_password_hashing.pith new file mode 100644 index 00000000..21a8cedd --- /dev/null +++ b/tests/cases/test_password_hashing.pith @@ -0,0 +1,38 @@ +# argon2id hashing end to end: the phc encoding, verification, the rehash +# signal, and what happens to input that is not a hash we wrote. +# +# the cost parameters here are far below the defaults on purpose. what this +# case checks is the encoding and the comparison, neither of which cares how +# long the derivation took. + +import std.crypto.password as password + +fn cheap() -> password.Params: + return password.params_with_lengths(64, 1, 1, 8, 16) + +fn main() -> Int!: + encoded := password.hash_with("hunter2", cheap())! + print("prefix: " + encoded.substring(0, 27)) + + print("right password: " + password.verify("hunter2", encoded).to_string()) + print("wrong password: " + password.verify("hunter3", encoded).to_string()) + print("empty password: " + password.verify("", encoded).to_string()) + + parsed := password.parse_params(encoded)! + print("memory: " + parsed.memory_kib.to_string()) + print("passes: " + parsed.passes.to_string()) + print("lanes: " + parsed.lanes.to_string()) + print("salt bytes: " + parsed.salt_len.to_string()) + print("tag bytes: " + parsed.tag_len.to_string()) + + print("same password hashes differently: " + (password.hash_with("hunter2", cheap())! != encoded).to_string()) + + stronger := password.params_with_lengths(128, 2, 1, 16, 32) + print("needs a stronger hash: " + password.needs_rehash(encoded, stronger).to_string()) + print("already strong enough: " + password.needs_rehash(encoded, cheap()).to_string()) + print("garbage needs rehashing: " + password.needs_rehash("$argon2id$oops", stronger).to_string()) + + print("truncated: " + password.verify("hunter2", encoded.substring(0, encoded.len() - 4)).to_string()) + print("not a hash: " + password.verify("hunter2", "hunter2").to_string()) + print("parse of garbage errs: " + password.parse_params("$argon2id$v=19$m=64").is_err.to_string()) + return 0 diff --git a/tests/expected/test_jwt_asymmetric.txt b/tests/expected/test_jwt_asymmetric.txt new file mode 100644 index 00000000..f977d4df --- /dev/null +++ b/tests/expected/test_jwt_asymmetric.txt @@ -0,0 +1,9 @@ +rs256 claims: {"iss":"external-issuer","sub":"u-42","aud":"chat","exp":1900000000} +rs256 wrong audience: true +rs256 wrong key: true +eddsa claims: {"iss":"external-issuer","sub":"u-42","aud":"chat","exp":1900000000} +eddsa wrong key: true +rs256 through the ps256 verifier: true +eddsa through the rs256 verifier: true +ps256 claims: {"sub":"u-7","aud":"chat"} +ps256 wrong verifier: true diff --git a/tests/expected/test_password_hashing.txt b/tests/expected/test_password_hashing.txt new file mode 100644 index 00000000..cb21f3ba --- /dev/null +++ b/tests/expected/test_password_hashing.txt @@ -0,0 +1,16 @@ +prefix: $argon2id$v=19$m=64,t=1,p=1 +right password: true +wrong password: false +empty password: false +memory: 64 +passes: 1 +lanes: 1 +salt bytes: 8 +tag bytes: 16 +same password hashes differently: true +needs a stronger hash: true +already strong enough: false +garbage needs rehashing: true +truncated: false +not a hash: false +parse of garbage errs: true