Merge branch 'main' into simplify-refcount

Signed-off-by: Brendan Hansknecht <Brendan.Hansknecht@gmail.com>
This commit is contained in:
Brendan Hansknecht 2025-01-10 20:34:52 -08:00 committed by GitHub
commit 7643f89781
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
131 changed files with 2464 additions and 2148 deletions

View file

@ -1,21 +1,24 @@
name: deploy www.roc-lang.org
# Whenever a commit lands on `main`, deploy the site
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Whenever a commit lands on `main`, deploy the site
push:
branches:
- deploy-www
jobs:
deploy:
name: 'Deploy to Netlify'
name: "Deploy to Netlify"
runs-on: [self-hosted, linux]
steps:
- uses: jsmrcaga/action-netlify-deploy@v1.6.0
with:
install_command: 'pwd; cd ../../www'
build_command: 'bash build.sh'
build_directory: 'build'
install_command: "pwd; cd ../../www"
build_command: "bash build.sh"
build_directory: "build"
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
NETLIFY_DEPLOY_MESSAGE: "Deploy git ref ${{ github.ref }}"

View file

@ -278,14 +278,14 @@ import pf.Stdin
main =
Stdout.line! "What's your name?"
name = Stdin.line!
Stdout.line! "Hi $(name)!""#;
Stdout.line! "Hi ${name}!""#;
const UNFORMATTED_ROC: &str = r#"app [main] { pf: platform "platform/main.roc" }
main =
Stdout.line! "What's your name?"
name = Stdin.line!
Stdout.line! "Hi $(name)!"
Stdout.line! "Hi ${name}!"
"#;
fn setup_test_file(dir: &Path, file_name: &str, contents: &str) -> PathBuf {

View file

@ -10,7 +10,7 @@ show = \list ->
|> List.map(Num.to_str)
|> Str.join_with(", ")
"[$(content)]"
"[${content}]"
sort_by : List a, (a -> Num *) -> List a
sort_by = \list, to_comparable ->

View file

@ -25,7 +25,7 @@ show_rb_tree = \tree, show_key, show_value ->
s_l = node_in_parens(left, show_key, show_value)
s_r = node_in_parens(right, show_key, show_value)
"Node $(s_color) $(s_key) $(s_value) $(s_l) $(s_r)"
"Node ${s_color} ${s_key} ${s_value} ${s_l} ${s_r}"
node_in_parens : RedBlackTree k v, (k -> Str), (v -> Str) -> Str
node_in_parens = \tree, show_key, show_value ->
@ -36,7 +36,7 @@ node_in_parens = \tree, show_key, show_value ->
Node(_, _, _, _, _) ->
inner = show_rb_tree(tree, show_key, show_value)
"($(inner))"
"(${inner})"
show_color : NodeColor -> Str
show_color = \color ->

View file

@ -8,7 +8,7 @@ snapshot_kind: text
The get_user function expects 1 argument, but it got 2 instead:
12│ $(Api.get_user(1, 2))
12│ ${Api.get_user(1, 2)}
^^^^^^^^^^^^
Are there any missing commas? Or missing parentheses?
@ -18,7 +18,7 @@ Are there any missing commas? Or missing parentheses?
This value is not a function, but it was given 1 argument:
13│ $(Api.base_url(1))
13│ ${Api.base_url(1)}
^^^^^^^^^^^^
Are there any missing commas? Or missing parentheses?
@ -28,7 +28,7 @@ Are there any missing commas? Or missing parentheses?
The get_post_comment function expects 2 arguments, but it got only 1:
16│ $(Api.get_post_comment(1))
16│ ${Api.get_post_comment(1)}
^^^^^^^^^^^^^^^^^^^^
Roc does not allow functions to be partially applied. Use a closure to

View file

@ -11,7 +11,7 @@ fn_annotated_as_value definition:
3│ fn_annotated_as_value : Str
4│> fn_annotated_as_value = \post_id, comment_id ->
5│> "/posts/$(post_id)/comments/$(Num.to_str(comment_id))"
5│> "/posts/${post_id}/comments/${Num.to_str(comment_id)}"
The body is an anonymous function of type:
@ -28,7 +28,7 @@ Something is off with the body of the missing_arg definition:
7│ missing_arg : Str -> Str
8│> missing_arg = \post_id, _ ->
9│> "/posts/$(post_id)/comments"
9│> "/posts/${post_id}/comments"
The body is an anonymous function of type:

View file

@ -8,7 +8,7 @@ snapshot_kind: text
This argument to this string interpolation has an unexpected type:
10│ "$(Api.get_post)"
10│ "${Api.get_post}"
^^^^^^^^^^^^
The argument is an anonymous function of type:

View file

@ -12,7 +12,7 @@ main =
_: Task.ok(Dict.single("a", "b")),
}!
Stdout.line!("For multiple tasks: $(Inspect.to_str(multiple_in))")
Stdout.line!("For multiple tasks: ${Inspect.to_str(multiple_in)}")
sequential : Task a err, Task b err, (a, b -> c) -> Task c err
sequential = \first_task, second_task, mapper ->

View file

@ -15,8 +15,8 @@ main! = \{} ->
validate! : U32 => Result {} U32
validate! = \x ->
if Num.is_even(x) then
Effect.put_line!("✅ $(Num.to_str(x))")
Effect.put_line!("✅ ${Num.to_str(x)}")
Ok({})
else
Effect.put_line!("$(Num.to_str(x)) is not even! ABORT!")
Effect.put_line!("${Num.to_str(x)} is not even! ABORT!")
Err(x)

View file

@ -7,7 +7,7 @@ main! = \{} ->
first = ask!("What's your first name?")
last = ask!("What's your last name?")
Effect.put_line!("\nHi, $(first) $(last)!\n")
Effect.put_line!("\nHi, ${first} ${last}!\n")
when Str.to_u8(ask!("How old are you?")) is
Err(InvalidNumStr) ->
@ -17,7 +17,7 @@ main! = \{} ->
Effect.put_line!("\nNice! You can vote!")
Ok(age) ->
Effect.put_line!("\nYou'll be able to vote in $(Num.to_str((18 - age))) years")
Effect.put_line!("\nYou'll be able to vote in ${Num.to_str(18 - age)} years")
Effect.put_line!("\nBye! 👋")

View file

@ -15,5 +15,5 @@ main! = \{} ->
else
{}
Effect.put_line!("You entered: $(line)")
Effect.put_line!("You entered: ${line}")
Effect.put_line!("It is known")

View file

@ -18,5 +18,5 @@ main! = \{} ->
get_line!: Effect.get_line!,
}
Effect.put_line!("not_effectful: $(not_effectful.get_line!({}))")
Effect.put_line!("effectful: $(effectful.get_line!({}))")
Effect.put_line!("not_effectful: ${not_effectful.get_line!({})}")
Effect.put_line!("effectful: ${effectful.get_line!({})}")

View file

@ -7,6 +7,6 @@ main! = \{} ->
logged!("hello", \{} -> Effect.put_line!("Hello, World!"))
logged! = \name, fx! ->
Effect.put_line!("Before $(name)")
Effect.put_line!("Before ${name}")
fx!({})
Effect.put_line!("After $(name)")
Effect.put_line!("After ${name}")

View file

@ -56,7 +56,7 @@ to_str = \{ scopes, stack, state, vars } ->
stack_str = Str.join_with(List.map(stack, to_str_data), " ")
vars_str = Str.join_with(List.map(vars, to_str_data), " ")
"\n============\nDepth: $(depth)\nState: $(state_str)\nStack: [$(stack_str)]\nVars: [$(vars_str)]\n============\n"
"\n============\nDepth: ${depth}\nState: ${state_str}\nStack: [${stack_str}]\nVars: [${vars_str}]\n============\n"
with! : Str, (Context => a) => a
with! = \path, callback! ->

View file

@ -21,7 +21,7 @@ main! = \filename ->
{}
Err(StringErr(e)) ->
Stdout.line!("Ran into problem:\n$(e)\n")
Stdout.line!("Ran into problem:\n${e}\n")
interpret_file! : Str => Result {} [StringErr Str]
interpret_file! = \filename ->
@ -44,7 +44,7 @@ interpret_file! = \filename ->
Err(StringErr("Ran into an invalid boolean that was neither false (0) or true (-1)"))
Err(InvalidChar(char)) ->
Err(StringErr("Ran into an invalid character with ascii code: $(char)"))
Err(StringErr("Ran into an invalid character with ascii code: ${char}"))
Err(MaxInputNumber) ->
Err(StringErr("Like the original false compiler, the max input number is 320,000"))

View file

@ -7,4 +7,4 @@ app [main] {
import json.JsonParser
import csv.Csv
main = "Hello, World! $(JsonParser.example) $(Csv.example)"
main = "Hello, World! ${JsonParser.example} ${Csv.example}"

View file

@ -7,4 +7,4 @@ app [main] {
import one.One
import two.Two
main = "$(One.example) | $(Two.example)"
main = "${One.example} | ${Two.example}"

View file

@ -2,4 +2,4 @@ module [example]
import two.Two
example = "[One imports Two: $(Two.example)]"
example = "[One imports Two: ${Two.example}]"

View file

@ -2,4 +2,4 @@ module [example]
import one.One
example = "[Zero imports One: $(One.example)]"
example = "[Zero imports One: ${One.example}]"

View file

@ -14,18 +14,18 @@ module { app_id, protocol } -> [
## value def referencing params
base_url : Str
base_url =
protocol("api.example.com/$(app_id)")
protocol("api.example.com/${app_id}")
## function def referencing params
get_user : U32 -> Str
get_user = \user_id ->
# purposefully not using baseUrl to test top-level fn referencing param
protocol("api.example.com/$(app_id)/users/$(Num.to_str(user_id))")
protocol("api.example.com/${app_id}/users/${Num.to_str(user_id)}")
## function def referencing top-level value
get_post : U32 -> Str
get_post = \post_id ->
"$(base_url)/posts/$(Num.to_str(post_id))"
"${base_url}/posts/${Num.to_str(post_id)}"
## function def passing top-level function
get_posts : List U32 -> List Str
@ -35,13 +35,13 @@ get_posts = \ids ->
## function def calling top-level function
get_post_comments : U32 -> Str
get_post_comments = \post_id ->
"$(get_post(post_id))/comments"
"${get_post(post_id)}/comments"
## function def passing nested function
get_companies : List U32 -> List Str
get_companies = \ids ->
get_company = \id ->
protocol("api.example.com/$(app_id)/companies/$(Num.to_str(id))")
protocol("api.example.com/${app_id}/companies/${Num.to_str(id)}")
List.map(ids, get_company)
@ -59,11 +59,11 @@ get_post_aliased =
get_user_safe : U32 -> Str
get_user_safe =
if Str.starts_with(app_id, "prod_") then
\id -> "$(get_user(id))?safe=true"
\id -> "${get_user(id)}?safe=true"
else
get_user
## two-argument function
get_post_comment : U32, U32 -> Str
get_post_comment = \post_id, comment_id ->
"$(get_post(post_id))/comments/$(Num.to_str(comment_id))"
"${get_post(post_id)}/comments/${Num.to_str(comment_id)}"

View file

@ -2,8 +2,8 @@ module { app_id } -> [fn_annotated_as_value, missing_arg]
fn_annotated_as_value : Str
fn_annotated_as_value = \post_id, comment_id ->
"/posts/$(post_id)/comments/$(Num.to_str(comment_id))"
"/posts/${post_id}/comments/${Num.to_str(comment_id)}"
missing_arg : Str -> Str
missing_arg = \post_id, _ ->
"/posts/$(post_id)/comments"
"/posts/${post_id}/comments"

View file

@ -1,6 +1,6 @@
module []
https = \url -> "https://$(url)"
https = \url -> "https://${url}"
expect
import Api { app_id: "one", protocol: https }

View file

@ -4,4 +4,4 @@ menu = \name ->
indirect(name)
indirect = \name ->
echo("Hi, $(name)!")
echo("Hi, ${name}!")

View file

@ -6,8 +6,8 @@ import Api { app_id: "one", protocol: https } as App1
import Api { app_id: "two", protocol: http } as App2
import Api { app_id: "prod_1", protocol: http } as Prod
https = \url -> "https://$(url)"
http = \url -> "http://$(url)"
https = \url -> "https://${url}"
http = \url -> "http://${url}"
users_app1 =
# pass top-level fn in a module with params
@ -27,33 +27,33 @@ main =
List.map([1, 2, 3], App3.get_user)
"""
App1.baseUrl: $(App1.base_url)
App2.baseUrl: $(App2.base_url)
App3.baseUrl: $(App3.base_url)
App1.getUser 1: $(App1.get_user(1))
App2.getUser 2: $(App2.get_user(2))
App3.getUser 3: $(App3.get_user(3))
App1.getPost 1: $(App1.get_post(1))
App2.getPost 2: $(App2.get_post(2))
App3.getPost 3: $(App3.get_post(3))
App1.getPosts [1, 2]: $(Inspect.to_str(App1.get_posts([1, 2])))
App2.getPosts [3, 4]: $(Inspect.to_str(App2.get_posts([3, 4])))
App2.getPosts [5, 6]: $(Inspect.to_str(App2.get_posts([5, 6])))
App1.getPostComments 1: $(App1.get_post_comments(1))
App2.getPostComments 2: $(App2.get_post_comments(2))
App2.getPostComments 3: $(App2.get_post_comments(3))
App1.getCompanies [1, 2]: $(Inspect.to_str(App1.get_companies([1, 2])))
App2.getCompanies [3, 4]: $(Inspect.to_str(App2.get_companies([3, 4])))
App2.getCompanies [5, 6]: $(Inspect.to_str(App2.get_companies([5, 6])))
App1.getPostAliased 1: $(App1.get_post_aliased(1))
App2.getPostAliased 2: $(App2.get_post_aliased(2))
App3.getPostAliased 3: $(App3.get_post_aliased(3))
App1.baseUrlAliased: $(App1.base_url_aliased)
App2.baseUrlAliased: $(App2.base_url_aliased)
App3.baseUrlAliased: $(App3.base_url_aliased)
App1.getUserSafe 1: $(App1.get_user_safe(1))
Prod.getUserSafe 2: $(Prod.get_user_safe(2))
usersApp1: $(Inspect.to_str(users_app1))
getUserApp3Nested 3: $(get_user_app3_nested(3))
usersApp3Passed: $(Inspect.to_str(users_app3_passed))
App1.baseUrl: ${App1.base_url}
App2.baseUrl: ${App2.base_url}
App3.baseUrl: ${App3.base_url}
App1.getUser 1: ${App1.get_user(1)}
App2.getUser 2: ${App2.get_user(2)}
App3.getUser 3: ${App3.get_user(3)}
App1.getPost 1: ${App1.get_post(1)}
App2.getPost 2: ${App2.get_post(2)}
App3.getPost 3: ${App3.get_post(3)}
App1.getPosts [1, 2]: ${Inspect.to_str(App1.get_posts([1, 2]))}
App2.getPosts [3, 4]: ${Inspect.to_str(App2.get_posts([3, 4]))}
App2.getPosts [5, 6]: ${Inspect.to_str(App2.get_posts([5, 6]))}
App1.getPostComments 1: ${App1.get_post_comments(1)}
App2.getPostComments 2: ${App2.get_post_comments(2)}
App2.getPostComments 3: ${App2.get_post_comments(3)}
App1.getCompanies [1, 2]: ${Inspect.to_str(App1.get_companies([1, 2]))}
App2.getCompanies [3, 4]: ${Inspect.to_str(App2.get_companies([3, 4]))}
App2.getCompanies [5, 6]: ${Inspect.to_str(App2.get_companies([5, 6]))}
App1.getPostAliased 1: ${App1.get_post_aliased(1)}
App2.getPostAliased 2: ${App2.get_post_aliased(2)}
App3.getPostAliased 3: ${App3.get_post_aliased(3)}
App1.baseUrlAliased: ${App1.base_url_aliased}
App2.baseUrlAliased: ${App2.base_url_aliased}
App3.baseUrlAliased: ${App3.base_url_aliased}
App1.getUserSafe 1: ${App1.get_user_safe(1)}
Prod.getUserSafe 2: ${Prod.get_user_safe(2)}
usersApp1: ${Inspect.to_str(users_app1)}
getUserApp3Nested 3: ${get_user_app3_nested(3)}
usersApp3Passed: ${Inspect.to_str(users_app3_passed)}
"""

View file

@ -4,14 +4,14 @@ app [main] {
import Api { app_id: "one", protocol: https }
https = \url -> "https://$(url)"
https = \url -> "https://${url}"
main =
"""
# too many args
$(Api.get_user(1, 2))
$(Api.base_url(1))
${Api.get_user(1, 2)}
${Api.base_url(1)}
# too few args
$(Api.get_post_comment(1))
${Api.get_post_comment(1)}
"""

View file

@ -1,3 +1,3 @@
module { stdout! } -> [log!]
log! = \msg, level -> stdout!("$(level):$(msg)")
log! = \msg, level -> stdout!("${level}:${msg}")

View file

@ -4,7 +4,7 @@ app [main] {
import Api { app_id: "one", protocol: https }
https = \url -> "https://$(url)"
https = \url -> "https://${url}"
main =
"$(Api.get_post)"
"${Api.get_post}"

View file

@ -11,4 +11,4 @@ import foo.Foo
main_for_host : Str
main_for_host =
"$(main) $(Foo.foo)"
"${main} ${Foo.foo}"

View file

@ -381,6 +381,7 @@ inline fn decref_ptr_to_refcount(
switch (RC_TYPE) {
.normal => {
if (DEBUG_INCDEC and builtin.target.cpu.arch != .wasm32) {
const old = @as(usize, @bitCast(refcount));
const new = @as(usize, @bitCast(refcount_ptr[0] -% 1));

View file

@ -887,7 +887,7 @@ increase_size = \@Dict({ data, max_bucket_capacity, max_load_factor, shifts }) -
},
)
else
crash("Dict hit limit of $(Num.to_str(max_bucket_count)) elements. Unable to grow more.")
crash("Dict hit limit of ${Num.to_str(max_bucket_count)} elements. Unable to grow more.")
alloc_buckets_from_shift : U8, F32 -> (List Bucket, U64)
alloc_buckets_from_shift = \shifts, max_load_factor ->

View file

@ -75,6 +75,7 @@ module [
for_each!,
for_each_try!,
walk!,
walk_try!,
]
import Bool exposing [Bool, Eq]
@ -1484,7 +1485,7 @@ for_each! = \list, func! ->
## List.for_each_try!(files_to_delete, \path ->
## File.delete!(path)?
##
## Stdout.line!("$(path) deleted")
## Stdout.line!("${path} deleted")
## )
## ```
for_each_try! : List a, (a => Result {} err) => Result {} err
@ -1514,7 +1515,40 @@ for_each_try! = \list, func! ->
walk! : List elem, state, (state, elem => state) => state
walk! = \list, state, func! ->
when list is
[] -> state
[] ->
state
[elem, .. as rest] ->
next_state = func!(state, elem)
walk!(rest, next_state, func!)
## Build a value from the contents of a list, using an effectful function that might fail.
##
## If the function returns `Err`, the iteration stops and the error is returned.
##
## ```
## names =
## List.walk_try!(
## ["First", "Middle", "Last"],
## [],
## \accumulator, which ->
## Stdout.write!("${which} name: ")?
## name = Stdin.line!({})?
## Ok(List.append(accumulator, name)),
## )?
## ```
##
## This is the same as [walk_try], except that the step function can have effects.
walk_try! : List elem, state, (state, elem => Result state err) => Result state err
walk_try! = \list, state, func! ->
when list is
[] ->
Ok(state)
[elem, .. as rest] ->
when func!(state, elem) is
Ok(next_state) ->
walk_try!(rest, next_state, func!)
Err(err) ->
Err(err)

View file

@ -124,11 +124,12 @@ on_err = \result, transform ->
## Like [on_err], but it allows the transformation function to produce effects.
##
## ```roc
## Result.on_err(Err("missing user"), (\msg ->
## Stdout.line!("ERROR: $(msg)")?
##
## Err(msg)
## ))
## Result.on_err(
## Err("missing user"),
## \msg ->
## Stdout.line!("ERROR: ${msg}")?
## Err(msg),
## )
## ```
on_err! : Result a err, (err => Result a other_err) => Result a other_err
on_err! = \result, transform! ->

View file

@ -34,7 +34,7 @@
## ```
## name = "Sam"
##
## "Hi, my name is $(name)!"
## "Hi, my name is ${name}!"
## ```
##
## This will evaluate to the string `"Hi, my name is Sam!"`
@ -44,7 +44,7 @@
## ```
## colors = ["red", "green", "blue"]
##
## "The colors are $(colors |> Str.join_with(", "))!"
## "The colors are ${colors |> Str.join_with(", ")}!"
## ```
##
## Interpolation can be used in multiline strings, but the part inside the parentheses must still be on one line.
@ -800,7 +800,7 @@ replace_first : Str, Str, Str -> Str
replace_first = \haystack, needle, flower ->
when split_first(haystack, needle) is
Ok({ before, after }) ->
"$(before)$(flower)$(after)"
"${before}${flower}${after}"
Err(NotFound) -> haystack
@ -818,7 +818,7 @@ replace_last : Str, Str, Str -> Str
replace_last = \haystack, needle, flower ->
when split_last(haystack, needle) is
Ok({ before, after }) ->
"$(before)$(flower)$(after)"
"${before}${flower}${after}"
Err(NotFound) -> haystack

View file

@ -2157,10 +2157,10 @@ mod test_can {
// // This should NOT be string interpolation, because of the \\
// indoc!(
// r#"
// "abcd\$(efg)hij"
// "abcd\${efg}hij"
// "#
// ),
// Str(r"abcd$(efg)hij".into()),
// Str(r"abcd${efg}hij".into()),
// );
// }

View file

@ -91,14 +91,6 @@ fn format_expr_only(
buf.indent(indent);
buf.push_str("try");
}
Expr::PncApply(
loc_expr @ Loc {
value: Expr::Dbg, ..
},
loc_args,
) => {
fmt_apply(loc_expr, loc_args.items, indent, buf);
}
Expr::PncApply(loc_expr, loc_args) => {
fmt_pnc_apply(loc_expr, loc_args, indent, buf);
}
@ -521,10 +513,7 @@ pub fn expr_is_multiline(me: &Expr<'_>, comments_only: bool) -> bool {
.any(|loc_arg| expr_is_multiline(&loc_arg.value, comments_only))
}
Expr::PncApply(loc_expr, args) => {
expr_is_multiline(&loc_expr.value, comments_only)
|| args
.iter()
.any(|loc_arg| expr_is_multiline(&loc_arg.value, comments_only))
expr_is_multiline(&loc_expr.value, comments_only) || is_collection_multiline(args)
}
Expr::DbgStmt { .. } => true,
@ -922,8 +911,8 @@ fn format_str_segment(seg: &StrSegment, buf: &mut Buf) {
buf.push(escaped.to_parsed_char());
}
Interpolated(loc_expr) => {
buf.push_str("$(");
// e.g. (name) in "Hi, $(name)!"
buf.push_str("${");
// e.g. {name} in "Hi, ${name}!"
let min_indent = buf.cur_line_indent() + INDENT;
loc_expr.value.format_with_options(
buf,
@ -932,7 +921,7 @@ fn format_str_segment(seg: &StrSegment, buf: &mut Buf) {
min_indent,
);
buf.indent(min_indent);
buf.push(')');
buf.push('}');
}
}
}
@ -1343,9 +1332,16 @@ pub fn expr_lift_spaces<'a, 'b: 'a>(
let right_lifted = expr_lift_spaces_after(Parens::InOperator, arena, &right.value);
let mut item =
Expr::BinOps(lefts, arena.alloc(Loc::at(right.region, right_lifted.item)));
if parens == Parens::InApply || parens == Parens::InApplyLastArg {
item = Expr::ParensAround(arena.alloc(item));
}
Spaces {
before,
item: Expr::BinOps(lefts, arena.alloc(Loc::at(right.region, right_lifted.item))),
item,
after: right_lifted.after,
}
}
@ -1759,12 +1755,21 @@ fn fmt_dbg_stmt<'a>(
args.push(condition);
args.extend_from_slice(extra_args);
Expr::Apply(
&Loc::at_zero(Expr::Dbg),
args.into_bump_slice(),
called_via::CalledVia::Space,
)
.format_with_options(buf, parens, Newlines::Yes, indent);
if args.is_empty() {
Expr::PncApply(&Loc::at_zero(Expr::Dbg), Collection::empty()).format_with_options(
buf,
parens,
Newlines::Yes,
indent,
);
} else {
Expr::Apply(
&Loc::at_zero(Expr::Dbg),
args.into_bump_slice(),
called_via::CalledVia::Space,
)
.format_with_options(buf, parens, Newlines::Yes, indent);
}
let cont_lifted = expr_lift_spaces(Parens::NotNeeded, buf.text.bump(), &continuation.value);

View file

@ -722,7 +722,7 @@ pub fn pattern_lift_spaces<'a, 'b: 'a>(
Spaces {
before: func_lifted.before,
item: Pattern::PncApply(arena.alloc(func), *args),
item: Pattern::PncApply(arena.alloc(Loc::at_zero(func_lifted.item)), *args),
after: &[],
}
}

View file

@ -5864,7 +5864,7 @@ mod test_reporting {
r#"
greeting = "Privet"
if Bool.true then 1 else "$(greeting), World!"
if Bool.true then 1 else "${greeting}, World!"
"#,
),
@r#"
@ -5872,7 +5872,7 @@ mod test_reporting {
This `if` has an `else` branch with a different type from its `then` branch:
6 if Bool.true then 1 else "$(greeting), World!"
6 if Bool.true then 1 else "${greeting}, World!"
^^^^^^^^^^^^^^^^^^^^^
The `else` branch is a string of type:
@ -15052,7 +15052,7 @@ All branches in an `if` must have the same type!
u64_nums = parse_items_with Str.to_u64
u8_nums = parse_items_with Str.to_u8
"$(Inspect.to_str u64_nums) $(Inspect.to_str u8_nums)"
"${Inspect.to_str(u64_nums)} ${Inspect.to_str(u8_nums)}"
"#
),
@"" // no errors
@ -15304,7 +15304,7 @@ All branches in an `if` must have the same type!
get_cheer = \msg ->
name = Effect.get_line! {}
"$(msg), $(name)!"
"${msg}, ${name}!"
"#
),
@r"
@ -15340,7 +15340,7 @@ All branches in an `if` must have the same type!
trim : Str -> Str
trim = \msg ->
Effect.put_line! "Trimming $(msg)"
Effect.put_line!("Trimming ${msg}")
Str.trim msg
"#
),
@ -15349,7 +15349,7 @@ All branches in an `if` must have the same type!
This call to `Effect.put_line!` might produce an effect:
10 Effect.put_line! "Trimming $(msg)"
10 Effect.put_line!("Trimming ${msg}")
^^^^^^^^^^^^^^^^
However, the type of the enclosing function requires that it's pure:
@ -15736,7 +15736,7 @@ All branches in an `if` must have the same type!
(get, put) = (Effect.get_line!, Effect.put_line!)
name = get {}
put "Hi, $(name)"
put "Hi, ${name}"
"#
),
@r###"
@ -15808,7 +15808,7 @@ All branches in an `if` must have the same type!
Tag get put = Tag Effect.get_line! Effect.put_line!
name = get {}
put "Hi, $(name)"
put "Hi, ${name}"
"#
),
@r###"

View file

@ -1574,7 +1574,7 @@ fn module_params_checks() {
r#"
module { key } -> [url]
url = "example.com/$(key)"
url = "example.com/${key}"
"#
),
),
@ -1605,7 +1605,7 @@ fn module_params_optional() {
r#"
module { key, exp ? "default" } -> [url]
url = "example.com/$(key)?exp=$(exp)"
url = "example.com/${key}?exp=${exp}"
"#
),
),
@ -1636,7 +1636,7 @@ fn module_params_typecheck_fail() {
r#"
module { key } -> [url]
url = "example.com/$(key)"
url = "example.com/${key}"
"#
),
),
@ -1687,7 +1687,7 @@ fn module_params_missing_fields() {
r#"
module { key } -> [url]
url = "example.com/$(key)"
url = "example.com/${key}"
"#
),
),
@ -1740,7 +1740,7 @@ fn module_params_extra_fields() {
r#"
module { key } -> [url]
url = "example.com/$(key)"
url = "example.com/${key}"
"#
),
),
@ -1839,7 +1839,7 @@ fn module_params_missing() {
r#"
module { key, exp } -> [url]
url = "example.com/$(key)?exp=$(Num.to_str exp)"
url = "example.com/${key}?exp=${Num.to_str(exp)}"
"#
),
),
@ -2169,7 +2169,7 @@ fn roc_package_depends_on_other_package() {
r#"
module [say]
say = \msg -> "$(msg), world!"
say = \msg -> "${msg}, world!"
"#
),
),

View file

@ -75,7 +75,7 @@ pub enum CalledVia {
UnaryOp(UnaryOp),
/// This call is the result of desugaring string interpolation,
/// e.g. "$(first) $(last)" is transformed into Str.concat (Str.concat first " ") last.
/// e.g. "${first} ${last}" is transformed into `Str.concat(Str.concat(first, " "))` last.
StringInterpolation,
/// This call is the result of desugaring a map2-based Record Builder field. e.g.

View file

@ -1515,6 +1515,7 @@ define_builtins! {
92 LIST_WALK_FX: "walk!"
93 LIST_SPLIT_ON: "split_on"
94 LIST_SPLIT_ON_LIST: "split_on_list"
95 LIST_WALK_TRY_FX: "walk_try!"
}
7 RESULT: "Result" => {
0 RESULT_RESULT: "Result" exposed_type=true // the Result.Result type alias

View file

@ -242,15 +242,7 @@ fn loc_term<'a>() -> impl Parser<'a, Loc<Expr<'a>>, EExpr<'a>> {
let mut e = expr;
let orig_region = e.region;
for (args_loc, maybe_suffixes) in arg_locs_with_suffixes_vec.iter() {
let value = if matches!(
e,
Loc {
value: Expr::Dbg,
..
}
) {
Expr::Apply(arena.alloc(e), args_loc.value.items, CalledVia::Space)
} else if let Some(suffixes) = maybe_suffixes {
let value = if let Some(suffixes) = maybe_suffixes {
apply_expr_access_chain(
arena,
Expr::PncApply(arena.alloc(e), args_loc.value),
@ -3150,24 +3142,32 @@ fn stmts_to_defs<'a>(
_,
) = e
{
let condition = &args[0];
let rest = stmts_to_expr(&stmts[i + 1..], arena)?;
let e = Expr::DbgStmt {
first: condition,
extra_args: &args[1..],
continuation: arena.alloc(rest),
};
if let Some((first, extra_args)) = args.split_first() {
let rest = stmts_to_expr(&stmts[i + 1..], arena)?;
let e = Expr::DbgStmt {
first,
extra_args,
continuation: arena.alloc(rest),
};
let e = if sp_stmt.before.is_empty() {
e
let e = if sp_stmt.before.is_empty() {
e
} else {
arena.alloc(e).before(sp_stmt.before)
};
last_expr = Some(Loc::at(sp_stmt.item.region, e));
// don't re-process the rest of the statements; they got consumed by the dbg expr
break;
} else {
arena.alloc(e).before(sp_stmt.before)
};
last_expr = Some(Loc::at(sp_stmt.item.region, e));
// don't re-process the rest of the statements; they got consumed by the dbg expr
break;
defs.push_value_def(
ValueDef::Stmt(arena.alloc(Loc::at(sp_stmt.item.region, e))),
sp_stmt.item.region,
sp_stmt.before,
&[],
);
}
} else if let Expr::PncApply(
Loc {
value: Expr::Dbg, ..
@ -3175,24 +3175,32 @@ fn stmts_to_defs<'a>(
args,
) = e
{
let condition = &args.items[0];
let rest = stmts_to_expr(&stmts[i + 1..], arena)?;
let e = Expr::DbgStmt {
first: condition,
extra_args: &args.items[1..],
continuation: arena.alloc(rest),
};
if let Some((first, extra_args)) = args.items.split_first() {
let rest = stmts_to_expr(&stmts[i + 1..], arena)?;
let e = Expr::DbgStmt {
first,
extra_args,
continuation: arena.alloc(rest),
};
let e = if sp_stmt.before.is_empty() {
e
let e = if sp_stmt.before.is_empty() {
e
} else {
arena.alloc(e).before(sp_stmt.before)
};
last_expr = Some(Loc::at(sp_stmt.item.region, e));
// don't re-process the rest of the statements; they got consumed by the dbg expr
break;
} else {
arena.alloc(e).before(sp_stmt.before)
};
last_expr = Some(Loc::at(sp_stmt.item.region, e));
// don't re-process the rest of the statements; they got consumed by the dbg expr
break;
defs.push_value_def(
ValueDef::Stmt(arena.alloc(Loc::at(sp_stmt.item.region, e))),
sp_stmt.item.region,
sp_stmt.before,
&[],
);
}
} else {
defs.push_value_def(
ValueDef::Stmt(arena.alloc(Loc::at(sp_stmt.item.region, e))),

View file

@ -822,19 +822,23 @@ fn fold_defs<'a>(
),
..
}) => {
let rest = fold_defs(arena, defs, final_expr);
let new_final = Expr::DbgStmt {
first: args[0],
extra_args: &args[1..],
continuation: arena.alloc(Loc::at_zero(rest)),
};
if new_defs.is_empty() {
return new_final;
if let Some((first, extra_args)) = args.split_first() {
let rest = fold_defs(arena, defs, final_expr);
let new_final = Expr::DbgStmt {
first,
extra_args,
continuation: arena.alloc(Loc::at_zero(rest)),
};
if new_defs.is_empty() {
return new_final;
}
return Expr::Defs(
arena.alloc(new_defs),
arena.alloc(Loc::at_zero(new_final)),
);
} else {
new_defs.push_value_def(vd, Region::zero(), &[], &[]);
}
return Expr::Defs(
arena.alloc(new_defs),
arena.alloc(Loc::at_zero(new_final)),
);
}
ValueDef::Stmt(&Loc {
value:
@ -846,19 +850,23 @@ fn fold_defs<'a>(
),
..
}) => {
let rest = fold_defs(arena, defs, final_expr);
let new_final = Expr::DbgStmt {
first: args.items[0],
extra_args: &args.items[1..],
continuation: arena.alloc(Loc::at_zero(rest)),
};
if new_defs.is_empty() {
return new_final;
if let Some((first, extra_args)) = args.items.split_first() {
let rest = fold_defs(arena, defs, final_expr);
let new_final = Expr::DbgStmt {
first,
extra_args,
continuation: arena.alloc(Loc::at_zero(rest)),
};
if new_defs.is_empty() {
return new_final;
}
return Expr::Defs(
arena.alloc(new_defs),
arena.alloc(Loc::at_zero(new_final)),
);
} else {
new_defs.push_value_def(vd, Region::zero(), &[], &[]);
}
return Expr::Defs(
arena.alloc(new_defs),
arena.alloc(Loc::at_zero(new_final)),
);
}
_ => {
new_defs.push_value_def(vd, Region::zero(), &[], &[]);

View file

@ -425,16 +425,18 @@ pub fn parse_str_like_literal<'a>() -> impl Parser<'a, StrLikeLiteral<'a>, EStri
}
}
}
b'(' if preceded_by_dollar && !is_single_quote => {
b'(' | b'{' if preceded_by_dollar && !is_single_quote => {
let old_style_interpolation_block = one_byte == b'(';
// We're about to begin string interpolation!
//
// End the previous segment so we can begin a new one.
// Retroactively end it right before the `$` char we parsed.
// (We can't use end_segment! here because it ends it right after
// the just-parsed character, which here would be '(' rather than '$')
// the just-parsed character, which here would be '{' rather than '$')
// Don't push anything if the string would be empty.
if segment_parsed_bytes > 2 {
// exclude the 2 chars we just parsed, namely '$' and '('
// exclude the 2 chars we just parsed, namely '$' and '{'
let string_bytes = &state.bytes()[0..(segment_parsed_bytes - 2)];
match std::str::from_utf8(string_bytes) {
@ -452,19 +454,27 @@ pub fn parse_str_like_literal<'a>() -> impl Parser<'a, StrLikeLiteral<'a>, EStri
}
}
// Advance past the `$(`
// Advance past the `${`
state.advance_mut(2);
let original_byte_count = state.bytes().len();
// Parse an arbitrary expression, followed by ')'
// Parse an arbitrary expression, followed by '}' or ')'
let terminating_char = if old_style_interpolation_block {
b')'
} else {
b'}'
};
let (_progress, (mut loc_expr, sp), new_state) = and(
specialize_err_ref(
EString::Format,
loc(allocated(reset_min_indent(expr::expr_help())))
.trace("str_interpolation"),
),
skip_second(space0_e(EString::FormatEnd), byte(b')', EString::FormatEnd)),
skip_second(
space0_e(EString::FormatEnd),
byte(terminating_char, EString::FormatEnd),
),
)
.parse(arena, state, min_indent)?;
@ -488,8 +498,8 @@ pub fn parse_str_like_literal<'a>() -> impl Parser<'a, StrLikeLiteral<'a>, EStri
}
}
// iff the '$' is followed by '(', this is string interpolation.
// We'll check for the '(' on the next iteration of the loop.
// iff the '$' is followed by '{', this is string interpolation.
// We'll check for the '{' on the next iteration of the loop.
preceded_by_dollar = one_byte == b'$';
}

View file

@ -160,17 +160,17 @@ mod test_parse {
#[test]
fn escaped_interpolation() {
assert_segments(r#""Hi, \$(name)!""#, |arena| {
assert_segments(r#""Hi, \${name}!""#, |arena| {
bumpalo::vec![in arena;
Plaintext("Hi, "),
EscapedChar(EscapedChar::Dollar),
Plaintext("(name)!"),
Plaintext("{name}!"),
]
});
}
#[test]
fn string_with_interpolation_in_middle() {
fn string_with_old_interpolation_still_works_for_now() {
assert_segments(r#""Hi, $(name)!""#, |arena| {
let expr = arena.alloc(Var {
module_name: "",
@ -185,9 +185,31 @@ mod test_parse {
});
}
#[test]
fn string_with_mixed_new_and_old_interpolation_braces_fails() {
assert_parsing_fails(r#""${foo)""#, SyntaxError::Unexpected(Region::zero()));
assert_parsing_fails(r#""$(foo}""#, SyntaxError::Unexpected(Region::zero()));
}
#[test]
fn string_with_interpolation_in_middle() {
assert_segments(r#""Hi, ${name}!""#, |arena| {
let expr = arena.alloc(Var {
module_name: "",
ident: "name",
});
bumpalo::vec![in arena;
Plaintext("Hi, "),
Interpolated(Loc::new(7, 11, expr)),
Plaintext("!")
]
});
}
#[test]
fn string_with_interpolation_in_front() {
assert_segments(r#""$(name), hi!""#, |arena| {
assert_segments(r#""${name}, hi!""#, |arena| {
let expr = arena.alloc(Var {
module_name: "",
ident: "name",
@ -232,7 +254,7 @@ mod test_parse {
#[test]
fn string_with_interpolation_in_back() {
assert_segments(r#""Hello $(name)""#, |arena| {
assert_segments(r#""Hello ${name}""#, |arena| {
let expr = arena.alloc(Var {
module_name: "",
ident: "name",
@ -247,7 +269,7 @@ mod test_parse {
#[test]
fn string_with_multiple_interpolations() {
assert_segments(r#""Hi, $(name)! How is $(project) going?""#, |arena| {
assert_segments(r#""Hi, ${name}! How is ${project} going?""#, |arena| {
let expr1 = arena.alloc(Var {
module_name: "",
ident: "name",
@ -271,7 +293,7 @@ mod test_parse {
#[test]
fn string_with_non_interpolation_dollar_signs() {
assert_segments(
r#""$a Hi, $(name)! $b How is $(project) going? $c""#,
r#""$a Hi, ${name}! $b How is ${project} going? $c""#,
|arena| {
let expr1 = arena.alloc(Var {
module_name: "",

View file

@ -324,7 +324,7 @@ mod solve_expr {
r#"
what_it_is = "great"
"type inference is $(what_it_is)!"
"type inference is ${what_it_is}!"
"#
),
"Str",
@ -338,7 +338,7 @@ mod solve_expr {
r#"
what_it_is = "great"
str = "type inference is $(what_it_is)!"
str = "type inference is ${what_it_is}!"
what_it_is
"#
@ -354,7 +354,7 @@ mod solve_expr {
r#"
rec = { what_it_is: "great" }
str = "type inference is $(rec.what_it_is)!"
str = "type inference is ${rec.what_it_is}!"
rec
"#
@ -4751,7 +4751,7 @@ mod solve_expr {
r#"
set_roc_email : _ -> { name: Str, email: Str }_
set_roc_email = \person ->
{ person & email: "$(person.name)@roclang.com" }
{ person & email: "${person.name}@roclang.com" }
set_roc_email
"#
),

View file

@ -330,7 +330,7 @@ fn list_map_try_ok() {
List.map_try [1, 2, 3] \num ->
str = Num.to_str (num * 2)
Ok "$(str)!"
Ok "${str}!"
"#,
// Result Str [] is unwrapped to just Str
RocList::<RocStr>::from_slice(&[
@ -3870,10 +3870,10 @@ fn issue_3571_lowlevel_call_function_with_bool_lambda_set() {
List.concat state mapped_vals
add2 : Str -> Str
add2 = \x -> "added $(x)"
add2 = \x -> "added ${x}"
mul2 : Str -> Str
mul2 = \x -> "multiplied $(x)"
mul2 = \x -> "multiplied ${x}"
foo = [add2, mul2]
bar = ["1", "2", "3", "4"]

View file

@ -3120,7 +3120,7 @@ fn recursively_build_effect() {
hi = "Hello"
name = "World"
"$(hi), $(name)!"
"${hi}, ${name}!"
main =
when nest_help 4 is
@ -3876,8 +3876,8 @@ fn compose_recursive_lambda_set_productive_toplevel() {
compose = \f, g -> \x -> g (f x)
identity = \x -> x
exclaim = \s -> "$(s)!"
whisper = \s -> "($(s))"
exclaim = \s -> "${s}!"
whisper = \s -> "(${s})"
main =
res: Str -> Str
@ -3899,8 +3899,8 @@ fn compose_recursive_lambda_set_productive_nested() {
compose = \f, g -> \x -> g (f x)
identity = \x -> x
exclaim = \s -> "$(s)!"
whisper = \s -> "($(s))"
exclaim = \s -> "${s}!"
whisper = \s -> "(${s})"
res: Str -> Str
res = List.walk [ exclaim, whisper ] identity compose
@ -3921,8 +3921,8 @@ fn compose_recursive_lambda_set_productive_inferred() {
compose = \f, g -> \x -> g (f x)
identity = \x -> x
exclaim = \s -> "$(s)!"
whisper = \s -> "($(s))"
exclaim = \s -> "${s}!"
whisper = \s -> "(${s})"
res = List.walk [ exclaim, whisper ] identity compose
res "hello"
@ -3947,8 +3947,8 @@ fn compose_recursive_lambda_set_productive_nullable_wrapped() {
else \x -> f (g x)
identity = \x -> x
exclame = \s -> "$(s)!"
whisper = \s -> "($(s))"
exclame = \s -> "${s}!"
whisper = \s -> "(${s})"
main =
res: Str -> Str
@ -4475,7 +4475,7 @@ fn reset_recursive_type_wraps_in_named_type() {
Cons x xs ->
str_x = f x
str_xs = print_linked_list xs f
"Cons $(str_x) ($(str_xs))"
"Cons ${str_x} (${str_xs})"
"#
),
RocStr::from("Cons 2 (Cons 3 (Cons 4 (Nil)))"),

View file

@ -37,7 +37,7 @@ fn early_return_nested_ifs() {
else
third
"$(first), $(second)"
"${first}, ${second}"
main : List Str
main = List.map [1, 2, 3] display_n
@ -76,7 +76,7 @@ fn early_return_nested_whens() {
_ ->
third
"$(first), $(second)"
"${first}, ${second}"
main : List Str
main = List.map [1, 2, 3] display_n

View file

@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.23;
procedure List.115 (List.562, List.563, List.564):
let List.683 : U64 = 0i64;
let List.684 : U64 = CallByName List.6 List.562;
let List.682 : [C U64, C U64] = CallByName List.80 List.562 List.563 List.564 List.683 List.684;
ret List.682;
procedure List.116 (List.563, List.564, List.565):
let List.693 : U64 = 0i64;
let List.694 : U64 = CallByName List.6 List.563;
let List.692 : [C U64, C U64] = CallByName List.80 List.563 List.564 List.565 List.693 List.694;
ret List.692;
procedure List.26 (List.212, List.213, List.214):
let List.676 : [C U64, C U64] = CallByName List.115 List.212 List.213 List.214;
let List.679 : U8 = 1i64;
let List.680 : U8 = GetTagId List.676;
let List.681 : Int1 = lowlevel Eq List.679 List.680;
if List.681 then
let List.215 : U64 = UnionAtIndex (Id 1) (Index 0) List.676;
ret List.215;
else
let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.676;
procedure List.26 (List.213, List.214, List.215):
let List.686 : [C U64, C U64] = CallByName List.116 List.213 List.214 List.215;
let List.689 : U8 = 1i64;
let List.690 : U8 = GetTagId List.686;
let List.691 : Int1 = lowlevel Eq List.689 List.690;
if List.691 then
let List.216 : U64 = UnionAtIndex (Id 1) (Index 0) List.686;
ret List.216;
else
let List.217 : U64 = UnionAtIndex (Id 0) (Index 0) List.686;
ret List.217;
procedure List.38 (List.400, List.401):
let List.675 : U64 = CallByName List.6 List.400;
let List.402 : U64 = CallByName Num.77 List.675 List.401;
let List.665 : List U8 = CallByName List.43 List.400 List.402;
ret List.665;
procedure List.38 (List.401, List.402):
let List.685 : U64 = CallByName List.6 List.401;
let List.403 : U64 = CallByName Num.77 List.685 List.402;
let List.675 : List U8 = CallByName List.43 List.401 List.403;
ret List.675;
procedure List.43 (List.398, List.399):
let List.673 : U64 = CallByName List.6 List.398;
let List.672 : U64 = CallByName Num.77 List.673 List.399;
let List.667 : {U64, U64} = Struct {List.399, List.672};
let List.666 : List U8 = CallByName List.49 List.398 List.667;
ret List.666;
procedure List.43 (List.399, List.400):
let List.683 : U64 = CallByName List.6 List.399;
let List.682 : U64 = CallByName Num.77 List.683 List.400;
let List.677 : {U64, U64} = Struct {List.400, List.682};
let List.676 : List U8 = CallByName List.49 List.399 List.677;
ret List.676;
procedure List.49 (List.476, List.477):
let List.669 : U64 = StructAtIndex 1 List.477;
let List.670 : U64 = StructAtIndex 0 List.477;
let List.668 : List U8 = CallByName List.72 List.476 List.669 List.670;
ret List.668;
procedure List.49 (List.477, List.478):
let List.679 : U64 = StructAtIndex 1 List.478;
let List.680 : U64 = StructAtIndex 0 List.478;
let List.678 : List U8 = CallByName List.72 List.477 List.679 List.680;
ret List.678;
procedure List.6 (#Attr.2):
let List.674 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.674;
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.684;
procedure List.66 (#Attr.2, #Attr.3):
let List.697 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.697;
let List.707 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.671 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.671;
let List.681 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.681;
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.685 List.565 List.566 List.567 List.568 List.569:
let List.687 : Int1 = CallByName Num.22 List.568 List.569;
if List.687 then
let List.696 : U8 = CallByName List.66 List.565 List.568;
let List.688 : [C U64, C U64] = CallByName Test.4 List.566 List.696;
let List.693 : U8 = 1i64;
let List.694 : U8 = GetTagId List.688;
let List.695 : Int1 = lowlevel Eq List.693 List.694;
if List.695 then
let List.570 : U64 = UnionAtIndex (Id 1) (Index 0) List.688;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.568 List.691;
jump List.685 List.565 List.570 List.567 List.690 List.569;
joinpoint List.695 List.566 List.567 List.568 List.569 List.570:
let List.697 : Int1 = CallByName Num.22 List.569 List.570;
if List.697 then
let List.706 : U8 = CallByName List.66 List.566 List.569;
let List.698 : [C U64, C U64] = CallByName Test.4 List.567 List.706;
let List.703 : U8 = 1i64;
let List.704 : U8 = GetTagId List.698;
let List.705 : Int1 = lowlevel Eq List.703 List.704;
if List.705 then
let List.571 : U64 = UnionAtIndex (Id 1) (Index 0) List.698;
let List.701 : U64 = 1i64;
let List.700 : U64 = CallByName Num.51 List.569 List.701;
jump List.695 List.566 List.571 List.568 List.700 List.570;
else
dec List.565;
let List.571 : U64 = UnionAtIndex (Id 0) (Index 0) List.688;
let List.692 : [C U64, C U64] = TagId(0) List.571;
ret List.692;
dec List.566;
let List.572 : U64 = UnionAtIndex (Id 0) (Index 0) List.698;
let List.702 : [C U64, C U64] = TagId(0) List.572;
ret List.702;
else
dec List.565;
let List.686 : [C U64, C U64] = TagId(1) List.566;
ret List.686;
dec List.566;
let List.696 : [C U64, C U64] = TagId(1) List.567;
ret List.696;
in
inc #Derived_gen.0;
jump List.685 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
jump List.695 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,51 +1,51 @@
procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.671 List.174 List.175 List.176 List.177 List.178:
let List.673 : Int1 = CallByName Num.22 List.177 List.178;
if List.673 then
let List.677 : [] = CallByName List.66 List.174 List.177;
let List.179 : List {} = CallByName List.283 List.175 List.677 List.176;
let List.676 : U64 = 1i64;
let List.675 : U64 = CallByName Num.51 List.177 List.676;
jump List.671 List.174 List.179 List.176 List.675 List.178;
procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.681 List.175 List.176 List.177 List.178 List.179:
let List.683 : Int1 = CallByName Num.22 List.178 List.179;
if List.683 then
let List.687 : [] = CallByName List.66 List.175 List.178;
let List.180 : List {} = CallByName List.284 List.176 List.687 List.177;
let List.686 : U64 = 1i64;
let List.685 : U64 = CallByName Num.51 List.178 List.686;
jump List.681 List.175 List.180 List.177 List.685 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.0;
jump List.671 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
jump List.681 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure List.18 (List.171, List.172, List.173):
let List.669 : U64 = 0i64;
let List.670 : U64 = CallByName List.6 List.171;
let List.668 : List {} = CallByName List.100 List.171 List.172 List.173 List.669 List.670;
ret List.668;
procedure List.283 (List.284, List.285, List.281):
let List.682 : {} = CallByName Test.2 List.285;
let List.681 : List {} = CallByName List.71 List.284 List.682;
ret List.681;
procedure List.5 (List.280, List.281):
let List.282 : U64 = CallByName List.6 List.280;
let List.666 : List {} = CallByName List.68 List.282;
let List.665 : List {} = CallByName List.18 List.280 List.666 List.281;
ret List.665;
procedure List.6 (#Attr.2):
let List.679 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.679;
procedure List.66 (#Attr.2, #Attr.3):
let List.678 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.679 : U64 = 0i64;
let List.680 : U64 = CallByName List.6 List.172;
let List.678 : List {} = CallByName List.101 List.172 List.173 List.174 List.679 List.680;
ret List.678;
procedure List.284 (List.285, List.286, List.282):
let List.692 : {} = CallByName Test.2 List.286;
let List.691 : List {} = CallByName List.71 List.285 List.692;
ret List.691;
procedure List.5 (List.281, List.282):
let List.283 : U64 = CallByName List.6 List.281;
let List.676 : List {} = CallByName List.68 List.283;
let List.675 : List {} = CallByName List.18 List.281 List.676 List.282;
ret List.675;
procedure List.6 (#Attr.2):
let List.689 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.689;
procedure List.66 (#Attr.2, #Attr.3):
let List.688 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.688;
procedure List.68 (#Attr.2):
let List.684 : List {} = lowlevel ListWithCapacity #Attr.2;
ret List.684;
let List.694 : List {} = lowlevel ListWithCapacity #Attr.2;
ret List.694;
procedure List.71 (#Attr.2, #Attr.3):
let List.683 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.683;
let List.693 : List {} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.693;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,51 +1,51 @@
procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.671 List.174 List.175 List.176 List.177 List.178:
let List.673 : Int1 = CallByName Num.22 List.177 List.178;
if List.673 then
let List.677 : [] = CallByName List.66 List.174 List.177;
let List.179 : List [] = CallByName List.283 List.175 List.677 List.176;
let List.676 : U64 = 1i64;
let List.675 : U64 = CallByName Num.51 List.177 List.676;
jump List.671 List.174 List.179 List.176 List.675 List.178;
procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.681 List.175 List.176 List.177 List.178 List.179:
let List.683 : Int1 = CallByName Num.22 List.178 List.179;
if List.683 then
let List.687 : [] = CallByName List.66 List.175 List.178;
let List.180 : List [] = CallByName List.284 List.176 List.687 List.177;
let List.686 : U64 = 1i64;
let List.685 : U64 = CallByName Num.51 List.178 List.686;
jump List.681 List.175 List.180 List.177 List.685 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.0;
jump List.671 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
jump List.681 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure List.18 (List.171, List.172, List.173):
let List.669 : U64 = 0i64;
let List.670 : U64 = CallByName List.6 List.171;
let List.668 : List [] = CallByName List.100 List.171 List.172 List.173 List.669 List.670;
ret List.668;
procedure List.283 (List.284, List.285, List.281):
let List.682 : [] = CallByName Test.2 List.285;
let List.681 : List [] = CallByName List.71 List.284 List.682;
ret List.681;
procedure List.5 (List.280, List.281):
let List.282 : U64 = CallByName List.6 List.280;
let List.666 : List [] = CallByName List.68 List.282;
let List.665 : List [] = CallByName List.18 List.280 List.666 List.281;
ret List.665;
procedure List.6 (#Attr.2):
let List.679 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.679;
procedure List.66 (#Attr.2, #Attr.3):
let List.678 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.679 : U64 = 0i64;
let List.680 : U64 = CallByName List.6 List.172;
let List.678 : List [] = CallByName List.101 List.172 List.173 List.174 List.679 List.680;
ret List.678;
procedure List.284 (List.285, List.286, List.282):
let List.692 : [] = CallByName Test.2 List.286;
let List.691 : List [] = CallByName List.71 List.285 List.692;
ret List.691;
procedure List.5 (List.281, List.282):
let List.283 : U64 = CallByName List.6 List.281;
let List.676 : List [] = CallByName List.68 List.283;
let List.675 : List [] = CallByName List.18 List.281 List.676 List.282;
ret List.675;
procedure List.6 (#Attr.2):
let List.689 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.689;
procedure List.66 (#Attr.2, #Attr.3):
let List.688 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.688;
procedure List.68 (#Attr.2):
let List.684 : List [] = lowlevel ListWithCapacity #Attr.2;
ret List.684;
let List.694 : List [] = lowlevel ListWithCapacity #Attr.2;
ret List.694;
procedure List.71 (#Attr.2, #Attr.3):
let List.683 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.683;
let List.693 : List [] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.693;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,32 +1,32 @@
procedure List.100 (#Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : [] = CallByName List.66 List.174 List.177;
let List.179 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.175 List.674 List.176;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : [] = CallByName List.66 List.175 List.178;
let List.180 : [<r>C {}, C *self {{}, []}] = CallByName Test.29 List.176 List.684 List.177;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.11;
jump List.668 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15;
inc #Derived_gen.8;
jump List.678 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : [<r>C {}, C *self {{}, []}] = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : [<r>C {}, C *self {{}, []}] = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
let List.686 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.686;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.675;
let List.685 : [] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,6 +1,6 @@
procedure List.6 (#Attr.2):
let List.665 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.665;
let List.675 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.675;
procedure Test.1 (Test.5):
let Test.2 : I64 = 41i64;

View file

@ -2,35 +2,35 @@ procedure Bool.2 ():
let Bool.23 : Int1 = true;
ret Bool.23;
procedure List.100 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : Int1 = CallByName List.66 List.174 List.177;
let List.179 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.175 List.674 List.176;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : Int1 = CallByName List.66 List.175 List.178;
let List.180 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName Test.6 List.176 List.684 List.177;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.3;
jump List.668 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
inc #Derived_gen.5;
jump List.678 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : [<rnw><null>, C *self Int1, C *self Int1] = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
let List.686 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.686;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.675;
let List.685 : Int1 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -26,8 +26,8 @@ procedure Dict.52 ():
ret Dict.744;
procedure List.6 (#Attr.2):
let List.665 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.665;
let List.675 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.675;
procedure Num.75 (#Attr.2, #Attr.3):
let Num.283 : U8 = lowlevel NumSubWrap #Attr.2 #Attr.3;

View file

@ -2,25 +2,25 @@ procedure Bool.1 ():
let Bool.23 : Int1 = false;
ret Bool.23;
procedure List.2 (List.119, List.120):
let List.671 : U64 = CallByName List.6 List.119;
let List.667 : Int1 = CallByName Num.22 List.120 List.671;
if List.667 then
let List.669 : {} = CallByName List.66 List.119 List.120;
let List.668 : [C {}, C {}] = TagId(1) List.669;
ret List.668;
procedure List.2 (List.120, List.121):
let List.681 : U64 = CallByName List.6 List.120;
let List.677 : Int1 = CallByName Num.22 List.121 List.681;
if List.677 then
let List.679 : {} = CallByName List.66 List.120 List.121;
let List.678 : [C {}, C {}] = TagId(1) List.679;
ret List.678;
else
let List.666 : {} = Struct {};
let List.665 : [C {}, C {}] = TagId(0) List.666;
ret List.665;
let List.676 : {} = Struct {};
let List.675 : [C {}, C {}] = TagId(0) List.676;
ret List.675;
procedure List.6 (#Attr.2):
let List.672 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.672;
let List.682 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.682;
procedure List.66 (#Attr.2, #Attr.3):
let List.670 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.670;
let List.680 : {} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.680;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,16 +1,16 @@
procedure List.4 (List.135, List.136):
let List.668 : U64 = 1i64;
let List.666 : List U8 = CallByName List.70 List.135 List.668;
let List.665 : List U8 = CallByName List.71 List.666 List.136;
ret List.665;
procedure List.4 (List.136, List.137):
let List.678 : U64 = 1i64;
let List.676 : List U8 = CallByName List.70 List.136 List.678;
let List.675 : List U8 = CallByName List.71 List.676 List.137;
ret List.675;
procedure List.70 (#Attr.2, #Attr.3):
let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.669;
let List.679 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.679;
procedure List.71 (#Attr.2, #Attr.3):
let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.667;
let List.677 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.677;
procedure Test.23 (Test.24, Test.35, Test.22):
let Test.37 : List U8 = CallByName List.4 Test.24 Test.22;

View file

@ -67,85 +67,85 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.100 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
joinpoint List.694 List.174 List.175 List.176 List.177 List.178:
let List.696 : Int1 = CallByName Num.22 List.177 List.178;
if List.696 then
let List.700 : {Str, Str} = CallByName List.66 List.174 List.177;
inc List.700;
let List.179 : List U8 = CallByName Test.71 List.175 List.700;
let List.699 : U64 = 1i64;
let List.698 : U64 = CallByName Num.51 List.177 List.699;
jump List.694 List.174 List.179 List.176 List.698 List.178;
procedure List.101 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : {Str, Str} = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : List U8 = CallByName Test.71 List.176 List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.26;
jump List.694 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
jump List.678 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
procedure List.100 (#Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : {Str, Str} = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : List U8 = CallByName Test.71 List.175 List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.31, #Derived_gen.32, #Derived_gen.33, #Derived_gen.34, #Derived_gen.35):
joinpoint List.704 List.175 List.176 List.177 List.178 List.179:
let List.706 : Int1 = CallByName Num.22 List.178 List.179;
if List.706 then
let List.710 : {Str, Str} = CallByName List.66 List.175 List.178;
inc List.710;
let List.180 : List U8 = CallByName Test.71 List.176 List.710;
let List.709 : U64 = 1i64;
let List.708 : U64 = CallByName Num.51 List.178 List.709;
jump List.704 List.175 List.180 List.177 List.708 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.34;
jump List.668 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38;
inc #Derived_gen.31;
jump List.704 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.171, List.172, List.173):
let List.692 : U64 = 0i64;
let List.693 : U64 = CallByName List.6 List.171;
let List.691 : List U8 = CallByName List.100 List.171 List.172 List.173 List.692 List.693;
ret List.691;
procedure List.4 (List.135, List.136):
let List.713 : U64 = 1i64;
let List.712 : List U8 = CallByName List.70 List.135 List.713;
let List.711 : List U8 = CallByName List.71 List.712 List.136;
ret List.711;
procedure List.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
procedure List.6 (#Attr.2):
let List.716 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.716;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : List U8 = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.66 (#Attr.2, #Attr.3):
let List.701 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.702 : U64 = 0i64;
let List.703 : U64 = CallByName List.6 List.172;
let List.701 : List U8 = CallByName List.101 List.172 List.173 List.174 List.702 List.703;
ret List.701;
procedure List.4 (List.136, List.137):
let List.723 : U64 = 1i64;
let List.722 : List U8 = CallByName List.70 List.136 List.723;
let List.721 : List U8 = CallByName List.71 List.722 List.137;
ret List.721;
procedure List.6 (#Attr.2):
let List.700 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.700;
procedure List.6 (#Attr.2):
let List.726 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.726;
procedure List.66 (#Attr.2, #Attr.3):
let List.685 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure List.66 (#Attr.2, #Attr.3):
let List.711 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.711;
procedure List.70 (#Attr.2, #Attr.3):
let List.707 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.707;
let List.717 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.717;
procedure List.71 (#Attr.2, #Attr.3):
let List.705 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.705;
let List.715 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.715;
procedure List.8 (#Attr.2, #Attr.3):
let List.715 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.715;
let List.725 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.725;
procedure Num.127 (#Attr.2):
let Num.288 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -39,54 +39,54 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.100 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : {Str, Str} = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : List U8 = CallByName Test.71 List.175 List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : {Str, Str} = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : List U8 = CallByName Test.71 List.176 List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.16;
jump List.668 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
jump List.678 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.4 (List.135, List.136):
let List.687 : U64 = 1i64;
let List.686 : List U8 = CallByName List.70 List.135 List.687;
let List.685 : List U8 = CallByName List.71 List.686 List.136;
ret List.685;
procedure List.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : List U8 = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.4 (List.136, List.137):
let List.697 : U64 = 1i64;
let List.696 : List U8 = CallByName List.70 List.136 List.697;
let List.695 : List U8 = CallByName List.71 List.696 List.137;
ret List.695;
procedure List.6 (#Attr.2):
let List.700 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.700;
procedure List.66 (#Attr.2, #Attr.3):
let List.685 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure List.70 (#Attr.2, #Attr.3):
let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.681;
let List.691 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.691;
procedure List.71 (#Attr.2, #Attr.3):
let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.679;
let List.689 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.689;
procedure List.8 (#Attr.2, #Attr.3):
let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.689;
let List.699 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.699;
procedure Num.127 (#Attr.2):
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -46,54 +46,54 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.100 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : {Str, Str} = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : List U8 = CallByName Test.71 List.175 List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : {Str, Str} = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : List U8 = CallByName Test.71 List.176 List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.20;
jump List.668 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
jump List.678 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.4 (List.135, List.136):
let List.687 : U64 = 1i64;
let List.686 : List U8 = CallByName List.70 List.135 List.687;
let List.685 : List U8 = CallByName List.71 List.686 List.136;
ret List.685;
procedure List.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : List U8 = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.4 (List.136, List.137):
let List.697 : U64 = 1i64;
let List.696 : List U8 = CallByName List.70 List.136 List.697;
let List.695 : List U8 = CallByName List.71 List.696 List.137;
ret List.695;
procedure List.6 (#Attr.2):
let List.700 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.700;
procedure List.66 (#Attr.2, #Attr.3):
let List.685 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure List.70 (#Attr.2, #Attr.3):
let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.681;
let List.691 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.691;
procedure List.71 (#Attr.2, #Attr.3):
let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.679;
let List.689 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.689;
procedure List.8 (#Attr.2, #Attr.3):
let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.689;
let List.699 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.699;
procedure Num.127 (#Attr.2):
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -11,23 +11,23 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.4 (List.135, List.136):
let List.675 : U64 = 1i64;
let List.674 : List U8 = CallByName List.70 List.135 List.675;
let List.673 : List U8 = CallByName List.71 List.674 List.136;
ret List.673;
procedure List.4 (List.136, List.137):
let List.685 : U64 = 1i64;
let List.684 : List U8 = CallByName List.70 List.136 List.685;
let List.683 : List U8 = CallByName List.71 List.684 List.137;
ret List.683;
procedure List.70 (#Attr.2, #Attr.3):
let List.669 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.669;
let List.679 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.679;
procedure List.71 (#Attr.2, #Attr.3):
let List.667 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.667;
let List.677 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.677;
procedure List.8 (#Attr.2, #Attr.3):
let List.677 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.677;
let List.687 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.687;
procedure Num.127 (#Attr.2):
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -40,58 +40,58 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.100 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : Str = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : List U8 = CallByName Test.64 List.175 List.674 List.176;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : Str = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : List U8 = CallByName Test.64 List.176 List.684 List.177;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.10;
jump List.668 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
jump List.678 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
procedure List.13 (#Attr.2, #Attr.3):
let List.691 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.691;
let List.701 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.701;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.4 (List.135, List.136):
let List.687 : U64 = 1i64;
let List.686 : List U8 = CallByName List.70 List.135 List.687;
let List.685 : List U8 = CallByName List.71 List.686 List.136;
ret List.685;
procedure List.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : List U8 = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.4 (List.136, List.137):
let List.697 : U64 = 1i64;
let List.696 : List U8 = CallByName List.70 List.136 List.697;
let List.695 : List U8 = CallByName List.71 List.696 List.137;
ret List.695;
procedure List.6 (#Attr.2):
let List.700 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.700;
procedure List.66 (#Attr.2, #Attr.3):
let List.685 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure List.70 (#Attr.2, #Attr.3):
let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.681;
let List.691 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.691;
procedure List.71 (#Attr.2, #Attr.3):
let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.679;
let List.689 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.689;
procedure List.8 (#Attr.2, #Attr.3):
let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.689;
let List.699 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.699;
procedure Num.127 (#Attr.2):
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -43,58 +43,58 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.100 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : Str = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : List U8 = CallByName Test.64 List.175 List.674 List.176;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : Str = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : List U8 = CallByName Test.64 List.176 List.684 List.177;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.20;
jump List.668 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
jump List.678 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
procedure List.13 (#Attr.2, #Attr.3):
let List.691 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.691;
let List.701 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.701;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.4 (List.135, List.136):
let List.687 : U64 = 1i64;
let List.686 : List U8 = CallByName List.70 List.135 List.687;
let List.685 : List U8 = CallByName List.71 List.686 List.136;
ret List.685;
procedure List.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : List U8 = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.4 (List.136, List.137):
let List.697 : U64 = 1i64;
let List.696 : List U8 = CallByName List.70 List.136 List.697;
let List.695 : List U8 = CallByName List.71 List.696 List.137;
ret List.695;
procedure List.6 (#Attr.2):
let List.700 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.700;
procedure List.66 (#Attr.2, #Attr.3):
let List.685 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure List.70 (#Attr.2, #Attr.3):
let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.681;
let List.691 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.691;
procedure List.71 (#Attr.2, #Attr.3):
let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.679;
let List.689 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.689;
procedure List.8 (#Attr.2, #Attr.3):
let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.689;
let List.699 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.699;
procedure Num.127 (#Attr.2):
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -312,7 +312,7 @@ procedure Dict.72 (Dict.413, Dict.414, Dict.415):
let Dict.855 : {U64, U32} = CallByName Dict.73 Dict.413 Dict.418 Dict.417;
ret Dict.855;
procedure Dict.73 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12):
procedure Dict.73 (#Derived_gen.15, #Derived_gen.16, #Derived_gen.17):
joinpoint Dict.856 Dict.419 Dict.420 Dict.421:
let Dict.422 : {U32, U32} = CallByName Dict.22 Dict.419 Dict.420;
let Dict.863 : U32 = StructAtIndex 1 Dict.422;
@ -327,8 +327,8 @@ procedure Dict.73 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12):
let Dict.857 : {U64, U32} = Struct {Dict.420, Dict.421};
ret Dict.857;
in
inc #Derived_gen.10;
jump Dict.856 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12;
inc #Derived_gen.15;
jump Dict.856 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17;
procedure Dict.74 (#Derived_gen.48, #Derived_gen.49, #Derived_gen.50):
joinpoint Dict.762 Dict.423 Dict.424 Dict.425:
@ -902,171 +902,171 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.100 (#Derived_gen.34, #Derived_gen.35, #Derived_gen.36, #Derived_gen.37, #Derived_gen.38):
joinpoint List.732 List.174 List.175 List.176 List.177 List.178:
let List.734 : Int1 = CallByName Num.22 List.177 List.178;
if List.734 then
let List.738 : {Str, I64} = CallByName List.66 List.174 List.177;
inc List.738;
let List.179 : {Str, Int1} = CallByName Dict.188 List.175 List.738 List.176;
let List.737 : U64 = 1i64;
let List.736 : U64 = CallByName Num.51 List.177 List.737;
jump List.732 List.174 List.179 List.176 List.736 List.178;
procedure List.101 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : {Str, I64} = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.176 List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.34;
jump List.732 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36 #Derived_gen.37 #Derived_gen.38;
inc #Derived_gen.10;
jump List.678 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
procedure List.100 (#Derived_gen.60, #Derived_gen.61, #Derived_gen.62, #Derived_gen.63, #Derived_gen.64):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : {Str, I64} = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName Dict.159 List.175 List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.51, #Derived_gen.52, #Derived_gen.53, #Derived_gen.54, #Derived_gen.55):
joinpoint List.742 List.175 List.176 List.177 List.178 List.179:
let List.744 : Int1 = CallByName Num.22 List.178 List.179;
if List.744 then
let List.748 : {Str, I64} = CallByName List.66 List.175 List.178;
inc List.748;
let List.180 : {Str, Int1} = CallByName Dict.188 List.176 List.748 List.177;
let List.747 : U64 = 1i64;
let List.746 : U64 = CallByName Num.51 List.178 List.747;
jump List.742 List.175 List.180 List.177 List.746 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.60;
jump List.668 #Derived_gen.60 #Derived_gen.61 #Derived_gen.62 #Derived_gen.63 #Derived_gen.64;
inc #Derived_gen.51;
jump List.742 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53 #Derived_gen.54 #Derived_gen.55;
procedure List.101 (#Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19):
joinpoint List.707 List.183 List.184 List.185 List.186 List.187:
let List.709 : Int1 = CallByName Num.22 List.186 List.187;
if List.709 then
let List.713 : {Str, I64} = CallByName List.66 List.183 List.186;
inc List.713;
let List.188 : List {U32, U32} = CallByName Dict.407 List.184 List.713 List.186 List.185;
let List.712 : U64 = 1i64;
let List.711 : U64 = CallByName Num.51 List.186 List.712;
jump List.707 List.183 List.188 List.185 List.711 List.187;
procedure List.102 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.717 List.184 List.185 List.186 List.187 List.188:
let List.719 : Int1 = CallByName Num.22 List.187 List.188;
if List.719 then
let List.723 : {Str, I64} = CallByName List.66 List.184 List.187;
inc List.723;
let List.189 : List {U32, U32} = CallByName Dict.407 List.185 List.723 List.187 List.186;
let List.722 : U64 = 1i64;
let List.721 : U64 = CallByName Num.51 List.187 List.722;
jump List.717 List.184 List.189 List.186 List.721 List.188;
else
dec List.183;
ret List.184;
dec List.184;
ret List.185;
in
inc #Derived_gen.15;
jump List.707 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19;
inc #Derived_gen.23;
jump List.717 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
procedure List.11 (List.149, List.150):
let List.727 : List {U32, U32} = CallByName List.68 List.150;
let List.726 : List {U32, U32} = CallByName List.98 List.149 List.150 List.727;
ret List.726;
procedure List.11 (List.150, List.151):
let List.737 : List {U32, U32} = CallByName List.68 List.151;
let List.736 : List {U32, U32} = CallByName List.99 List.150 List.151 List.737;
ret List.736;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : {List {U32, U32}, List {Str, I64}, U64, Float32, U8} = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.18 (List.171, List.172, List.173):
let List.730 : U64 = 0i64;
let List.731 : U64 = CallByName List.6 List.171;
let List.729 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.730 List.731;
ret List.729;
procedure List.3 (List.127, List.128, List.129):
let List.691 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.127 List.128 List.129;
let List.690 : List {U32, U32} = StructAtIndex 0 List.691;
ret List.690;
procedure List.3 (List.127, List.128, List.129):
let List.693 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.127 List.128 List.129;
let List.692 : List {Str, I64} = StructAtIndex 0 List.693;
let #Derived_gen.74 : {Str, I64} = StructAtIndex 1 List.693;
dec #Derived_gen.74;
ret List.692;
procedure List.4 (List.135, List.136):
let List.702 : U64 = 1i64;
let List.700 : List {Str, I64} = CallByName List.70 List.135 List.702;
let List.699 : List {Str, I64} = CallByName List.71 List.700 List.136;
ret List.699;
procedure List.6 (#Attr.2):
let List.681 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.681;
procedure List.6 (#Attr.2):
let List.728 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.728;
procedure List.6 (#Attr.2):
let List.740 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.740;
procedure List.64 (List.124, List.125, List.126):
let List.689 : U64 = CallByName List.6 List.124;
let List.686 : Int1 = CallByName Num.22 List.125 List.689;
if List.686 then
let List.687 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.124 List.125 List.126;
ret List.687;
else
let List.685 : {List {U32, U32}, {U32, U32}} = Struct {List.124, List.126};
ret List.685;
procedure List.64 (List.124, List.125, List.126):
let List.698 : U64 = CallByName List.6 List.124;
let List.695 : Int1 = CallByName Num.22 List.125 List.698;
if List.695 then
let List.696 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.124 List.125 List.126;
ret List.696;
else
let List.694 : {List {Str, I64}, {Str, I64}} = Struct {List.124, List.126};
ret List.694;
procedure List.66 (#Attr.2, #Attr.3):
let List.739 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.740 : U64 = 0i64;
let List.741 : U64 = CallByName List.6 List.172;
let List.739 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.740 List.741;
ret List.739;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.688 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.688;
procedure List.3 (List.128, List.129, List.130):
let List.701 : {List {U32, U32}, {U32, U32}} = CallByName List.64 List.128 List.129 List.130;
let List.700 : List {U32, U32} = StructAtIndex 0 List.701;
ret List.700;
procedure List.3 (List.128, List.129, List.130):
let List.703 : {List {Str, I64}, {Str, I64}} = CallByName List.64 List.128 List.129 List.130;
let List.702 : List {Str, I64} = StructAtIndex 0 List.703;
let #Derived_gen.74 : {Str, I64} = StructAtIndex 1 List.703;
dec #Derived_gen.74;
ret List.702;
procedure List.4 (List.136, List.137):
let List.712 : U64 = 1i64;
let List.710 : List {Str, I64} = CallByName List.70 List.136 List.712;
let List.709 : List {Str, I64} = CallByName List.71 List.710 List.137;
ret List.709;
procedure List.6 (#Attr.2):
let List.691 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.691;
procedure List.6 (#Attr.2):
let List.738 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.738;
procedure List.6 (#Attr.2):
let List.750 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.750;
procedure List.64 (List.125, List.126, List.127):
let List.699 : U64 = CallByName List.6 List.125;
let List.696 : Int1 = CallByName Num.22 List.126 List.699;
if List.696 then
let List.697 : {List {U32, U32}, {U32, U32}} = CallByName List.67 List.125 List.126 List.127;
ret List.697;
else
let List.695 : {List {U32, U32}, {U32, U32}} = Struct {List.125, List.127};
ret List.695;
procedure List.64 (List.125, List.126, List.127):
let List.708 : U64 = CallByName List.6 List.125;
let List.705 : Int1 = CallByName Num.22 List.126 List.708;
if List.705 then
let List.706 : {List {Str, I64}, {Str, I64}} = CallByName List.67 List.125 List.126 List.127;
ret List.706;
else
let List.704 : {List {Str, I64}, {Str, I64}} = Struct {List.125, List.127};
ret List.704;
procedure List.66 (#Attr.2, #Attr.3):
let List.749 : {Str, I64} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.749;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.697 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.697;
let List.698 : {List {U32, U32}, {U32, U32}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.698;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.707 : {List {Str, I64}, {Str, I64}} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.707;
procedure List.68 (#Attr.2):
let List.725 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
ret List.725;
let List.735 : List {U32, U32} = lowlevel ListWithCapacity #Attr.2;
ret List.735;
procedure List.70 (#Attr.2, #Attr.3):
let List.703 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.703;
let List.713 : List {Str, I64} = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.713;
procedure List.71 (#Attr.2, #Attr.3):
let List.701 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.701;
let List.711 : List {Str, I64} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.711;
procedure List.71 (#Attr.2, #Attr.3):
let List.722 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.722;
let List.732 : List {U32, U32} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.732;
procedure List.83 (List.180, List.181, List.182):
let List.705 : U64 = 0i64;
let List.706 : U64 = CallByName List.6 List.180;
let List.704 : List {U32, U32} = CallByName List.101 List.180 List.181 List.182 List.705 List.706;
ret List.704;
procedure List.83 (List.181, List.182, List.183):
let List.715 : U64 = 0i64;
let List.716 : U64 = CallByName List.6 List.181;
let List.714 : List {U32, U32} = CallByName List.102 List.181 List.182 List.183 List.715 List.716;
ret List.714;
procedure List.98 (#Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
joinpoint List.716 List.151 List.152 List.153:
let List.724 : U64 = 0i64;
let List.718 : Int1 = CallByName Num.24 List.152 List.724;
if List.718 then
let List.723 : U64 = 1i64;
let List.720 : U64 = CallByName Num.75 List.152 List.723;
let List.721 : List {U32, U32} = CallByName List.71 List.153 List.151;
jump List.716 List.151 List.720 List.721;
procedure List.99 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22):
joinpoint List.726 List.152 List.153 List.154:
let List.734 : U64 = 0i64;
let List.728 : Int1 = CallByName Num.24 List.153 List.734;
if List.728 then
let List.733 : U64 = 1i64;
let List.730 : U64 = CallByName Num.75 List.153 List.733;
let List.731 : List {U32, U32} = CallByName List.71 List.154 List.152;
jump List.726 List.152 List.730 List.731;
else
ret List.153;
ret List.154;
in
jump List.716 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
jump List.726 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22;
procedure Num.131 (#Attr.2):
let Num.291 : U32 = lowlevel NumIntCast #Attr.2;
@ -1279,7 +1279,7 @@ procedure Str.45 (Str.91, Str.92, Str.93):
dec Str.344;
ret Str.91;
procedure Str.56 (#Derived_gen.51, #Derived_gen.52, #Derived_gen.53, #Derived_gen.54):
procedure Str.56 (#Derived_gen.56, #Derived_gen.57, #Derived_gen.58, #Derived_gen.59):
joinpoint Str.253 Str.96 Str.97 Str.98 Str.99:
inc Str.97;
let Str.254 : [C {}, C {Str, Str}] = CallByName Str.38 Str.97 Str.98;
@ -1303,9 +1303,9 @@ procedure Str.56 (#Derived_gen.51, #Derived_gen.52, #Derived_gen.53, #Derived_ge
dec Str.97;
ret Str.258;
in
inc #Derived_gen.54;
inc #Derived_gen.53;
jump Str.253 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53 #Derived_gen.54;
inc #Derived_gen.58;
inc #Derived_gen.59;
jump Str.253 #Derived_gen.56 #Derived_gen.57 #Derived_gen.58 #Derived_gen.59;
procedure Str.57 (Str.121, Str.122):
let Str.123 : U64 = CallByName Str.36 Str.121;
@ -1315,7 +1315,7 @@ procedure Str.57 (Str.121, Str.122):
let Str.279 : [C , C U64] = CallByName Str.58 Str.121 Str.122 Str.280 Str.125;
ret Str.279;
procedure Str.58 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_gen.31):
procedure Str.58 (#Derived_gen.33, #Derived_gen.34, #Derived_gen.35, #Derived_gen.36):
joinpoint Str.281 Str.126 Str.127 Str.128 Str.129:
let Str.283 : Int1 = CallByName Num.23 Str.128 Str.129;
if Str.283 then
@ -1335,9 +1335,9 @@ procedure Str.58 (#Derived_gen.28, #Derived_gen.29, #Derived_gen.30, #Derived_ge
let Str.282 : [C , C U64] = TagId(0) ;
ret Str.282;
in
inc #Derived_gen.29;
inc #Derived_gen.28;
jump Str.281 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31;
inc #Derived_gen.34;
inc #Derived_gen.33;
jump Str.281 #Derived_gen.33 #Derived_gen.34 #Derived_gen.35 #Derived_gen.36;
procedure Str.61 (Str.152, Str.153):
let Str.311 : Int1 = CallByName Num.22 Str.152 Str.153;

View file

@ -120,35 +120,35 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.100 (#Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11, #Derived_gen.12):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : I64 = CallByName List.66 List.174 List.177;
let List.179 : {Str, Int1} = CallByName Inspect.160 List.175 List.674 List.176;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : I64 = CallByName List.66 List.175 List.178;
let List.180 : {Str, Int1} = CallByName Inspect.160 List.176 List.684 List.177;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.8;
jump List.668 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12;
inc #Derived_gen.11;
jump List.678 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
let List.686 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.686;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.675;
let List.685 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.285 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -235,68 +235,68 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.100 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : {Str, Str} = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : {Str, Int1} = CallByName Inspect.229 List.175 List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23, #Derived_gen.24):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : {Str, Str} = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : {Str, Int1} = CallByName Inspect.229 List.176 List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.20;
jump List.668 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
jump List.678 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23 #Derived_gen.24;
procedure List.100 (#Derived_gen.42, #Derived_gen.43, #Derived_gen.44, #Derived_gen.45, #Derived_gen.46):
joinpoint List.680 List.174 List.175 List.176 List.177 List.178:
let List.682 : Int1 = CallByName Num.22 List.177 List.178;
if List.682 then
let List.686 : {Str, Str} = CallByName List.66 List.174 List.177;
inc List.686;
let List.179 : {Str, Int1} = CallByName Inspect.229 List.175 List.686;
let List.685 : U64 = 1i64;
let List.684 : U64 = CallByName Num.51 List.177 List.685;
jump List.680 List.174 List.179 List.176 List.684 List.178;
procedure List.101 (#Derived_gen.39, #Derived_gen.40, #Derived_gen.41, #Derived_gen.42, #Derived_gen.43):
joinpoint List.690 List.175 List.176 List.177 List.178 List.179:
let List.692 : Int1 = CallByName Num.22 List.178 List.179;
if List.692 then
let List.696 : {Str, Str} = CallByName List.66 List.175 List.178;
inc List.696;
let List.180 : {Str, Int1} = CallByName Inspect.229 List.176 List.696;
let List.695 : U64 = 1i64;
let List.694 : U64 = CallByName Num.51 List.178 List.695;
jump List.690 List.175 List.180 List.177 List.694 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.42;
jump List.680 #Derived_gen.42 #Derived_gen.43 #Derived_gen.44 #Derived_gen.45 #Derived_gen.46;
inc #Derived_gen.39;
jump List.690 #Derived_gen.39 #Derived_gen.40 #Derived_gen.41 #Derived_gen.42 #Derived_gen.43;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.171, List.172, List.173):
let List.678 : U64 = 0i64;
let List.679 : U64 = CallByName List.6 List.171;
let List.677 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.678 List.679;
ret List.677;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
procedure List.6 (#Attr.2):
let List.688 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.688;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.66 (#Attr.2, #Attr.3):
let List.687 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.688 : U64 = 0i64;
let List.689 : U64 = CallByName List.6 List.172;
let List.687 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.688 List.689;
ret List.687;
procedure List.6 (#Attr.2):
let List.686 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.686;
procedure List.6 (#Attr.2):
let List.698 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.698;
procedure List.66 (#Attr.2, #Attr.3):
let List.685 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure List.66 (#Attr.2, #Attr.3):
let List.697 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.697;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.290 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
ret Num.290;

View file

@ -150,36 +150,36 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.100 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : {[C I64, C Decimal], Str} = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : {Str, Int1} = CallByName Inspect.229 List.175 List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : {[C I64, C Decimal], Str} = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : {Str, Int1} = CallByName Inspect.229 List.176 List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.16;
jump List.668 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
inc #Derived_gen.18;
jump List.678 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
let List.686 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.686;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.675;
let List.685 : {[C I64, C Decimal], Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -160,36 +160,36 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.100 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : {Str, Str} = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : {Str, Int1} = CallByName Inspect.229 List.175 List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.10, #Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : {Str, Str} = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : {Str, Int1} = CallByName Inspect.229 List.176 List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.12;
jump List.668 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16;
inc #Derived_gen.10;
jump List.678 #Derived_gen.10 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
let List.686 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.686;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.675;
let List.685 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.288 : U64 = lowlevel NumSub #Attr.2 #Attr.3;

View file

@ -167,36 +167,36 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.100 (#Derived_gen.16, #Derived_gen.17, #Derived_gen.18, #Derived_gen.19, #Derived_gen.20):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : {Str, Str} = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : {Str, Int1} = CallByName Inspect.229 List.175 List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.14, #Derived_gen.15, #Derived_gen.16, #Derived_gen.17, #Derived_gen.18):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : {Str, Str} = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : {Str, Int1} = CallByName Inspect.229 List.176 List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.16;
jump List.668 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20;
inc #Derived_gen.14;
jump List.678 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16 #Derived_gen.17 #Derived_gen.18;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : {Str, Int1} = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : {Str, Int1} = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
let List.686 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.686;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.675;
let List.685 : {Str, Str} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.288 : U64 = lowlevel NumSub #Attr.2 #Attr.3;

View file

@ -156,43 +156,43 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.1 (List.118):
let List.678 : U64 = CallByName List.6 List.118;
let List.679 : U64 = 0i64;
let List.677 : Int1 = CallByName Bool.11 List.678 List.679;
ret List.677;
procedure List.1 (List.119):
let List.688 : U64 = CallByName List.6 List.119;
let List.689 : U64 = 0i64;
let List.687 : Int1 = CallByName Bool.11 List.688 List.689;
ret List.687;
procedure List.100 (#Derived_gen.23, #Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : Str = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : Str = CallByName Inspect.207 List.175 List.674;
dec List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.11, #Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : Str = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : Str = CallByName Inspect.207 List.176 List.684;
dec List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.23;
jump List.668 #Derived_gen.23 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
inc #Derived_gen.11;
jump List.678 #Derived_gen.11 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : Str = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : Str = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
let List.686 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.686;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.675;
let List.685 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.288 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
@ -290,7 +290,7 @@ procedure Str.45 (Str.91, Str.92, Str.93):
dec Str.341;
ret Str.91;
procedure Str.56 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22):
procedure Str.56 (#Derived_gen.24, #Derived_gen.25, #Derived_gen.26, #Derived_gen.27):
joinpoint Str.250 Str.96 Str.97 Str.98 Str.99:
inc Str.97;
let Str.251 : [C {}, C {Str, Str}] = CallByName Str.38 Str.97 Str.98;
@ -314,9 +314,9 @@ procedure Str.56 (#Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_ge
dec Str.97;
ret Str.255;
in
inc #Derived_gen.21;
inc #Derived_gen.22;
jump Str.250 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22;
inc #Derived_gen.27;
inc #Derived_gen.26;
jump Str.250 #Derived_gen.24 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27;
procedure Str.57 (Str.121, Str.122):
let Str.123 : U64 = CallByName Str.36 Str.121;
@ -326,7 +326,7 @@ procedure Str.57 (Str.121, Str.122):
let Str.276 : [C , C U64] = CallByName Str.58 Str.121 Str.122 Str.277 Str.125;
ret Str.276;
procedure Str.58 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16):
procedure Str.58 (#Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21):
joinpoint Str.278 Str.126 Str.127 Str.128 Str.129:
let Str.280 : Int1 = CallByName Num.23 Str.128 Str.129;
if Str.280 then
@ -346,9 +346,9 @@ procedure Str.58 (#Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_ge
let Str.279 : [C , C U64] = TagId(0) ;
ret Str.279;
in
inc #Derived_gen.14;
inc #Derived_gen.13;
jump Str.278 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16;
inc #Derived_gen.18;
inc #Derived_gen.19;
jump Str.278 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21;
procedure Str.61 (Str.152, Str.153):
let Str.308 : Int1 = CallByName Num.22 Str.152 Str.153;

View file

@ -159,43 +159,43 @@ procedure Inspect.63 (Inspect.295, Inspect.291):
procedure Inspect.64 (Inspect.297):
ret Inspect.297;
procedure List.1 (List.118):
let List.678 : U64 = CallByName List.6 List.118;
let List.679 : U64 = 0i64;
let List.677 : Int1 = CallByName Bool.11 List.678 List.679;
ret List.677;
procedure List.1 (List.119):
let List.688 : U64 = CallByName List.6 List.119;
let List.689 : U64 = 0i64;
let List.687 : Int1 = CallByName Bool.11 List.688 List.689;
ret List.687;
procedure List.100 (#Derived_gen.18, #Derived_gen.19, #Derived_gen.20, #Derived_gen.21, #Derived_gen.22):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : Str = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : Str = CallByName Inspect.207 List.175 List.674;
dec List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : Str = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : Str = CallByName Inspect.207 List.176 List.684;
dec List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.18;
jump List.668 #Derived_gen.18 #Derived_gen.19 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22;
inc #Derived_gen.26;
jump List.678 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : Str = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : Str = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
let List.686 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.686;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.675;
let List.685 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure Num.20 (#Attr.2, #Attr.3):
let Num.288 : U64 = lowlevel NumSub #Attr.2 #Attr.3;
@ -293,7 +293,7 @@ procedure Str.45 (Str.91, Str.92, Str.93):
dec Str.385;
ret Str.91;
procedure Str.56 (#Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_gen.28):
procedure Str.56 (#Derived_gen.20, #Derived_gen.21, #Derived_gen.22, #Derived_gen.23):
joinpoint Str.250 Str.96 Str.97 Str.98 Str.99:
inc Str.97;
let Str.251 : [C {}, C {Str, Str}] = CallByName Str.38 Str.97 Str.98;
@ -317,9 +317,9 @@ procedure Str.56 (#Derived_gen.25, #Derived_gen.26, #Derived_gen.27, #Derived_ge
dec Str.97;
ret Str.255;
in
inc #Derived_gen.28;
inc #Derived_gen.27;
jump Str.250 #Derived_gen.25 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28;
inc #Derived_gen.23;
inc #Derived_gen.22;
jump Str.250 #Derived_gen.20 #Derived_gen.21 #Derived_gen.22 #Derived_gen.23;
procedure Str.57 (Str.121, Str.122):
let Str.123 : U64 = CallByName Str.36 Str.121;

View file

@ -1,6 +1,6 @@
procedure List.6 (#Attr.2):
let List.665 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.665;
let List.675 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.675;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.285 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -6,40 +6,40 @@ procedure Bool.2 ():
let Bool.23 : Int1 = true;
ret Bool.23;
procedure List.2 (List.119, List.120):
let List.679 : U64 = CallByName List.6 List.119;
let List.675 : Int1 = CallByName Num.22 List.120 List.679;
if List.675 then
let List.677 : I64 = CallByName List.66 List.119 List.120;
let List.676 : [C {}, C I64] = TagId(1) List.677;
ret List.676;
procedure List.2 (List.120, List.121):
let List.689 : U64 = CallByName List.6 List.120;
let List.685 : Int1 = CallByName Num.22 List.121 List.689;
if List.685 then
let List.687 : I64 = CallByName List.66 List.120 List.121;
let List.686 : [C {}, C I64] = TagId(1) List.687;
ret List.686;
else
let List.674 : {} = Struct {};
let List.673 : [C {}, C I64] = TagId(0) List.674;
ret List.673;
let List.684 : {} = Struct {};
let List.683 : [C {}, C I64] = TagId(0) List.684;
ret List.683;
procedure List.6 (#Attr.2):
let List.680 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.680;
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
procedure List.66 (#Attr.2, #Attr.3):
let List.678 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.678;
let List.688 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.688;
procedure List.9 (List.391):
let List.672 : U64 = 0i64;
let List.665 : [C {}, C I64] = CallByName List.2 List.391 List.672;
let List.669 : U8 = 1i64;
let List.670 : U8 = GetTagId List.665;
let List.671 : Int1 = lowlevel Eq List.669 List.670;
if List.671 then
let List.392 : I64 = UnionAtIndex (Id 1) (Index 0) List.665;
let List.666 : [C Int1, C I64] = TagId(1) List.392;
ret List.666;
procedure List.9 (List.392):
let List.682 : U64 = 0i64;
let List.675 : [C {}, C I64] = CallByName List.2 List.392 List.682;
let List.679 : U8 = 1i64;
let List.680 : U8 = GetTagId List.675;
let List.681 : Int1 = lowlevel Eq List.679 List.680;
if List.681 then
let List.393 : I64 = UnionAtIndex (Id 1) (Index 0) List.675;
let List.676 : [C Int1, C I64] = TagId(1) List.393;
ret List.676;
else
let List.668 : Int1 = true;
let List.667 : [C Int1, C I64] = TagId(0) List.668;
ret List.667;
let List.678 : Int1 = true;
let List.677 : [C Int1, C I64] = TagId(0) List.678;
ret List.677;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -6,118 +6,118 @@ procedure Bool.2 ():
let Bool.24 : Int1 = true;
ret Bool.24;
procedure List.105 (#Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11):
joinpoint List.703 List.290 List.291 List.292 List.293 List.294 List.295:
let List.705 : Int1 = CallByName Num.22 List.294 List.295;
if List.705 then
let List.711 : [<r>C I64, C List *self] = CallByName List.66 List.290 List.294;
inc List.711;
let List.712 : [<r>C I64, C List *self] = CallByName List.66 List.291 List.294;
inc List.712;
let List.296 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.711 List.712;
let List.707 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.71 List.292 List.296;
let List.709 : U64 = 1i64;
let List.708 : U64 = CallByName Num.51 List.294 List.709;
jump List.703 List.290 List.291 List.707 List.293 List.708 List.295;
procedure List.106 (#Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6):
joinpoint List.713 List.291 List.292 List.293 List.294 List.295 List.296:
let List.715 : Int1 = CallByName Num.22 List.295 List.296;
if List.715 then
let List.721 : [<r>C I64, C List *self] = CallByName List.66 List.291 List.295;
inc List.721;
let List.722 : [<r>C I64, C List *self] = CallByName List.66 List.292 List.295;
inc List.722;
let List.297 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName Test.15 List.721 List.722;
let List.717 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.71 List.293 List.297;
let List.719 : U64 = 1i64;
let List.718 : U64 = CallByName Num.51 List.295 List.719;
jump List.713 List.291 List.292 List.717 List.294 List.718 List.296;
else
dec List.291;
dec List.290;
ret List.292;
dec List.292;
ret List.293;
in
inc #Derived_gen.6;
inc #Derived_gen.7;
jump List.703 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11;
inc #Derived_gen.1;
inc #Derived_gen.2;
jump List.713 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6;
procedure List.115 (List.562, List.563, List.564):
let List.679 : U64 = 0i64;
let List.680 : U64 = CallByName List.6 List.562;
let List.678 : [C {}, C {}] = CallByName List.80 List.562 List.563 List.564 List.679 List.680;
ret List.678;
procedure List.116 (List.563, List.564, List.565):
let List.689 : U64 = 0i64;
let List.690 : U64 = CallByName List.6 List.563;
let List.688 : [C {}, C {}] = CallByName List.80 List.563 List.564 List.565 List.689 List.690;
ret List.688;
procedure List.23 (List.286, List.287, List.288):
let List.715 : U64 = CallByName List.6 List.286;
let List.716 : U64 = CallByName List.6 List.287;
let List.289 : U64 = CallByName Num.148 List.715 List.716;
let List.701 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.68 List.289;
let List.702 : U64 = 0i64;
let List.700 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.105 List.286 List.287 List.701 List.288 List.702 List.289;
ret List.700;
procedure List.247 (List.667, List.248, List.246):
let List.697 : Int1 = CallByName Test.1 List.248;
if List.697 then
let List.699 : {} = Struct {};
let List.698 : [C {}, C {}] = TagId(1) List.699;
ret List.698;
else
let List.696 : {} = Struct {};
let List.695 : [C {}, C {}] = TagId(0) List.696;
ret List.695;
procedure List.56 (List.245, List.246):
let List.676 : {} = Struct {};
let List.668 : [C {}, C {}] = CallByName List.115 List.245 List.676 List.246;
let List.673 : U8 = 1i64;
let List.674 : U8 = GetTagId List.668;
let List.675 : Int1 = lowlevel Eq List.673 List.674;
if List.675 then
let List.669 : Int1 = CallByName Bool.2;
ret List.669;
else
let List.670 : Int1 = CallByName Bool.1;
ret List.670;
procedure List.6 (#Attr.2):
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.666;
procedure List.6 (#Attr.2):
let List.694 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.694;
procedure List.66 (#Attr.2, #Attr.3):
let List.693 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.693;
procedure List.66 (#Attr.2, #Attr.3):
let List.713 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.713;
procedure List.68 (#Attr.2):
let List.714 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
ret List.714;
procedure List.71 (#Attr.2, #Attr.3):
let List.710 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
procedure List.23 (List.287, List.288, List.289):
let List.725 : U64 = CallByName List.6 List.287;
let List.726 : U64 = CallByName List.6 List.288;
let List.290 : U64 = CallByName Num.148 List.725 List.726;
let List.711 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.68 List.290;
let List.712 : U64 = 0i64;
let List.710 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.106 List.287 List.288 List.711 List.289 List.712 List.290;
ret List.710;
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.681 List.565 List.566 List.567 List.568 List.569:
let List.683 : Int1 = CallByName Num.22 List.568 List.569;
if List.683 then
let List.692 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.565 List.568;
inc List.692;
let List.684 : [C {}, C {}] = CallByName List.247 List.566 List.692 List.567;
let List.689 : U8 = 1i64;
let List.690 : U8 = GetTagId List.684;
let List.691 : Int1 = lowlevel Eq List.689 List.690;
if List.691 then
let List.570 : {} = UnionAtIndex (Id 1) (Index 0) List.684;
let List.687 : U64 = 1i64;
let List.686 : U64 = CallByName Num.51 List.568 List.687;
jump List.681 List.565 List.570 List.567 List.686 List.569;
procedure List.248 (List.677, List.249, List.247):
let List.707 : Int1 = CallByName Test.1 List.249;
if List.707 then
let List.709 : {} = Struct {};
let List.708 : [C {}, C {}] = TagId(1) List.709;
ret List.708;
else
let List.706 : {} = Struct {};
let List.705 : [C {}, C {}] = TagId(0) List.706;
ret List.705;
procedure List.56 (List.246, List.247):
let List.686 : {} = Struct {};
let List.678 : [C {}, C {}] = CallByName List.116 List.246 List.686 List.247;
let List.683 : U8 = 1i64;
let List.684 : U8 = GetTagId List.678;
let List.685 : Int1 = lowlevel Eq List.683 List.684;
if List.685 then
let List.679 : Int1 = CallByName Bool.2;
ret List.679;
else
let List.680 : Int1 = CallByName Bool.1;
ret List.680;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
procedure List.6 (#Attr.2):
let List.704 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.704;
procedure List.66 (#Attr.2, #Attr.3):
let List.703 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.703;
procedure List.66 (#Attr.2, #Attr.3):
let List.723 : [<r>C I64, C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.723;
procedure List.68 (#Attr.2):
let List.724 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListWithCapacity #Attr.2;
ret List.724;
procedure List.71 (#Attr.2, #Attr.3):
let List.720 : List {[<r>C I64, C List *self], [<r>C I64, C List *self]} = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.720;
procedure List.80 (#Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10, #Derived_gen.11):
joinpoint List.691 List.566 List.567 List.568 List.569 List.570:
let List.693 : Int1 = CallByName Num.22 List.569 List.570;
if List.693 then
let List.702 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = CallByName List.66 List.566 List.569;
inc List.702;
let List.694 : [C {}, C {}] = CallByName List.248 List.567 List.702 List.568;
let List.699 : U8 = 1i64;
let List.700 : U8 = GetTagId List.694;
let List.701 : Int1 = lowlevel Eq List.699 List.700;
if List.701 then
let List.571 : {} = UnionAtIndex (Id 1) (Index 0) List.694;
let List.697 : U64 = 1i64;
let List.696 : U64 = CallByName Num.51 List.569 List.697;
jump List.691 List.566 List.571 List.568 List.696 List.570;
else
dec List.565;
let List.571 : {} = UnionAtIndex (Id 0) (Index 0) List.684;
let List.688 : [C {}, C {}] = TagId(0) List.571;
ret List.688;
dec List.566;
let List.572 : {} = UnionAtIndex (Id 0) (Index 0) List.694;
let List.698 : [C {}, C {}] = TagId(0) List.572;
ret List.698;
else
dec List.565;
let List.682 : [C {}, C {}] = TagId(1) List.566;
ret List.682;
dec List.566;
let List.692 : [C {}, C {}] = TagId(1) List.567;
ret List.692;
in
inc #Derived_gen.0;
jump List.681 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
inc #Derived_gen.7;
jump List.691 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10 #Derived_gen.11;
procedure Num.148 (Num.226, Num.227):
let Num.290 : Int1 = CallByName Num.22 Num.226 Num.227;
@ -138,7 +138,7 @@ procedure Num.51 (#Attr.2, #Attr.3):
let Num.286 : U64 = lowlevel NumAddWrap #Attr.2 #Attr.3;
ret Num.286;
procedure Test.1 (#Derived_gen.5):
procedure Test.1 (#Derived_gen.0):
joinpoint Test.26 Test.6:
let Test.65 : [<r>C I64, C List *self] = StructAtIndex 1 Test.6;
let Test.66 : U8 = 0i64;
@ -220,7 +220,7 @@ procedure Test.1 (#Derived_gen.5):
let Test.44 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.45, Test.46};
jump Test.26 Test.44;
in
jump Test.26 #Derived_gen.5;
jump Test.26 #Derived_gen.0;
procedure Test.15 (Test.16, Test.17):
let Test.36 : {[<r>C I64, C List *self], [<r>C I64, C List *self]} = Struct {Test.16, Test.17};

View file

@ -1,33 +1,33 @@
procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : [<rnu>C *self, <null>] = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.175 List.674;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : [<rnu>C *self, <null>] = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName Test.7 List.176 List.684;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.0;
jump List.668 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
jump List.678 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : [<rnu><null>, C {[<rnu>C *self, <null>], *self}] = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.6 (#Attr.2):
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
let List.686 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.686;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.675;
let List.685 : [<rnu>C *self, <null>] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,16 +1,16 @@
procedure List.4 (List.135, List.136):
let List.668 : U64 = 1i64;
let List.666 : List I64 = CallByName List.70 List.135 List.668;
let List.665 : List I64 = CallByName List.71 List.666 List.136;
ret List.665;
procedure List.4 (List.136, List.137):
let List.678 : U64 = 1i64;
let List.676 : List I64 = CallByName List.70 List.136 List.678;
let List.675 : List I64 = CallByName List.71 List.676 List.137;
ret List.675;
procedure List.70 (#Attr.2, #Attr.3):
let List.669 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.669;
let List.679 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.679;
procedure List.71 (#Attr.2, #Attr.3):
let List.667 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.667;
let List.677 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.677;
procedure Test.0 ():
let Test.2 : List I64 = Array [1i64];

View file

@ -1,16 +1,16 @@
procedure List.4 (List.135, List.136):
let List.668 : U64 = 1i64;
let List.666 : List I64 = CallByName List.70 List.135 List.668;
let List.665 : List I64 = CallByName List.71 List.666 List.136;
ret List.665;
procedure List.4 (List.136, List.137):
let List.678 : U64 = 1i64;
let List.676 : List I64 = CallByName List.70 List.136 List.678;
let List.675 : List I64 = CallByName List.71 List.676 List.137;
ret List.675;
procedure List.70 (#Attr.2, #Attr.3):
let List.669 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.669;
let List.679 : List I64 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.679;
procedure List.71 (#Attr.2, #Attr.3):
let List.667 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.667;
let List.677 : List I64 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.677;
procedure Test.1 (Test.2):
let Test.6 : I64 = 42i64;

View file

@ -1,25 +1,25 @@
procedure List.3 (List.127, List.128, List.129):
let List.668 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129;
let List.667 : List I64 = StructAtIndex 0 List.668;
ret List.667;
procedure List.3 (List.128, List.129, List.130):
let List.678 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130;
let List.677 : List I64 = StructAtIndex 0 List.678;
ret List.677;
procedure List.6 (#Attr.2):
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.666;
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
procedure List.64 (List.124, List.125, List.126):
let List.673 : U64 = CallByName List.6 List.124;
let List.670 : Int1 = CallByName Num.22 List.125 List.673;
if List.670 then
let List.671 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126;
ret List.671;
procedure List.64 (List.125, List.126, List.127):
let List.683 : U64 = CallByName List.6 List.125;
let List.680 : Int1 = CallByName Num.22 List.126 List.683;
if List.680 then
let List.681 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127;
ret List.681;
else
let List.669 : {List I64, I64} = Struct {List.124, List.126};
ret List.669;
let List.679 : {List I64, I64} = Struct {List.125, List.127};
ret List.679;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.672 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.672;
let List.682 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.682;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.283 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -1,22 +1,22 @@
procedure List.2 (List.119, List.120):
let List.671 : U64 = CallByName List.6 List.119;
let List.667 : Int1 = CallByName Num.22 List.120 List.671;
if List.667 then
let List.669 : I64 = CallByName List.66 List.119 List.120;
let List.668 : [C {}, C I64] = TagId(1) List.669;
ret List.668;
procedure List.2 (List.120, List.121):
let List.681 : U64 = CallByName List.6 List.120;
let List.677 : Int1 = CallByName Num.22 List.121 List.681;
if List.677 then
let List.679 : I64 = CallByName List.66 List.120 List.121;
let List.678 : [C {}, C I64] = TagId(1) List.679;
ret List.678;
else
let List.666 : {} = Struct {};
let List.665 : [C {}, C I64] = TagId(0) List.666;
ret List.665;
let List.676 : {} = Struct {};
let List.675 : [C {}, C I64] = TagId(0) List.676;
ret List.675;
procedure List.6 (#Attr.2):
let List.672 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.672;
let List.682 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.682;
procedure List.66 (#Attr.2, #Attr.3):
let List.670 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.670;
let List.680 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.680;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,10 +1,10 @@
procedure List.6 (#Attr.2):
let List.665 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.665;
let List.675 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.675;
procedure List.6 (#Attr.2):
let List.666 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.666;
let List.676 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.676;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.283 : U64 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -1,66 +1,66 @@
procedure List.100 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
joinpoint List.679 List.174 List.175 List.176 List.177 List.178:
let List.681 : Int1 = CallByName Num.22 List.177 List.178;
if List.681 then
let List.685 : Str = CallByName List.66 List.174 List.177;
inc List.685;
let List.179 : List Str = CallByName List.283 List.175 List.685 List.176;
dec List.685;
let List.684 : U64 = 1i64;
let List.683 : U64 = CallByName Num.51 List.177 List.684;
jump List.679 List.174 List.179 List.176 List.683 List.178;
procedure List.101 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
joinpoint List.689 List.175 List.176 List.177 List.178 List.179:
let List.691 : Int1 = CallByName Num.22 List.178 List.179;
if List.691 then
let List.695 : Str = CallByName List.66 List.175 List.178;
inc List.695;
let List.180 : List Str = CallByName List.284 List.176 List.695 List.177;
dec List.695;
let List.694 : U64 = 1i64;
let List.693 : U64 = CallByName Num.51 List.178 List.694;
jump List.689 List.175 List.180 List.177 List.693 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.3;
jump List.679 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
jump List.689 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
procedure List.18 (List.171, List.172, List.173):
let List.677 : U64 = 0i64;
let List.678 : U64 = CallByName List.6 List.171;
let List.676 : List Str = CallByName List.100 List.171 List.172 List.173 List.677 List.678;
ret List.676;
procedure List.18 (List.172, List.173, List.174):
let List.687 : U64 = 0i64;
let List.688 : U64 = CallByName List.6 List.172;
let List.686 : List Str = CallByName List.101 List.172 List.173 List.174 List.687 List.688;
ret List.686;
procedure List.2 (List.119, List.120):
let List.671 : U64 = CallByName List.6 List.119;
let List.667 : Int1 = CallByName Num.22 List.120 List.671;
if List.667 then
let List.669 : Str = CallByName List.66 List.119 List.120;
inc List.669;
let List.668 : [C {}, C Str] = TagId(1) List.669;
ret List.668;
procedure List.2 (List.120, List.121):
let List.681 : U64 = CallByName List.6 List.120;
let List.677 : Int1 = CallByName Num.22 List.121 List.681;
if List.677 then
let List.679 : Str = CallByName List.66 List.120 List.121;
inc List.679;
let List.678 : [C {}, C Str] = TagId(1) List.679;
ret List.678;
else
let List.666 : {} = Struct {};
let List.665 : [C {}, C Str] = TagId(0) List.666;
ret List.665;
let List.676 : {} = Struct {};
let List.675 : [C {}, C Str] = TagId(0) List.676;
ret List.675;
procedure List.283 (List.284, List.285, List.281):
let List.688 : Str = CallByName Test.3 List.285;
let List.687 : List Str = CallByName List.71 List.284 List.688;
ret List.687;
procedure List.284 (List.285, List.286, List.282):
let List.698 : Str = CallByName Test.3 List.286;
let List.697 : List Str = CallByName List.71 List.285 List.698;
ret List.697;
procedure List.5 (List.280, List.281):
let List.282 : U64 = CallByName List.6 List.280;
let List.674 : List Str = CallByName List.68 List.282;
let List.673 : List Str = CallByName List.18 List.280 List.674 List.281;
ret List.673;
procedure List.5 (List.281, List.282):
let List.283 : U64 = CallByName List.6 List.281;
let List.684 : List Str = CallByName List.68 List.283;
let List.683 : List Str = CallByName List.18 List.281 List.684 List.282;
ret List.683;
procedure List.6 (#Attr.2):
let List.672 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.672;
let List.682 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.682;
procedure List.66 (#Attr.2, #Attr.3):
let List.670 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.670;
let List.680 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.680;
procedure List.68 (#Attr.2):
let List.690 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.690;
let List.700 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.700;
procedure List.71 (#Attr.2, #Attr.3):
let List.689 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.689;
let List.699 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.699;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,65 +1,65 @@
procedure List.100 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.679 List.174 List.175 List.176 List.177 List.178:
let List.681 : Int1 = CallByName Num.22 List.177 List.178;
if List.681 then
let List.685 : Str = CallByName List.66 List.174 List.177;
inc List.685;
let List.179 : List Str = CallByName List.283 List.175 List.685 List.176;
let List.684 : U64 = 1i64;
let List.683 : U64 = CallByName Num.51 List.177 List.684;
jump List.679 List.174 List.179 List.176 List.683 List.178;
procedure List.101 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
joinpoint List.689 List.175 List.176 List.177 List.178 List.179:
let List.691 : Int1 = CallByName Num.22 List.178 List.179;
if List.691 then
let List.695 : Str = CallByName List.66 List.175 List.178;
inc List.695;
let List.180 : List Str = CallByName List.284 List.176 List.695 List.177;
let List.694 : U64 = 1i64;
let List.693 : U64 = CallByName Num.51 List.178 List.694;
jump List.689 List.175 List.180 List.177 List.693 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.0;
jump List.679 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
inc #Derived_gen.3;
jump List.689 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
procedure List.18 (List.171, List.172, List.173):
let List.677 : U64 = 0i64;
let List.678 : U64 = CallByName List.6 List.171;
let List.676 : List Str = CallByName List.100 List.171 List.172 List.173 List.677 List.678;
ret List.676;
procedure List.18 (List.172, List.173, List.174):
let List.687 : U64 = 0i64;
let List.688 : U64 = CallByName List.6 List.172;
let List.686 : List Str = CallByName List.101 List.172 List.173 List.174 List.687 List.688;
ret List.686;
procedure List.2 (List.119, List.120):
let List.671 : U64 = CallByName List.6 List.119;
let List.667 : Int1 = CallByName Num.22 List.120 List.671;
if List.667 then
let List.669 : Str = CallByName List.66 List.119 List.120;
inc List.669;
let List.668 : [C {}, C Str] = TagId(1) List.669;
ret List.668;
procedure List.2 (List.120, List.121):
let List.681 : U64 = CallByName List.6 List.120;
let List.677 : Int1 = CallByName Num.22 List.121 List.681;
if List.677 then
let List.679 : Str = CallByName List.66 List.120 List.121;
inc List.679;
let List.678 : [C {}, C Str] = TagId(1) List.679;
ret List.678;
else
let List.666 : {} = Struct {};
let List.665 : [C {}, C Str] = TagId(0) List.666;
ret List.665;
let List.676 : {} = Struct {};
let List.675 : [C {}, C Str] = TagId(0) List.676;
ret List.675;
procedure List.283 (List.284, List.285, List.281):
let List.688 : Str = CallByName Test.3 List.285;
let List.687 : List Str = CallByName List.71 List.284 List.688;
ret List.687;
procedure List.284 (List.285, List.286, List.282):
let List.698 : Str = CallByName Test.3 List.286;
let List.697 : List Str = CallByName List.71 List.285 List.698;
ret List.697;
procedure List.5 (List.280, List.281):
let List.282 : U64 = CallByName List.6 List.280;
let List.674 : List Str = CallByName List.68 List.282;
let List.673 : List Str = CallByName List.18 List.280 List.674 List.281;
ret List.673;
procedure List.5 (List.281, List.282):
let List.283 : U64 = CallByName List.6 List.281;
let List.684 : List Str = CallByName List.68 List.283;
let List.683 : List Str = CallByName List.18 List.281 List.684 List.282;
ret List.683;
procedure List.6 (#Attr.2):
let List.672 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.672;
let List.682 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.682;
procedure List.66 (#Attr.2, #Attr.3):
let List.670 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.670;
let List.680 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.680;
procedure List.68 (#Attr.2):
let List.690 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.690;
let List.700 : List Str = lowlevel ListWithCapacity #Attr.2;
ret List.700;
procedure List.71 (#Attr.2, #Attr.3):
let List.689 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.689;
let List.699 : List Str = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.699;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,66 +1,66 @@
procedure List.100 (#Derived_gen.3, #Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7):
joinpoint List.671 List.174 List.175 List.176 List.177 List.178:
let List.673 : Int1 = CallByName Num.22 List.177 List.178;
if List.673 then
let List.677 : U8 = CallByName List.66 List.174 List.177;
let List.179 : List U8 = CallByName List.283 List.175 List.677 List.176;
let List.676 : U64 = 1i64;
let List.675 : U64 = CallByName Num.51 List.177 List.676;
jump List.671 List.174 List.179 List.176 List.675 List.178;
procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.681 List.175 List.176 List.177 List.178 List.179:
let List.683 : Int1 = CallByName Num.22 List.178 List.179;
if List.683 then
let List.687 : U8 = CallByName List.66 List.175 List.178;
let List.180 : List U8 = CallByName List.284 List.176 List.687 List.177;
let List.686 : U64 = 1i64;
let List.685 : U64 = CallByName Num.51 List.178 List.686;
jump List.681 List.175 List.180 List.177 List.685 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.3;
jump List.671 #Derived_gen.3 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7;
inc #Derived_gen.0;
jump List.681 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure List.18 (List.171, List.172, List.173):
let List.669 : U64 = 0i64;
let List.670 : U64 = CallByName List.6 List.171;
let List.668 : List U8 = CallByName List.100 List.171 List.172 List.173 List.669 List.670;
ret List.668;
procedure List.283 (List.284, List.285, List.281):
let List.684 : U8 = GetTagId List.281;
joinpoint List.685 List.682:
let List.681 : List U8 = CallByName List.71 List.284 List.682;
ret List.681;
in
switch List.684:
case 0:
let List.686 : U8 = CallByName Test.4 List.285 List.281;
jump List.685 List.686;
case 1:
let List.686 : U8 = CallByName Test.6 List.285 List.281;
jump List.685 List.686;
default:
let List.686 : U8 = CallByName Test.8 List.285;
jump List.685 List.686;
procedure List.5 (List.280, List.281):
let List.282 : U64 = CallByName List.6 List.280;
let List.666 : List U8 = CallByName List.68 List.282;
let List.665 : List U8 = CallByName List.18 List.280 List.666 List.281;
ret List.665;
procedure List.6 (#Attr.2):
let List.679 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.679;
procedure List.66 (#Attr.2, #Attr.3):
let List.678 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.679 : U64 = 0i64;
let List.680 : U64 = CallByName List.6 List.172;
let List.678 : List U8 = CallByName List.101 List.172 List.173 List.174 List.679 List.680;
ret List.678;
procedure List.284 (List.285, List.286, List.282):
let List.694 : U8 = GetTagId List.282;
joinpoint List.695 List.692:
let List.691 : List U8 = CallByName List.71 List.285 List.692;
ret List.691;
in
switch List.694:
case 0:
let List.696 : U8 = CallByName Test.4 List.286 List.282;
jump List.695 List.696;
case 1:
let List.696 : U8 = CallByName Test.6 List.286 List.282;
jump List.695 List.696;
default:
let List.696 : U8 = CallByName Test.8 List.286;
jump List.695 List.696;
procedure List.5 (List.281, List.282):
let List.283 : U64 = CallByName List.6 List.281;
let List.676 : List U8 = CallByName List.68 List.283;
let List.675 : List U8 = CallByName List.18 List.281 List.676 List.282;
ret List.675;
procedure List.6 (#Attr.2):
let List.689 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.689;
procedure List.66 (#Attr.2, #Attr.3):
let List.688 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.688;
procedure List.68 (#Attr.2):
let List.687 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.687;
let List.697 : List U8 = lowlevel ListWithCapacity #Attr.2;
ret List.697;
procedure List.71 (#Attr.2, #Attr.3):
let List.683 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.683;
let List.693 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.693;
procedure Num.19 (#Attr.2, #Attr.3):
let Num.285 : U8 = lowlevel NumAdd #Attr.2 #Attr.3;

View file

@ -1,25 +1,25 @@
procedure List.3 (List.127, List.128, List.129):
let List.666 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129;
let List.665 : List I64 = StructAtIndex 0 List.666;
ret List.665;
procedure List.3 (List.128, List.129, List.130):
let List.676 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130;
let List.675 : List I64 = StructAtIndex 0 List.676;
ret List.675;
procedure List.6 (#Attr.2):
let List.672 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.672;
let List.682 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.682;
procedure List.64 (List.124, List.125, List.126):
let List.671 : U64 = CallByName List.6 List.124;
let List.668 : Int1 = CallByName Num.22 List.125 List.671;
if List.668 then
let List.669 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126;
ret List.669;
procedure List.64 (List.125, List.126, List.127):
let List.681 : U64 = CallByName List.6 List.125;
let List.678 : Int1 = CallByName Num.22 List.126 List.681;
if List.678 then
let List.679 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127;
ret List.679;
else
let List.667 : {List I64, I64} = Struct {List.124, List.126};
ret List.667;
let List.677 : {List I64, I64} = Struct {List.125, List.127};
ret List.677;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.670 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.670;
let List.680 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.680;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,11 +1,11 @@
procedure List.28 (#Attr.2, #Attr.3):
let List.667 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
ret List.667;
let List.677 : List I64 = lowlevel ListSortWith { xs: `#Attr.#arg1` } #Attr.2 Num.46 #Attr.3;
ret List.677;
procedure List.59 (List.386):
let List.666 : {} = Struct {};
let List.665 : List I64 = CallByName List.28 List.386 List.666;
ret List.665;
procedure List.59 (List.387):
let List.676 : {} = Struct {};
let List.675 : List I64 = CallByName List.28 List.387 List.676;
ret List.675;
procedure Num.46 (#Attr.2, #Attr.3):
let Num.283 : U8 = lowlevel NumCompare #Attr.2 #Attr.3;

View file

@ -1,41 +1,41 @@
procedure List.2 (List.119, List.120):
let List.687 : U64 = CallByName List.6 List.119;
let List.684 : Int1 = CallByName Num.22 List.120 List.687;
if List.684 then
let List.686 : I64 = CallByName List.66 List.119 List.120;
let List.685 : [C {}, C I64] = TagId(1) List.686;
ret List.685;
procedure List.2 (List.120, List.121):
let List.697 : U64 = CallByName List.6 List.120;
let List.694 : Int1 = CallByName Num.22 List.121 List.697;
if List.694 then
let List.696 : I64 = CallByName List.66 List.120 List.121;
let List.695 : [C {}, C I64] = TagId(1) List.696;
ret List.695;
else
let List.683 : {} = Struct {};
let List.682 : [C {}, C I64] = TagId(0) List.683;
ret List.682;
let List.693 : {} = Struct {};
let List.692 : [C {}, C I64] = TagId(0) List.693;
ret List.692;
procedure List.3 (List.127, List.128, List.129):
let List.674 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129;
let List.673 : List I64 = StructAtIndex 0 List.674;
ret List.673;
procedure List.3 (List.128, List.129, List.130):
let List.684 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130;
let List.683 : List I64 = StructAtIndex 0 List.684;
ret List.683;
procedure List.6 (#Attr.2):
let List.672 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.672;
let List.682 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.682;
procedure List.64 (List.124, List.125, List.126):
let List.671 : U64 = CallByName List.6 List.124;
let List.668 : Int1 = CallByName Num.22 List.125 List.671;
if List.668 then
let List.669 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126;
ret List.669;
procedure List.64 (List.125, List.126, List.127):
let List.681 : U64 = CallByName List.6 List.125;
let List.678 : Int1 = CallByName Num.22 List.126 List.681;
if List.678 then
let List.679 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127;
ret List.679;
else
let List.667 : {List I64, I64} = Struct {List.124, List.126};
ret List.667;
let List.677 : {List I64, I64} = Struct {List.125, List.127};
ret List.677;
procedure List.66 (#Attr.2, #Attr.3):
let List.680 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.680;
let List.690 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.690;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.670 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.670;
let List.680 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.680;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.285 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,25 +1,25 @@
procedure List.3 (List.127, List.128, List.129):
let List.674 : {List U64, U64} = CallByName List.64 List.127 List.128 List.129;
let List.673 : List U64 = StructAtIndex 0 List.674;
ret List.673;
procedure List.3 (List.128, List.129, List.130):
let List.684 : {List U64, U64} = CallByName List.64 List.128 List.129 List.130;
let List.683 : List U64 = StructAtIndex 0 List.684;
ret List.683;
procedure List.6 (#Attr.2):
let List.672 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.672;
let List.682 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.682;
procedure List.64 (List.124, List.125, List.126):
let List.671 : U64 = CallByName List.6 List.124;
let List.668 : Int1 = CallByName Num.22 List.125 List.671;
if List.668 then
let List.669 : {List U64, U64} = CallByName List.67 List.124 List.125 List.126;
ret List.669;
procedure List.64 (List.125, List.126, List.127):
let List.681 : U64 = CallByName List.6 List.125;
let List.678 : Int1 = CallByName Num.22 List.126 List.681;
if List.678 then
let List.679 : {List U64, U64} = CallByName List.67 List.125 List.126 List.127;
ret List.679;
else
let List.667 : {List U64, U64} = Struct {List.124, List.126};
ret List.667;
let List.677 : {List U64, U64} = Struct {List.125, List.127};
ret List.677;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.670 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.670;
let List.680 : {List U64, U64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.680;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.283 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,52 +1,52 @@
procedure List.100 (#Derived_gen.4, #Derived_gen.5, #Derived_gen.6, #Derived_gen.7, #Derived_gen.8):
joinpoint List.671 List.174 List.175 List.176 List.177 List.178:
let List.673 : Int1 = CallByName Num.22 List.177 List.178;
if List.673 then
let List.677 : [<rnnu>C List *self] = CallByName List.66 List.174 List.177;
inc List.677;
let List.179 : List [<rnnu>C List *self] = CallByName List.283 List.175 List.677 List.176;
let List.676 : U64 = 1i64;
let List.675 : U64 = CallByName Num.51 List.177 List.676;
jump List.671 List.174 List.179 List.176 List.675 List.178;
procedure List.101 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.681 List.175 List.176 List.177 List.178 List.179:
let List.683 : Int1 = CallByName Num.22 List.178 List.179;
if List.683 then
let List.687 : [<rnnu>C List *self] = CallByName List.66 List.175 List.178;
inc List.687;
let List.180 : List [<rnnu>C List *self] = CallByName List.284 List.176 List.687 List.177;
let List.686 : U64 = 1i64;
let List.685 : U64 = CallByName Num.51 List.178 List.686;
jump List.681 List.175 List.180 List.177 List.685 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.4;
jump List.671 #Derived_gen.4 #Derived_gen.5 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8;
inc #Derived_gen.0;
jump List.681 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure List.18 (List.171, List.172, List.173):
let List.669 : U64 = 0i64;
let List.670 : U64 = CallByName List.6 List.171;
let List.668 : List [<rnnu>C List *self] = CallByName List.100 List.171 List.172 List.173 List.669 List.670;
ret List.668;
procedure List.283 (List.284, List.285, List.281):
let List.682 : [<rnnu>C List *self] = CallByName Test.2 List.285;
let List.681 : List [<rnnu>C List *self] = CallByName List.71 List.284 List.682;
ret List.681;
procedure List.5 (List.280, List.281):
let List.282 : U64 = CallByName List.6 List.280;
let List.666 : List [<rnnu>C List *self] = CallByName List.68 List.282;
let List.665 : List [<rnnu>C List *self] = CallByName List.18 List.280 List.666 List.281;
ret List.665;
procedure List.6 (#Attr.2):
let List.679 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.679;
procedure List.66 (#Attr.2, #Attr.3):
let List.678 : [<rnnu>C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.679 : U64 = 0i64;
let List.680 : U64 = CallByName List.6 List.172;
let List.678 : List [<rnnu>C List *self] = CallByName List.101 List.172 List.173 List.174 List.679 List.680;
ret List.678;
procedure List.284 (List.285, List.286, List.282):
let List.692 : [<rnnu>C List *self] = CallByName Test.2 List.286;
let List.691 : List [<rnnu>C List *self] = CallByName List.71 List.285 List.692;
ret List.691;
procedure List.5 (List.281, List.282):
let List.283 : U64 = CallByName List.6 List.281;
let List.676 : List [<rnnu>C List *self] = CallByName List.68 List.283;
let List.675 : List [<rnnu>C List *self] = CallByName List.18 List.281 List.676 List.282;
ret List.675;
procedure List.6 (#Attr.2):
let List.689 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.689;
procedure List.66 (#Attr.2, #Attr.3):
let List.688 : [<rnnu>C List *self] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.688;
procedure List.68 (#Attr.2):
let List.684 : List [<rnnu>C List *self] = lowlevel ListWithCapacity #Attr.2;
ret List.684;
let List.694 : List [<rnnu>C List *self] = lowlevel ListWithCapacity #Attr.2;
ret List.694;
procedure List.71 (#Attr.2, #Attr.3):
let List.683 : List [<rnnu>C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.683;
let List.693 : List [<rnnu>C List *self] = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.693;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.284 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1,41 +1,41 @@
procedure List.2 (List.119, List.120):
let List.687 : U64 = CallByName List.6 List.119;
let List.684 : Int1 = CallByName Num.22 List.120 List.687;
if List.684 then
let List.686 : I64 = CallByName List.66 List.119 List.120;
let List.685 : [C {}, C I64] = TagId(1) List.686;
ret List.685;
procedure List.2 (List.120, List.121):
let List.697 : U64 = CallByName List.6 List.120;
let List.694 : Int1 = CallByName Num.22 List.121 List.697;
if List.694 then
let List.696 : I64 = CallByName List.66 List.120 List.121;
let List.695 : [C {}, C I64] = TagId(1) List.696;
ret List.695;
else
let List.683 : {} = Struct {};
let List.682 : [C {}, C I64] = TagId(0) List.683;
ret List.682;
let List.693 : {} = Struct {};
let List.692 : [C {}, C I64] = TagId(0) List.693;
ret List.692;
procedure List.3 (List.127, List.128, List.129):
let List.674 : {List I64, I64} = CallByName List.64 List.127 List.128 List.129;
let List.673 : List I64 = StructAtIndex 0 List.674;
ret List.673;
procedure List.3 (List.128, List.129, List.130):
let List.684 : {List I64, I64} = CallByName List.64 List.128 List.129 List.130;
let List.683 : List I64 = StructAtIndex 0 List.684;
ret List.683;
procedure List.6 (#Attr.2):
let List.672 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.672;
let List.682 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.682;
procedure List.64 (List.124, List.125, List.126):
let List.671 : U64 = CallByName List.6 List.124;
let List.668 : Int1 = CallByName Num.22 List.125 List.671;
if List.668 then
let List.669 : {List I64, I64} = CallByName List.67 List.124 List.125 List.126;
ret List.669;
procedure List.64 (List.125, List.126, List.127):
let List.681 : U64 = CallByName List.6 List.125;
let List.678 : Int1 = CallByName Num.22 List.126 List.681;
if List.678 then
let List.679 : {List I64, I64} = CallByName List.67 List.125 List.126 List.127;
ret List.679;
else
let List.667 : {List I64, I64} = Struct {List.124, List.126};
ret List.667;
let List.677 : {List I64, I64} = Struct {List.125, List.127};
ret List.677;
procedure List.66 (#Attr.2, #Attr.3):
let List.680 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.680;
let List.690 : I64 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.690;
procedure List.67 (#Attr.2, #Attr.3, #Attr.4):
let List.670 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.670;
let List.680 : {List I64, I64} = lowlevel ListReplaceUnsafe #Attr.2 #Attr.3 #Attr.4;
ret List.680;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.285 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -29,58 +29,58 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.100 (#Derived_gen.6, #Derived_gen.7, #Derived_gen.8, #Derived_gen.9, #Derived_gen.10):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : Str = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : List U8 = CallByName Test.66 List.175 List.674 List.176;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.12, #Derived_gen.13, #Derived_gen.14, #Derived_gen.15, #Derived_gen.16):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : Str = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : List U8 = CallByName Test.66 List.176 List.684 List.177;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.6;
jump List.668 #Derived_gen.6 #Derived_gen.7 #Derived_gen.8 #Derived_gen.9 #Derived_gen.10;
inc #Derived_gen.12;
jump List.678 #Derived_gen.12 #Derived_gen.13 #Derived_gen.14 #Derived_gen.15 #Derived_gen.16;
procedure List.13 (#Attr.2, #Attr.3):
let List.691 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.691;
let List.701 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.701;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.4 (List.135, List.136):
let List.687 : U64 = 1i64;
let List.686 : List U8 = CallByName List.70 List.135 List.687;
let List.685 : List U8 = CallByName List.71 List.686 List.136;
ret List.685;
procedure List.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : List U8 = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.4 (List.136, List.137):
let List.697 : U64 = 1i64;
let List.696 : List U8 = CallByName List.70 List.136 List.697;
let List.695 : List U8 = CallByName List.71 List.696 List.137;
ret List.695;
procedure List.6 (#Attr.2):
let List.700 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.700;
procedure List.66 (#Attr.2, #Attr.3):
let List.685 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure List.70 (#Attr.2, #Attr.3):
let List.681 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.681;
let List.691 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.691;
procedure List.71 (#Attr.2, #Attr.3):
let List.679 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.679;
let List.689 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.689;
procedure List.8 (#Attr.2, #Attr.3):
let List.689 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.689;
let List.699 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.699;
procedure Num.127 (#Attr.2):
let Num.284 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -87,93 +87,93 @@ procedure Encode.26 (Encode.107, Encode.108):
let Encode.110 : List U8 = CallByName Encode.24 Encode.111 Encode.112 Encode.108;
ret Encode.110;
procedure List.100 (#Derived_gen.29, #Derived_gen.30, #Derived_gen.31, #Derived_gen.32, #Derived_gen.33):
joinpoint List.695 List.174 List.175 List.176 List.177 List.178:
let List.697 : Int1 = CallByName Num.22 List.177 List.178;
if List.697 then
let List.701 : Str = CallByName List.66 List.174 List.177;
inc List.701;
let List.179 : List U8 = CallByName Test.66 List.175 List.701 List.176;
let List.700 : U64 = 1i64;
let List.699 : U64 = CallByName Num.51 List.177 List.700;
jump List.695 List.174 List.179 List.176 List.699 List.178;
procedure List.101 (#Derived_gen.26, #Derived_gen.27, #Derived_gen.28, #Derived_gen.29, #Derived_gen.30):
joinpoint List.678 List.175 List.176 List.177 List.178 List.179:
let List.680 : Int1 = CallByName Num.22 List.178 List.179;
if List.680 then
let List.684 : [C {}, C {}, C Str] = CallByName List.66 List.175 List.178;
inc List.684;
let List.180 : List U8 = CallByName Test.66 List.176 List.684 List.177;
let List.683 : U64 = 1i64;
let List.682 : U64 = CallByName Num.51 List.178 List.683;
jump List.678 List.175 List.180 List.177 List.682 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.29;
jump List.695 #Derived_gen.29 #Derived_gen.30 #Derived_gen.31 #Derived_gen.32 #Derived_gen.33;
inc #Derived_gen.26;
jump List.678 #Derived_gen.26 #Derived_gen.27 #Derived_gen.28 #Derived_gen.29 #Derived_gen.30;
procedure List.100 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53):
joinpoint List.668 List.174 List.175 List.176 List.177 List.178:
let List.670 : Int1 = CallByName Num.22 List.177 List.178;
if List.670 then
let List.674 : [C {}, C {}, C Str] = CallByName List.66 List.174 List.177;
inc List.674;
let List.179 : List U8 = CallByName Test.66 List.175 List.674 List.176;
let List.673 : U64 = 1i64;
let List.672 : U64 = CallByName Num.51 List.177 List.673;
jump List.668 List.174 List.179 List.176 List.672 List.178;
procedure List.101 (#Derived_gen.49, #Derived_gen.50, #Derived_gen.51, #Derived_gen.52, #Derived_gen.53):
joinpoint List.705 List.175 List.176 List.177 List.178 List.179:
let List.707 : Int1 = CallByName Num.22 List.178 List.179;
if List.707 then
let List.711 : Str = CallByName List.66 List.175 List.178;
inc List.711;
let List.180 : List U8 = CallByName Test.66 List.176 List.711 List.177;
let List.710 : U64 = 1i64;
let List.709 : U64 = CallByName Num.51 List.178 List.710;
jump List.705 List.175 List.180 List.177 List.709 List.179;
else
dec List.174;
ret List.175;
dec List.175;
ret List.176;
in
inc #Derived_gen.49;
jump List.668 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53;
jump List.705 #Derived_gen.49 #Derived_gen.50 #Derived_gen.51 #Derived_gen.52 #Derived_gen.53;
procedure List.13 (#Attr.2, #Attr.3):
let List.691 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.691;
let List.701 : List [C {}, C {}, C Str] = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.701;
procedure List.13 (#Attr.2, #Attr.3):
let List.719 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.719;
let List.729 : List Str = lowlevel ListPrepend #Attr.2 #Attr.3;
ret List.729;
procedure List.18 (List.171, List.172, List.173):
let List.666 : U64 = 0i64;
let List.667 : U64 = CallByName List.6 List.171;
let List.665 : List U8 = CallByName List.100 List.171 List.172 List.173 List.666 List.667;
ret List.665;
procedure List.18 (List.171, List.172, List.173):
let List.693 : U64 = 0i64;
let List.694 : U64 = CallByName List.6 List.171;
let List.692 : List U8 = CallByName List.100 List.171 List.172 List.173 List.693 List.694;
ret List.692;
procedure List.4 (List.135, List.136):
let List.714 : U64 = 1i64;
let List.713 : List U8 = CallByName List.70 List.135 List.714;
let List.712 : List U8 = CallByName List.71 List.713 List.136;
ret List.712;
procedure List.6 (#Attr.2):
let List.690 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.690;
procedure List.6 (#Attr.2):
let List.717 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.717;
procedure List.66 (#Attr.2, #Attr.3):
let List.675 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.676 : U64 = 0i64;
let List.677 : U64 = CallByName List.6 List.172;
let List.675 : List U8 = CallByName List.101 List.172 List.173 List.174 List.676 List.677;
ret List.675;
procedure List.66 (#Attr.2, #Attr.3):
let List.702 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
procedure List.18 (List.172, List.173, List.174):
let List.703 : U64 = 0i64;
let List.704 : U64 = CallByName List.6 List.172;
let List.702 : List U8 = CallByName List.101 List.172 List.173 List.174 List.703 List.704;
ret List.702;
procedure List.4 (List.136, List.137):
let List.724 : U64 = 1i64;
let List.723 : List U8 = CallByName List.70 List.136 List.724;
let List.722 : List U8 = CallByName List.71 List.723 List.137;
ret List.722;
procedure List.6 (#Attr.2):
let List.700 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.700;
procedure List.6 (#Attr.2):
let List.727 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.727;
procedure List.66 (#Attr.2, #Attr.3):
let List.685 : [C {}, C {}, C Str] = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.685;
procedure List.66 (#Attr.2, #Attr.3):
let List.712 : Str = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.712;
procedure List.70 (#Attr.2, #Attr.3):
let List.708 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.708;
let List.718 : List U8 = lowlevel ListReserve #Attr.2 #Attr.3;
ret List.718;
procedure List.71 (#Attr.2, #Attr.3):
let List.706 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.706;
let List.716 : List U8 = lowlevel ListAppendUnsafe #Attr.2 #Attr.3;
ret List.716;
procedure List.8 (#Attr.2, #Attr.3):
let List.716 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.716;
let List.726 : List U8 = lowlevel ListConcat #Attr.2 #Attr.3;
ret List.726;
procedure Num.127 (#Attr.2):
let Num.288 : U8 = lowlevel NumIntCast #Attr.2;

View file

@ -2,81 +2,81 @@ procedure Bool.11 (#Attr.2, #Attr.3):
let Bool.23 : Int1 = lowlevel Eq #Attr.2 #Attr.3;
ret Bool.23;
procedure List.115 (List.562, List.563, List.564):
let List.683 : U64 = 0i64;
let List.684 : U64 = CallByName List.6 List.562;
let List.682 : [C U64, C U64] = CallByName List.80 List.562 List.563 List.564 List.683 List.684;
ret List.682;
procedure List.116 (List.563, List.564, List.565):
let List.693 : U64 = 0i64;
let List.694 : U64 = CallByName List.6 List.563;
let List.692 : [C U64, C U64] = CallByName List.80 List.563 List.564 List.565 List.693 List.694;
ret List.692;
procedure List.26 (List.212, List.213, List.214):
let List.676 : [C U64, C U64] = CallByName List.115 List.212 List.213 List.214;
let List.679 : U8 = 1i64;
let List.680 : U8 = GetTagId List.676;
let List.681 : Int1 = lowlevel Eq List.679 List.680;
if List.681 then
let List.215 : U64 = UnionAtIndex (Id 1) (Index 0) List.676;
ret List.215;
else
let List.216 : U64 = UnionAtIndex (Id 0) (Index 0) List.676;
procedure List.26 (List.213, List.214, List.215):
let List.686 : [C U64, C U64] = CallByName List.116 List.213 List.214 List.215;
let List.689 : U8 = 1i64;
let List.690 : U8 = GetTagId List.686;
let List.691 : Int1 = lowlevel Eq List.689 List.690;
if List.691 then
let List.216 : U64 = UnionAtIndex (Id 1) (Index 0) List.686;
ret List.216;
else
let List.217 : U64 = UnionAtIndex (Id 0) (Index 0) List.686;
ret List.217;
procedure List.38 (List.400, List.401):
let List.675 : U64 = CallByName List.6 List.400;
let List.402 : U64 = CallByName Num.77 List.675 List.401;
let List.665 : List U8 = CallByName List.43 List.400 List.402;
ret List.665;
procedure List.38 (List.401, List.402):
let List.685 : U64 = CallByName List.6 List.401;
let List.403 : U64 = CallByName Num.77 List.685 List.402;
let List.675 : List U8 = CallByName List.43 List.401 List.403;
ret List.675;
procedure List.43 (List.398, List.399):
let List.673 : U64 = CallByName List.6 List.398;
let List.672 : U64 = CallByName Num.77 List.673 List.399;
let List.667 : {U64, U64} = Struct {List.399, List.672};
let List.666 : List U8 = CallByName List.49 List.398 List.667;
ret List.666;
procedure List.43 (List.399, List.400):
let List.683 : U64 = CallByName List.6 List.399;
let List.682 : U64 = CallByName Num.77 List.683 List.400;
let List.677 : {U64, U64} = Struct {List.400, List.682};
let List.676 : List U8 = CallByName List.49 List.399 List.677;
ret List.676;
procedure List.49 (List.476, List.477):
let List.669 : U64 = StructAtIndex 1 List.477;
let List.670 : U64 = StructAtIndex 0 List.477;
let List.668 : List U8 = CallByName List.72 List.476 List.669 List.670;
ret List.668;
procedure List.49 (List.477, List.478):
let List.679 : U64 = StructAtIndex 1 List.478;
let List.680 : U64 = StructAtIndex 0 List.478;
let List.678 : List U8 = CallByName List.72 List.477 List.679 List.680;
ret List.678;
procedure List.6 (#Attr.2):
let List.674 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.674;
let List.684 : U64 = lowlevel ListLenU64 #Attr.2;
ret List.684;
procedure List.66 (#Attr.2, #Attr.3):
let List.697 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.697;
let List.707 : U8 = lowlevel ListGetUnsafe #Attr.2 #Attr.3;
ret List.707;
procedure List.72 (#Attr.2, #Attr.3, #Attr.4):
let List.671 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.671;
let List.681 : List U8 = lowlevel ListSublist #Attr.2 #Attr.3 #Attr.4;
ret List.681;
procedure List.80 (#Derived_gen.0, #Derived_gen.1, #Derived_gen.2, #Derived_gen.3, #Derived_gen.4):
joinpoint List.685 List.565 List.566 List.567 List.568 List.569:
let List.687 : Int1 = CallByName Num.22 List.568 List.569;
if List.687 then
let List.696 : U8 = CallByName List.66 List.565 List.568;
let List.688 : [C U64, C U64] = CallByName Test.3 List.566 List.696;
let List.693 : U8 = 1i64;
let List.694 : U8 = GetTagId List.688;
let List.695 : Int1 = lowlevel Eq List.693 List.694;
if List.695 then
let List.570 : U64 = UnionAtIndex (Id 1) (Index 0) List.688;
let List.691 : U64 = 1i64;
let List.690 : U64 = CallByName Num.51 List.568 List.691;
jump List.685 List.565 List.570 List.567 List.690 List.569;
joinpoint List.695 List.566 List.567 List.568 List.569 List.570:
let List.697 : Int1 = CallByName Num.22 List.569 List.570;
if List.697 then
let List.706 : U8 = CallByName List.66 List.566 List.569;
let List.698 : [C U64, C U64] = CallByName Test.3 List.567 List.706;
let List.703 : U8 = 1i64;
let List.704 : U8 = GetTagId List.698;
let List.705 : Int1 = lowlevel Eq List.703 List.704;
if List.705 then
let List.571 : U64 = UnionAtIndex (Id 1) (Index 0) List.698;
let List.701 : U64 = 1i64;
let List.700 : U64 = CallByName Num.51 List.569 List.701;
jump List.695 List.566 List.571 List.568 List.700 List.570;
else
dec List.565;
let List.571 : U64 = UnionAtIndex (Id 0) (Index 0) List.688;
let List.692 : [C U64, C U64] = TagId(0) List.571;
ret List.692;
dec List.566;
let List.572 : U64 = UnionAtIndex (Id 0) (Index 0) List.698;
let List.702 : [C U64, C U64] = TagId(0) List.572;
ret List.702;
else
dec List.565;
let List.686 : [C U64, C U64] = TagId(1) List.566;
ret List.686;
dec List.566;
let List.696 : [C U64, C U64] = TagId(1) List.567;
ret List.696;
in
inc #Derived_gen.0;
jump List.685 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
jump List.695 #Derived_gen.0 #Derived_gen.1 #Derived_gen.2 #Derived_gen.3 #Derived_gen.4;
procedure Num.22 (#Attr.2, #Attr.3):
let Num.286 : Int1 = lowlevel NumLt #Attr.2 #Attr.3;

View file

@ -1759,7 +1759,7 @@ fn lambda_capture_niches_with_other_lambda_capture() {
when val is
_ -> ""
capture2 = \val -> \{} -> "$(val)"
capture2 = \val -> \{} -> "${val}"
x : [A, B, C]
x = A
@ -2072,7 +2072,7 @@ fn polymorphic_expression_unification() {
]
parse_function : Str -> RenderTree
parse_function = \name ->
last = Indent [Text ".trace(\"$(name)\")" ]
last = Indent [Text ".trace(\"${name}\")" ]
Indent [last]
values = parse_function "interface_header"
@ -2636,7 +2636,7 @@ fn recursively_build_effect() {
hi = "Hello"
name = "World"
"$(hi), $(name)!"
"${hi}, ${name}!"
main =
when nest_help 4 is
@ -2956,8 +2956,8 @@ fn compose_recursive_lambda_set_productive_nullable_wrapped() {
else \x -> f (g x)
identity = \x -> x
exclaim = \s -> "$(s)!"
whisper = \s -> "($(s))"
exclaim = \s -> "${s}!"
whisper = \s -> "(${s})"
main =
res: Str -> Str
@ -3291,7 +3291,7 @@ fn dbg_nested_expr() {
fn dbg_inside_string() {
indoc!(
r#"
"Hello $(dbg "world")!"
"Hello ${dbg "world"}!"
"#
)
}
@ -3690,7 +3690,7 @@ fn dec_refcount_for_usage_after_early_return_in_if() {
else
third
"$(first), $(second)"
"${first}, ${second}"
display_n 3
"#

View file

@ -1,2 +1,2 @@
"""$(g)""":q
"""${g}""":q
f

View file

@ -0,0 +1,2 @@
dbg (a / a)
d

View file

@ -0,0 +1,32 @@
@0-8 SpaceAfter(
DbgStmt {
first: @4-7 BinOps(
[
(
@4-5 Var {
module_name: "",
ident: "a",
},
@5-6 Slash,
),
],
@6-7 Var {
module_name: "",
ident: "a",
},
),
extra_args: [],
continuation: @9-10 SpaceBefore(
Var {
module_name: "",
ident: "d",
},
[
Newline,
],
),
},
[
Newline,
],
)

View file

@ -0,0 +1,2 @@
dbg(a/a)
d

View file

@ -0,0 +1,40 @@
@0-7 SpaceAfter(
Defs(
Defs {
tags: [
EitherIndex(2147483648),
],
regions: [
@0-5,
],
space_before: [
Slice<roc_parse::ast::CommentOrNewline> { start: 0, length: 0 },
],
space_after: [
Slice<roc_parse::ast::CommentOrNewline> { start: 0, length: 0 },
],
spaces: [],
type_defs: [],
value_defs: [
Stmt(
@0-5 PncApply(
@0-3 Dbg,
[],
),
),
],
},
@6-7 SpaceBefore(
Var {
module_name: "",
ident: "d",
},
[
Newline,
],
),
),
[
Newline,
],
)

Some files were not shown because too many files have changed in this diff Show more