rudus/sandbox_run.txt

2380 lines
90 KiB
Plaintext

{
let test = 3
let quux = loop ([1, 2]) with {
([]) -> false
([x]) -> eq? (x, test)
([x, ...xs]) -> if eq? (x, test)
then :yes
else recur (xs)
}
let foo = :bar
fn not {
(false) -> true
(nil) -> true
(_) -> false
}
let frob = loop ([1, 2, 3]) with {
([]) -> false
([y]) -> eq? (y, test)
([y, ...ys]) -> if not (eq? (y, test) )
then recur (ys)
else true
}
[quux, frob]
}
binding `base` in prelude
stack depth: 1; match depth: 0
at stack index: 0
new locals: base@0//-1
binding `eq?` in prelude
stack depth: 2; match depth: 0
at stack index: 1
new locals: base@0//-1|eq?@1//0
***function clause matching: : (x, y)
binding `x` in eq?
stack depth: 2; match depth: 1
at stack index: 0
new locals: x@0//0
binding `y` in eq?
stack depth: 2; match depth: 0
at stack index: 1
new locals: x@0//0|y@1//0
***accessing keyword: base :eq? stack depth: 2
resolving binding `base` in eq?
locals: x@0//0|y@1//0
as enclosing upvalue 0
***after keyword access stack depth: 3
resolving binding `x` in eq?
locals: x@0//0|y@1//0
at locals position 0
resolving binding `y` in eq?
locals: x@0//0|y@1//0
at locals position 1
resolving binding `base` in prelude
locals: base@0//-1|eq?@1//0
at locals position 0
binding `first` in prelude
stack depth: 3; match depth: 0
at stack index: 2
new locals: base@0//-1|eq?@1//0|first@2//0
***function clause matching: : ([])
***function clause matching: : (xs as :list)
binding `xs` in first
stack depth: 1; match depth: 0
at stack index: 0
new locals: xs@0//0
***accessing keyword: base :first stack depth: 1
resolving binding `base` in first
locals: xs@0//0
as enclosing upvalue 0
***after keyword access stack depth: 2
resolving binding `xs` in first
locals: xs@0//0
at locals position 0
resolving binding `base` in prelude
locals: base@0//-1|eq?@1//0|first@2//0
at locals position 0
binding `rest` in prelude
stack depth: 4; match depth: 0
at stack index: 3
new locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0
***function clause matching: : ([])
***function clause matching: : (xs as :list)
binding `xs` in rest
stack depth: 1; match depth: 0
at stack index: 0
new locals: xs@0//0
***accessing keyword: base :rest stack depth: 1
resolving binding `base` in rest
locals: xs@0//0
as enclosing upvalue 0
***after keyword access stack depth: 2
resolving binding `xs` in rest
locals: xs@0//0
at locals position 0
resolving binding `base` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0
at locals position 0
binding `inc` in prelude
stack depth: 5; match depth: 0
at stack index: 4
new locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0
***function clause matching: : (x as :number)
binding `x` in inc
stack depth: 1; match depth: 0
at stack index: 0
new locals: x@0//0
***accessing keyword: base :inc stack depth: 1
resolving binding `base` in inc
locals: x@0//0
as enclosing upvalue 0
***after keyword access stack depth: 2
resolving binding `x` in inc
locals: x@0//0
at locals position 0
resolving binding `base` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0
at locals position 0
binding `append` in prelude
stack depth: 6; match depth: 0
at stack index: 5
new locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0
***function clause matching: : ()
***function clause matching: : (xs as :list)
binding `xs` in append
stack depth: 1; match depth: 0
at stack index: 0
new locals: xs@0//0
resolving binding `xs` in append
locals: xs@0//0
at locals position 0
***function clause matching: : (xs as :list, x)
binding `xs` in append
stack depth: 2; match depth: 1
at stack index: 0
new locals: xs@0//0
binding `x` in append
stack depth: 2; match depth: 0
at stack index: 1
new locals: xs@0//0|x@1//0
***accessing keyword: base :append stack depth: 2
resolving binding `base` in append
locals: xs@0//0|x@1//0
as enclosing upvalue 0
***after keyword access stack depth: 3
resolving binding `xs` in append
locals: xs@0//0|x@1//0
at locals position 0
resolving binding `x` in append
locals: xs@0//0|x@1//0
at locals position 1
resolving binding `base` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0
at locals position 0
binding `fold` in prelude
stack depth: 7; match depth: 0
at stack index: 6
new locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0
***function clause matching: : (f as :fn, [])
binding `f` in fold
stack depth: 2; match depth: 1
at stack index: 0
new locals: f@0//0
***function clause matching: : (f as :fn, xs as :list)
binding `f` in fold
stack depth: 2; match depth: 1
at stack index: 0
new locals: f@0//0
binding `xs` in fold
stack depth: 2; match depth: 0
at stack index: 1
new locals: f@0//0|xs@1//0
***calling function fold stack depth: 2
resolving binding `f` in fold
locals: f@0//0|xs@1//0
at locals position 0
resolving binding `xs` in fold
locals: f@0//0|xs@1//0
at locals position 1
***calling function f stack depth: 4
resolving binding `f` in fold
locals: f@0//0|xs@1//0
at locals position 0
***after 0 args stack depth: 5
resolving binding `fold` in fold
locals: f@0//0|xs@1//0
as enclosing upvalue 0
***after 3 args stack depth: 6
***function clause matching: : (f as :fn, [], root)
binding `f` in fold
stack depth: 3; match depth: 2
at stack index: 0
new locals: f@0//0
binding `root` in fold
stack depth: 3; match depth: 0
at stack index: 2
new locals: f@0//0|root@2//0
***function clause matching: : (f as :fn, xs as :list, root)
binding `f` in fold
stack depth: 3; match depth: 2
at stack index: 0
new locals: f@0//0
binding `xs` in fold
stack depth: 3; match depth: 1
at stack index: 1
new locals: f@0//0|xs@1//0
binding `root` in fold
stack depth: 3; match depth: 0
at stack index: 2
new locals: f@0//0|xs@1//0|root@2//0
***entering loop stack depth: 3
resolving binding `root` in fold
locals: f@0//0|xs@1//0|root@2//0
at locals position 2
***calling function first stack depth: 4
resolving binding `xs` in fold
locals: f@0//0|xs@1//0|root@2//0
at locals position 1
resolving binding `first` in fold
locals: f@0//0|xs@1//0|root@2//0
as enclosing upvalue 1
***after 1 args stack depth: 6
***calling function rest stack depth: 5
resolving binding `xs` in fold
locals: f@0//0|xs@1//0|root@2//0
at locals position 1
resolving binding `rest` in fold
locals: f@0//0|xs@1//0|root@2//0
as enclosing upvalue 2
***after 1 args stack depth: 7
***after loop args stack depth: 6
***loop: after store stack depth: 3
***loop: after load stack depth: 6
***loop clause matching: : (prev, curr, [])
binding `prev` in fold
stack depth: 6; match depth: 2
at stack index: 3
new locals: f@0//0|xs@1//0|root@2//0|prev@3//1
binding `curr` in fold
stack depth: 6; match depth: 1
at stack index: 4
new locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1
***loop: before body stack depth: 6
***calling function f stack depth: 6
resolving binding `prev` in fold
locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1
at locals position 3
resolving binding `curr` in fold
locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1
at locals position 4
resolving binding `f` in fold
locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1
at locals position 0
***after 2 args stack depth: 9
***loop: after body, before store stack depth: 7
***loop: after body, after store stack depth: 6
leaving scope 1
releasing binding Some(Binding { name: "curr", depth: 1, stack_pos: 4 })
releasing binding Some(Binding { name: "prev", depth: 1, stack_pos: 3 })
***resetting the stack after loop from 6 to 3 stack depth: 6
***loop: after load stack depth: 6
***loop clause matching: : (prev, curr, remaining)
binding `prev` in fold
stack depth: 6; match depth: 2
at stack index: 3
new locals: f@0//0|xs@1//0|root@2//0|prev@3//1
binding `curr` in fold
stack depth: 6; match depth: 1
at stack index: 4
new locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1
binding `remaining` in fold
stack depth: 6; match depth: 0
at stack index: 5
new locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1|remaining@5//1
***loop: before body stack depth: 6
***recur: before args stack depth: 6
recur arg: 0
***calling function f stack depth: 6
resolving binding `prev` in fold
locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1|remaining@5//1
at locals position 3
resolving binding `curr` in fold
locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1|remaining@5//1
at locals position 4
resolving binding `f` in fold
locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1|remaining@5//1
at locals position 0
***after 2 args stack depth: 9
recur arg: 1
***calling function first stack depth: 7
resolving binding `remaining` in fold
locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1|remaining@5//1
at locals position 5
resolving binding `first` in fold
locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1|remaining@5//1
as upvalue 1
***after 1 args stack depth: 9
recur arg: 2
***calling function rest stack depth: 8
resolving binding `remaining` in fold
locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1|remaining@5//1
at locals position 5
resolving binding `rest` in fold
locals: f@0//0|xs@1//0|root@2//0|prev@3//1|curr@4//1|remaining@5//1
as upvalue 2
***after 1 args stack depth: 10
***recur: after args stack depth: 9
***recur: after store stack depth: 6
loop root depth: 3
***recur: after stack reset stack depth: 3
***recur: after load, end of compilation stack depth: 6
***loop: after body, before store stack depth: 6
***loop: after body, after store stack depth: 5
leaving scope 1
releasing binding Some(Binding { name: "remaining", depth: 1, stack_pos: 5 })
releasing binding Some(Binding { name: "curr", depth: 1, stack_pos: 4 })
releasing binding Some(Binding { name: "prev", depth: 1, stack_pos: 3 })
***resetting the stack after loop from 5 to 3 stack depth: 5
***before loop arity adjustment stack depth: 6
***at very end of loop after load stack depth: 4
resolving binding `fold` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0
at locals position 6
resolving binding `first` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0
at locals position 2
resolving binding `rest` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0
at locals position 3
binding `contains?` in prelude
stack depth: 8; match depth: 0
at stack index: 7
new locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0|contains?@7//0
***function clause matching: : (value, l as :list)
binding `value` in contains?
stack depth: 2; match depth: 1
at stack index: 0
new locals: value@0//0
binding `l` in contains?
stack depth: 2; match depth: 0
at stack index: 1
new locals: value@0//0|l@1//0
***entering loop stack depth: 2
resolving binding `l` in contains?
locals: value@0//0|l@1//0
at locals position 1
***after loop args stack depth: 3
***loop: after store stack depth: 2
***loop: after load stack depth: 3
***loop clause matching: : ([])
***loop: before body stack depth: 3
***loop: after body, before store stack depth: 4
***loop: after body, after store stack depth: 3
leaving scope 1
***resetting the stack after loop from 3 to 2 stack depth: 3
***loop: after load stack depth: 3
***loop clause matching: : ([...xs])
binding `xs` in contains?
stack depth: 4; match depth: 0
at stack index: 3
new locals: value@0//0|l@1//0|xs@3//1
***loop: before body stack depth: 4
***calling function eq? stack depth: 4
***calling function first stack depth: 4
resolving binding `xs` in contains?
locals: value@0//0|l@1//0|xs@3//1
at locals position 3
resolving binding `first` in contains?
locals: value@0//0|l@1//0|xs@3//1
as enclosing upvalue 0
***after 1 args stack depth: 6
resolving binding `value` in contains?
locals: value@0//0|l@1//0|xs@3//1
at locals position 0
resolving binding `eq?` in contains?
locals: value@0//0|l@1//0|xs@3//1
as enclosing upvalue 1
***after 2 args stack depth: 7
***after condition stack depth: 5
***after consequent stack depth: 5
***recur: before args stack depth: 4
recur arg: 0
***calling function rest stack depth: 4
resolving binding `xs` in contains?
locals: value@0//0|l@1//0|xs@3//1
at locals position 3
resolving binding `rest` in contains?
locals: value@0//0|l@1//0|xs@3//1
as enclosing upvalue 2
***after 1 args stack depth: 6
***recur: after args stack depth: 5
***recur: after store stack depth: 4
loop root depth: 2
***recur: after stack reset stack depth: 2
***recur: after load, end of compilation stack depth: 3
***after alternative stack depth: 3
***loop: after body, before store stack depth: 3
***loop: after body, after store stack depth: 2
leaving scope 1
releasing binding Some(Binding { name: "xs", depth: 1, stack_pos: 3 })
***resetting the stack after loop from 2 to 2 stack depth: 2
***before loop arity adjustment stack depth: 3
***at very end of loop after load stack depth: 3
resolving binding `first` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0|contains?@7//0
at locals position 2
resolving binding `eq?` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0|contains?@7//0
at locals position 1
resolving binding `rest` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0|contains?@7//0
at locals position 3
binding `add` in prelude
stack depth: 9; match depth: 0
at stack index: 8
new locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0|contains?@7//0|add@8//0
***function clause matching: : ()
***function clause matching: : (x)
binding `x` in add
stack depth: 1; match depth: 0
at stack index: 0
new locals: x@0//0
resolving binding `x` in add
locals: x@0//0
at locals position 0
***function clause matching: : (x, y)
binding `x` in add
stack depth: 2; match depth: 1
at stack index: 0
new locals: x@0//0
binding `y` in add
stack depth: 2; match depth: 0
at stack index: 1
new locals: x@0//0|y@1//0
***accessing keyword: base :add stack depth: 2
resolving binding `base` in add
locals: x@0//0|y@1//0
as enclosing upvalue 0
***after keyword access stack depth: 3
resolving binding `x` in add
locals: x@0//0|y@1//0
at locals position 0
resolving binding `y` in add
locals: x@0//0|y@1//0
at locals position 1
resolving binding `base` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0|contains?@7//0|add@8//0
at locals position 0
resolving binding `add` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0|contains?@7//0|add@8//0
at locals position 8
resolving binding `rest` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0|contains?@7//0|add@8//0
at locals position 3
resolving binding `first` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0|contains?@7//0|add@8//0
at locals position 2
resolving binding `eq?` in prelude
locals: base@0//-1|eq?@1//0|first@2//0|rest@3//0|inc@4//0|append@5//0|fold@6//0|contains?@7//0|add@8//0
at locals position 1
leaving scope 0
releasing binding Some(Binding { name: "add", depth: 0, stack_pos: 8 })
releasing binding Some(Binding { name: "contains?", depth: 0, stack_pos: 7 })
releasing binding Some(Binding { name: "fold", depth: 0, stack_pos: 6 })
releasing binding Some(Binding { name: "append", depth: 0, stack_pos: 5 })
releasing binding Some(Binding { name: "inc", depth: 0, stack_pos: 4 })
releasing binding Some(Binding { name: "rest", depth: 0, stack_pos: 3 })
releasing binding Some(Binding { name: "first", depth: 0, stack_pos: 2 })
releasing binding Some(Binding { name: "eq?", depth: 0, stack_pos: 1 })
closing over in eq?: #{:trim fn trim/base...
closing over in first: #{:trim fn trim/base...
closing over in rest: #{:trim fn trim/base...
closing over in inc: #{:trim fn trim/base...
closing over in append: #{:trim fn trim/base...
closing over in fold: fn fold
closing over in fold: fn first
closing over in fold: fn rest
closing over in contains?: fn first
closing over in contains?: fn eq?
closing over in contains?: fn rest
closing over in add: #{:trim fn trim/base...
***before let binding stack depth: 0
***after let expr stack depth: 1
***let binding: matching: test
binding `test` in sandbox
stack depth: 1; match depth: 0
at stack index: 0
new locals: test@0//0
***after let binding stack depth: 1
***before let binding stack depth: 1
***entering loop stack depth: 1
***after loop args stack depth: 2
***loop: after store stack depth: 1
***loop: after load stack depth: 2
***loop clause matching: : ([])
***loop: before body stack depth: 2
***loop: after body, before store stack depth: 3
***loop: after body, after store stack depth: 2
leaving scope 1
***resetting the stack after loop from 2 to 1 stack depth: 2
***loop: after load stack depth: 2
***loop clause matching: : ([x])
binding `x` in sandbox
stack depth: 3; match depth: 0
at stack index: 2
new locals: test@0//0|x@2//1
***loop: before body stack depth: 3
***calling function eq? stack depth: 3
resolving binding `x` in sandbox
locals: test@0//0|x@2//1
at locals position 2
resolving binding `test` in sandbox
locals: test@0//0|x@2//1
at locals position 0
resolving binding `eq?` in sandbox
locals: test@0//0|x@2//1
as global
***after 2 args stack depth: 6
***loop: after body, before store stack depth: 4
***loop: after body, after store stack depth: 3
leaving scope 1
releasing binding Some(Binding { name: "x", depth: 1, stack_pos: 2 })
***resetting the stack after loop from 3 to 1 stack depth: 3
***loop: after load stack depth: 2
***loop clause matching: : ([x, ...xs])
binding `x` in sandbox
stack depth: 4; match depth: 1
at stack index: 2
new locals: test@0//0|x@2//1
binding `xs` in sandbox
stack depth: 4; match depth: 0
at stack index: 3
new locals: test@0//0|x@2//1|xs@3//1
***loop: before body stack depth: 4
***calling function eq? stack depth: 4
resolving binding `x` in sandbox
locals: test@0//0|x@2//1|xs@3//1
at locals position 2
resolving binding `test` in sandbox
locals: test@0//0|x@2//1|xs@3//1
at locals position 0
resolving binding `eq?` in sandbox
locals: test@0//0|x@2//1|xs@3//1
as global
***after 2 args stack depth: 7
***after condition stack depth: 5
***after consequent stack depth: 5
***recur: before args stack depth: 4
recur arg: 0
resolving binding `xs` in sandbox
locals: test@0//0|x@2//1|xs@3//1
at locals position 3
***recur: after args stack depth: 5
***recur: after store stack depth: 4
loop root depth: 1
***recur: after stack reset stack depth: 1
***recur: after load, end of compilation stack depth: 2
***after alternative stack depth: 2
***loop: after body, before store stack depth: 2
***loop: after body, after store stack depth: 1
leaving scope 1
releasing binding Some(Binding { name: "xs", depth: 1, stack_pos: 3 })
releasing binding Some(Binding { name: "x", depth: 1, stack_pos: 2 })
***resetting the stack after loop from 1 to 1 stack depth: 1
***before loop arity adjustment stack depth: 2
***at very end of loop after load stack depth: 2
***after let expr stack depth: 2
***let binding: matching: quux
binding `quux` in sandbox
stack depth: 2; match depth: 0
at stack index: 1
new locals: test@0//0|quux@1//0
***after let binding stack depth: 2
***before let binding stack depth: 2
***after let expr stack depth: 3
***let binding: matching: foo
binding `foo` in sandbox
stack depth: 3; match depth: 0
at stack index: 2
new locals: test@0//0|quux@1//0|foo@2//0
***after let binding stack depth: 3
binding `not` in sandbox
stack depth: 4; match depth: 0
at stack index: 3
new locals: test@0//0|quux@1//0|foo@2//0|not@3//0
***function clause matching: : (false)
***function clause matching: : (nil)
***function clause matching: : (_)
=== function chuncktion: not/1 ===
IDX | CODE | INFO
0000: reset_match
0001: ***function clause matching: : (false)
0003: match_depth 000
0005: match_false
0006: jump_if_no_match 00003
0009: jump 00000
0012: jump_if_no_match 00004
0015: true
0016: store
0017: pop
0018: return
0019: ***function clause matching: : (nil)
0021: match_depth 000
0023: match_nil
0024: jump_if_no_match 00003
0027: jump 00000
0030: jump_if_no_match 00004
0033: true
0034: store
0035: pop
0036: return
0037: ***function clause matching: : (_)
0039: match_depth 000
0041: match
0042: jump_if_no_match 00003
0045: jump 00000
0048: jump_if_no_match 00004
0051: false
0052: store
0053: pop
0054: return
0055: panic_no_match
***before let binding stack depth: 4
***entering loop stack depth: 4
***after loop args stack depth: 5
***loop: after store stack depth: 4
***loop: after load stack depth: 5
***loop clause matching: : ([])
***loop: before body stack depth: 5
***loop: after body, before store stack depth: 6
***loop: after body, after store stack depth: 5
leaving scope 1
***resetting the stack after loop from 5 to 4 stack depth: 5
***loop: after load stack depth: 5
***loop clause matching: : ([y])
binding `y` in sandbox
stack depth: 6; match depth: 0
at stack index: 5
new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
***loop: before body stack depth: 6
***calling function eq? stack depth: 6
resolving binding `y` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
at locals position 5
resolving binding `test` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
at locals position 0
resolving binding `eq?` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
as global
***after 2 args stack depth: 9
***loop: after body, before store stack depth: 7
***loop: after body, after store stack depth: 6
leaving scope 1
releasing binding Some(Binding { name: "y", depth: 1, stack_pos: 5 })
***resetting the stack after loop from 6 to 4 stack depth: 6
***loop: after load stack depth: 5
***loop clause matching: : ([y, ...ys])
binding `y` in sandbox
stack depth: 7; match depth: 1
at stack index: 5
new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
binding `ys` in sandbox
stack depth: 7; match depth: 0
at stack index: 6
new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
***loop: before body stack depth: 7
***calling function not stack depth: 7
***calling function eq? stack depth: 7
resolving binding `y` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
at locals position 5
resolving binding `test` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
at locals position 0
resolving binding `eq?` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
as global
***after 2 args stack depth: 10
resolving binding `not` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
at locals position 3
***after 1 args stack depth: 9
***after condition stack depth: 8
***recur: before args stack depth: 7
recur arg: 0
resolving binding `ys` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
at locals position 6
***recur: after args stack depth: 8
***recur: after store stack depth: 7
loop root depth: 4
***recur: after stack reset stack depth: 4
***recur: after load, end of compilation stack depth: 5
***after consequent stack depth: 5
***after alternative stack depth: 5
***loop: after body, before store stack depth: 5
***loop: after body, after store stack depth: 4
leaving scope 1
releasing binding Some(Binding { name: "ys", depth: 1, stack_pos: 6 })
releasing binding Some(Binding { name: "y", depth: 1, stack_pos: 5 })
***resetting the stack after loop from 4 to 4 stack depth: 4
***before loop arity adjustment stack depth: 5
***at very end of loop after load stack depth: 5
***after let expr stack depth: 5
***let binding: matching: frob
binding `frob` in sandbox
stack depth: 5; match depth: 0
at stack index: 4
new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|frob@4//0
***after let binding stack depth: 5
resolving binding `quux` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|frob@4//0
at locals position 1
resolving binding `frob` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|frob@4//0
at locals position 4
leaving scope 0
releasing binding Some(Binding { name: "frob", depth: 0, stack_pos: 4 })
releasing binding Some(Binding { name: "not", depth: 0, stack_pos: 3 })
releasing binding Some(Binding { name: "foo", depth: 0, stack_pos: 2 })
releasing binding Some(Binding { name: "quux", depth: 0, stack_pos: 1 })
releasing binding Some(Binding { name: "test", depth: 0, stack_pos: 0 })
=== source code ===
let test = 3
let quux = loop ([1, 2]) with {
([]) -> false
([x]) -> eq? (x, test)
([x, ...xs]) -> if eq? (x, test)
then :yes
else recur (xs)
}
let foo = :bar
fn not {
(false) -> true
(nil) -> true
(_) -> false
}
let frob = loop ([1, 2, 3]) with {
([]) -> false
([y]) -> eq? (y, test)
([y, ...ys]) -> if not (eq? (y, test))
then recur (ys)
else true
}
[quux, frob]
=== chunk: sandbox ===
IDX | CODE | INFO
0000: ***before let binding stack depth: 0
0002: constant 00000: 3
0005: ***after let expr stack depth: 1
0007: ***let binding: matching: test
0009: reset_match
0010: match
0011: binding `test` in sandbox
0013: stack depth: 1; match depth: 0
0015: at stack index: 0
0017: new locals: test@0//0
0019: panic_if_no_match
0020: ***after let binding stack depth: 1
0022: ***before let binding stack depth: 1
0024: ***entering loop stack depth: 1
0026: push_list
0027: constant 00001: 1
0030: append_list
0031: constant 00002: 2
0034: append_list
0035: ***after loop args stack depth: 2
0037: store_n 001
0039: ***loop: after store stack depth: 1
0041: load_n 001
0043: ***loop: after load stack depth: 2
0045: reset_match
0046: ***loop clause matching: : ([])
0048: match_depth 000
0050: match_list 000
0052: jump_if_no_match 00006
0055: load_list
0056: jump 00002
0059: pop_n 000
0061: jump_if_no_match 00016
0064: ***loop: before body stack depth: 2
0066: false
0067: ***loop: after body, before store stack depth: 3
0069: store
0070: ***loop: after body, after store stack depth: 2
0072: leaving scope 1
0074: ***resetting the stack after loop from 2 to 1 stack depth: 2
0076: pop
0077: jump 00218
0080: ***loop: after load stack depth: 2
0082: reset_match
0083: ***loop clause matching: : ([x])
0085: match_depth 000
0087: match_list 001
0089: jump_if_no_match 00020
0092: load_list
0093: match_depth 000
0095: match
0096: binding `x` in sandbox
0098: stack depth: 3; match depth: 0
0100: at stack index: 2
0102: new locals: test@0//0|x@2//1
0104: jump_if_no_match 00004
0107: jump 00002
0110: pop_n 001
0112: jump_if_no_match 00044
0115: ***loop: before body stack depth: 3
0117: ***calling function eq? stack depth: 3
0119: resolving binding `x` in sandbox
locals: test@0//0|x@2//1
0121: at locals position 2
0123: push_binding 002
0125: resolving binding `test` in sandbox
locals: test@0//0|x@2//1
0127: at locals position 0
0129: push_binding 000
0131: resolving binding `eq?` in sandbox
locals: test@0//0|x@2//1
0133: as global
0135: constant 00003: :eq?
0138: push_global
0139: ***after 2 args stack depth: 6
0141: call 002
0143: ***loop: after body, before store stack depth: 4
0145: store
0146: ***loop: after body, after store stack depth: 3
0148: leaving scope 1
0150: releasing binding Some(Binding { name: "x", depth: 1, stack_pos: 2 })
0152: ***resetting the stack after loop from 3 to 1 stack depth: 3
0154: pop_n 002
0156: jump 00139
0159: ***loop: after load stack depth: 2
0161: reset_match
0162: ***loop clause matching: : ([x, ...xs])
0164: match_depth 000
0166: match_splatted_list 002
0168: jump_if_no_match 00035
0171: load_splatted_list 002
0173: match_depth 001
0175: match
0176: binding `x` in sandbox
0178: stack depth: 4; match depth: 1
0180: at stack index: 2
0182: new locals: test@0//0|x@2//1
0184: jump_if_no_match 00018
0187: match_depth 000
0189: match
0190: binding `xs` in sandbox
0192: stack depth: 4; match depth: 0
0194: at stack index: 3
0196: new locals: test@0//0|x@2//1|xs@3//1
0198: jump_if_no_match 00004
0201: jump 00002
0204: pop_n 002
0206: jump_if_no_match 00088
0209: ***loop: before body stack depth: 4
0211: ***calling function eq? stack depth: 4
0213: resolving binding `x` in sandbox
locals: test@0//0|x@2//1|xs@3//1
0215: at locals position 2
0217: push_binding 002
0219: resolving binding `test` in sandbox
locals: test@0//0|x@2//1|xs@3//1
0221: at locals position 0
0223: push_binding 000
0225: resolving binding `eq?` in sandbox
locals: test@0//0|x@2//1|xs@3//1
0227: as global
0229: constant 00003: :eq?
0232: push_global
0233: ***after 2 args stack depth: 7
0235: call 002
0237: ***after condition stack depth: 5
0239: jump_if_false 00008
0242: constant 00004: :yes
0245: ***after consequent stack depth: 5
0247: jump 00031
0250: ***recur: before args stack depth: 4
0252: recur arg: 0
0254: resolving binding `xs` in sandbox
locals: test@0//0|x@2//1|xs@3//1
0256: at locals position 3
0258: push_binding 003
0260: ***recur: after args stack depth: 5
0262: store_n 001
0264: ***recur: after store stack depth: 4
0266: loop root depth: 1
0268: pop_n 003
0270: ***recur: after stack reset stack depth: 1
0272: load_n 001
0274: ***recur: after load, end of compilation stack depth: 2
0276: jump_back 00233
0279: ***after alternative stack depth: 2
0281: ***loop: after body, before store stack depth: 2
0283: store
0284: ***loop: after body, after store stack depth: 1
0286: leaving scope 1
0288: releasing binding Some(Binding { name: "xs", depth: 1, stack_pos: 3 })
0290: releasing binding Some(Binding { name: "x", depth: 1, stack_pos: 2 })
0292: ***resetting the stack after loop from 1 to 1 stack depth: 1
0294: jump 00001
0297: panic_no_match
0298: ***before loop arity adjustment stack depth: 2
0300: load
0301: ***at very end of loop after load stack depth: 2
0303: ***after let expr stack depth: 2
0305: ***let binding: matching: quux
0307: reset_match
0308: match
0309: binding `quux` in sandbox
0311: stack depth: 2; match depth: 0
0313: at stack index: 1
0315: new locals: test@0//0|quux@1//0
0317: panic_if_no_match
0318: ***after let binding stack depth: 2
0320: ***before let binding stack depth: 2
0322: constant 00005: :bar
0325: ***after let expr stack depth: 3
0327: ***let binding: matching: foo
0329: reset_match
0330: match
0331: binding `foo` in sandbox
0333: stack depth: 3; match depth: 0
0335: at stack index: 2
0337: new locals: test@0//0|quux@1//0|foo@2//0
0339: panic_if_no_match
0340: ***after let binding stack depth: 3
0342: constant 00006: fn not
0345: binding `not` in sandbox
0347: stack depth: 4; match depth: 0
0349: at stack index: 3
0351: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0
0353: ***before let binding stack depth: 4
0355: ***entering loop stack depth: 4
0357: push_list
0358: constant 00001: 1
0361: append_list
0362: constant 00002: 2
0365: append_list
0366: constant 00000: 3
0369: append_list
0370: ***after loop args stack depth: 5
0372: store_n 001
0374: ***loop: after store stack depth: 4
0376: load_n 001
0378: ***loop: after load stack depth: 5
0380: reset_match
0381: ***loop clause matching: : ([])
0383: match_depth 000
0385: match_list 000
0387: jump_if_no_match 00006
0390: load_list
0391: jump 00002
0394: pop_n 000
0396: jump_if_no_match 00016
0399: ***loop: before body stack depth: 5
0401: false
0402: ***loop: after body, before store stack depth: 6
0404: store
0405: ***loop: after body, after store stack depth: 5
0407: leaving scope 1
0409: ***resetting the stack after loop from 5 to 4 stack depth: 5
0411: pop
0412: jump 00228
0415: ***loop: after load stack depth: 5
0417: reset_match
0418: ***loop clause matching: : ([y])
0420: match_depth 000
0422: match_list 001
0424: jump_if_no_match 00020
0427: load_list
0428: match_depth 000
0430: match
0431: binding `y` in sandbox
0433: stack depth: 6; match depth: 0
0435: at stack index: 5
0437: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0439: jump_if_no_match 00004
0442: jump 00002
0445: pop_n 001
0447: jump_if_no_match 00044
0450: ***loop: before body stack depth: 6
0452: ***calling function eq? stack depth: 6
0454: resolving binding `y` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0456: at locals position 5
0458: push_binding 005
0460: resolving binding `test` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0462: at locals position 0
0464: push_binding 000
0466: resolving binding `eq?` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0468: as global
0470: constant 00003: :eq?
0473: push_global
0474: ***after 2 args stack depth: 9
0476: call 002
0478: ***loop: after body, before store stack depth: 7
0480: store
0481: ***loop: after body, after store stack depth: 6
0483: leaving scope 1
0485: releasing binding Some(Binding { name: "y", depth: 1, stack_pos: 5 })
0487: ***resetting the stack after loop from 6 to 4 stack depth: 6
0489: pop_n 002
0491: jump 00149
0494: ***loop: after load stack depth: 5
0496: reset_match
0497: ***loop clause matching: : ([y, ...ys])
0499: match_depth 000
0501: match_splatted_list 002
0503: jump_if_no_match 00035
0506: load_splatted_list 002
0508: match_depth 001
0510: match
0511: binding `y` in sandbox
0513: stack depth: 7; match depth: 1
0515: at stack index: 5
0517: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0519: jump_if_no_match 00018
0522: match_depth 000
0524: match
0525: binding `ys` in sandbox
0527: stack depth: 7; match depth: 0
0529: at stack index: 6
0531: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0533: jump_if_no_match 00004
0536: jump 00002
0539: pop_n 002
0541: jump_if_no_match 00098
0544: ***loop: before body stack depth: 7
0546: ***calling function not stack depth: 7
0548: ***calling function eq? stack depth: 7
0550: resolving binding `y` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0552: at locals position 5
0554: push_binding 005
0556: resolving binding `test` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0558: at locals position 0
0560: push_binding 000
0562: resolving binding `eq?` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0564: as global
0566: constant 00003: :eq?
0569: push_global
0570: ***after 2 args stack depth: 10
0572: call 002
0574: resolving binding `not` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0576: at locals position 3
0578: push_binding 003
0580: ***after 1 args stack depth: 9
0582: call 001
0584: ***after condition stack depth: 8
0586: jump_if_false 00034
0589: ***recur: before args stack depth: 7
0591: recur arg: 0
0593: resolving binding `ys` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0595: at locals position 6
0597: push_binding 006
0599: ***recur: after args stack depth: 8
0601: store_n 001
0603: ***recur: after store stack depth: 7
0605: loop root depth: 4
0607: pop_n 003
0609: ***recur: after stack reset stack depth: 4
0611: load_n 001
0613: ***recur: after load, end of compilation stack depth: 5
0615: jump_back 00237
0618: ***after consequent stack depth: 5
0620: jump 00003
0623: true
0624: ***after alternative stack depth: 5
0626: ***loop: after body, before store stack depth: 5
0628: store
0629: ***loop: after body, after store stack depth: 4
0631: leaving scope 1
0633: releasing binding Some(Binding { name: "ys", depth: 1, stack_pos: 6 })
0635: releasing binding Some(Binding { name: "y", depth: 1, stack_pos: 5 })
0637: ***resetting the stack after loop from 4 to 4 stack depth: 4
0639: jump 00001
0642: panic_no_match
0643: ***before loop arity adjustment stack depth: 5
0645: load
0646: ***at very end of loop after load stack depth: 5
0648: ***after let expr stack depth: 5
0650: ***let binding: matching: frob
0652: reset_match
0653: match
0654: binding `frob` in sandbox
0656: stack depth: 5; match depth: 0
0658: at stack index: 4
0660: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|frob@4//0
0662: panic_if_no_match
0663: ***after let binding stack depth: 5
0665: push_list
0666: resolving binding `quux` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|frob@4//0
0668: at locals position 1
0670: push_binding 001
0672: append_list
0673: resolving binding `frob` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|frob@4//0
0675: at locals position 4
0677: push_binding 004
0679: append_list
0680: store
0681: leaving scope 0
0683: releasing binding Some(Binding { name: "frob", depth: 0, stack_pos: 4 })
0685: releasing binding Some(Binding { name: "not", depth: 0, stack_pos: 3 })
0687: releasing binding Some(Binding { name: "foo", depth: 0, stack_pos: 2 })
0689: releasing binding Some(Binding { name: "quux", depth: 0, stack_pos: 1 })
0691: releasing binding Some(Binding { name: "test", depth: 0, stack_pos: 0 })
0693: pop_n 005
0695: load
=== vm run ===
0000: [] (_,_,_,_,_,_,_,_)
0000: ***before let binding stack depth: 0
0002: [] (_,_,_,_,_,_,_,_)
0002: constant 00000: 3
0005: [->3<-] (_,_,_,_,_,_,_,_)
0005: ***after let expr stack depth: 1
0007: [->3<-] (_,_,_,_,_,_,_,_)
0007: ***let binding: matching: test
0009: [->3<-] (_,_,_,_,_,_,_,_)
0009: reset_match
0010: [->3<-] (_,_,_,_,_,_,_,_)
0010: match
0011: [->3<-] (_,_,_,_,_,_,_,_)
0011: binding `test` in sandbox
0013: [->3<-] (_,_,_,_,_,_,_,_)
0013: stack depth: 1; match depth: 0
0015: [->3<-] (_,_,_,_,_,_,_,_)
0015: at stack index: 0
0017: [->3<-] (_,_,_,_,_,_,_,_)
0017: new locals: test@0//0
0019: [->3<-] (_,_,_,_,_,_,_,_)
0019: panic_if_no_match
0020: [->3<-] (_,_,_,_,_,_,_,_)
0020: ***after let binding stack depth: 1
0022: [->3<-] (_,_,_,_,_,_,_,_)
0022: ***before let binding stack depth: 1
0024: [->3<-] (_,_,_,_,_,_,_,_)
0024: ***entering loop stack depth: 1
0026: [->3<-] (_,_,_,_,_,_,_,_)
0026: push_list
0027: [->3<-|[]] (_,_,_,_,_,_,_,_)
0027: constant 00001: 1
0030: [->3<-|[]|1] (_,_,_,_,_,_,_,_)
0030: append_list
0031: [->3<-|[1]] (_,_,_,_,_,_,_,_)
0031: constant 00002: 2
0034: [->3<-|[1]|2] (_,_,_,_,_,_,_,_)
0034: append_list
0035: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0035: ***after loop args stack depth: 2
0037: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0037: store_n 001
0039: [->3<-] ([1, 2],_,_,_,_,_,_,_)
0039: ***loop: after store stack depth: 1
0041: [->3<-] ([1, 2],_,_,_,_,_,_,_)
0041: load_n 001
0043: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0043: ***loop: after load stack depth: 2
0045: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0045: reset_match
0046: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0046: ***loop clause matching: : ([])
0048: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0048: match_depth 000
0050: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0050: match_list 000
0052: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0052: jump_if_no_match 00006
0061: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0061: jump_if_no_match 00016
0080: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0080: ***loop: after load stack depth: 2
0082: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0082: reset_match
0083: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0083: ***loop clause matching: : ([x])
0085: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0085: match_depth 000
0087: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0087: match_list 001
0089: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0089: jump_if_no_match 00020
0112: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0112: jump_if_no_match 00044
0159: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0159: ***loop: after load stack depth: 2
0161: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0161: reset_match
0162: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0162: ***loop clause matching: : ([x, ...xs])
0164: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0164: match_depth 000
0166: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0166: match_splatted_list 002
0168: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0168: jump_if_no_match 00035
0171: [->3<-|[1, 2]] (_,_,_,_,_,_,_,_)
0171: load_splatted_list 002
0173: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0173: match_depth 001
0175: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0175: match
0176: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0176: binding `x` in sandbox
0178: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0178: stack depth: 4; match depth: 1
0180: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0180: at stack index: 2
0182: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0182: new locals: test@0//0|x@2//1
0184: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0184: jump_if_no_match 00018
0187: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0187: match_depth 000
0189: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0189: match
0190: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0190: binding `xs` in sandbox
0192: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0192: stack depth: 4; match depth: 0
0194: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0194: at stack index: 3
0196: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0196: new locals: test@0//0|x@2//1|xs@3//1
0198: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0198: jump_if_no_match 00004
0201: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0201: jump 00002
0206: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0206: jump_if_no_match 00088
0209: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0209: ***loop: before body stack depth: 4
0211: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0211: ***calling function eq? stack depth: 4
0213: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0213: resolving binding `x` in sandbox
locals: test@0//0|x@2//1|xs@3//1
0215: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0215: at locals position 2
0217: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0217: push_binding 002
0219: [->3<-|[1, 2]|1|[2]|1] (_,_,_,_,_,_,_,_)
0219: resolving binding `test` in sandbox
locals: test@0//0|x@2//1|xs@3//1
0221: [->3<-|[1, 2]|1|[2]|1] (_,_,_,_,_,_,_,_)
0221: at locals position 0
0223: [->3<-|[1, 2]|1|[2]|1] (_,_,_,_,_,_,_,_)
0223: push_binding 000
0225: [->3<-|[1, 2]|1|[2]|1|3] (_,_,_,_,_,_,_,_)
0225: resolving binding `eq?` in sandbox
locals: test@0//0|x@2//1|xs@3//1
0227: [->3<-|[1, 2]|1|[2]|1|3] (_,_,_,_,_,_,_,_)
0227: as global
0229: [->3<-|[1, 2]|1|[2]|1|3] (_,_,_,_,_,_,_,_)
0229: constant 00003: :eq?
0232: [->3<-|[1, 2]|1|[2]|1|3|:eq?] (_,_,_,_,_,_,_,_)
0232: push_global
0233: [->3<-|[1, 2]|1|[2]|1|3|fn eq?] (_,_,_,_,_,_,_,_)
0233: ***after 2 args stack depth: 7
0235: [->3<-|[1, 2]|1|[2]|1|3|fn eq?] (_,_,_,_,_,_,_,_)
0235: call 002
=== calling into fn eq?/2 ===
0000: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0000: reset_match
0001: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0001: ***function clause matching: : (x, y)
0003: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0003: match_depth 001
0005: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0005: match
0006: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0006: binding `x` in eq?
0008: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0008: stack depth: 2; match depth: 1
0010: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0010: at stack index: 0
0012: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0012: new locals: x@0//0
0014: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0014: jump_if_no_match 00017
0017: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0017: match_depth 000
0019: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0019: match
0020: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0020: binding `y` in eq?
0022: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0022: stack depth: 2; match depth: 0
0024: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0024: at stack index: 1
0026: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0026: new locals: x@0//0|y@1//0
0028: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0028: jump_if_no_match 00003
0031: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0031: jump 00000
0034: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0034: jump_if_no_match 00034
0037: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0037: ***accessing keyword: base :eq? stack depth: 2
0039: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0039: resolving binding `base` in eq?
locals: x@0//0|y@1//0
0041: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0041: as enclosing upvalue 0
0043: [3|[1, 2]|1|[2]|->1<-|3] (_,_,_,_,_,_,_,_)
0043: get_upvalue 000
0045: [3|[1, 2]|1|[2]|->1<-|3|#{:trim fn trim/base...] (_,_,_,_,_,_,_,_)
0045: constant 00000: :eq?
0048: [3|[1, 2]|1|[2]|->1<-|3|#{:trim fn trim/base...|:eq?] (_,_,_,_,_,_,_,_)
0048: get_key
0049: [3|[1, 2]|1|[2]|->1<-|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0049: ***after keyword access stack depth: 3
0051: [3|[1, 2]|1|[2]|->1<-|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0051: stash
0052: [3|[1, 2]|1|[2]|->1<-|3|fn eq?/base] (fn eq?/base,_,_,_,_,_,_,_)
0052: pop
0053: [3|[1, 2]|1|[2]|->1<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0053: resolving binding `x` in eq?
locals: x@0//0|y@1//0
0055: [3|[1, 2]|1|[2]|->1<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0055: at locals position 0
0057: [3|[1, 2]|1|[2]|->1<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0057: push_binding 000
0059: [3|[1, 2]|1|[2]|->1<-|3|1] (fn eq?/base,_,_,_,_,_,_,_)
0059: resolving binding `y` in eq?
locals: x@0//0|y@1//0
0061: [3|[1, 2]|1|[2]|->1<-|3|1] (fn eq?/base,_,_,_,_,_,_,_)
0061: at locals position 1
0063: [3|[1, 2]|1|[2]|->1<-|3|1] (fn eq?/base,_,_,_,_,_,_,_)
0063: push_binding 001
0065: [3|[1, 2]|1|[2]|->1<-|3|1|3] (fn eq?/base,_,_,_,_,_,_,_)
0065: load
0066: [3|[1, 2]|1|[2]|->1<-|3|1|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0066: tail_call 002
=== tail call into fn eq?/base/2 from eq? ===
0237: [->3<-|[1, 2]|1|[2]|false] (_,_,_,_,_,_,_,_)
0237: ***after condition stack depth: 5
0239: [->3<-|[1, 2]|1|[2]|false] (_,_,_,_,_,_,_,_)
0239: jump_if_false 00008
0250: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0250: ***recur: before args stack depth: 4
0252: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0252: recur arg: 0
0254: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0254: resolving binding `xs` in sandbox
locals: test@0//0|x@2//1|xs@3//1
0256: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0256: at locals position 3
0258: [->3<-|[1, 2]|1|[2]] (_,_,_,_,_,_,_,_)
0258: push_binding 003
0260: [->3<-|[1, 2]|1|[2]|[2]] (_,_,_,_,_,_,_,_)
0260: ***recur: after args stack depth: 5
0262: [->3<-|[1, 2]|1|[2]|[2]] (_,_,_,_,_,_,_,_)
0262: store_n 001
0264: [->3<-|[1, 2]|1|[2]] ([2],_,_,_,_,_,_,_)
0264: ***recur: after store stack depth: 4
0266: [->3<-|[1, 2]|1|[2]] ([2],_,_,_,_,_,_,_)
0266: loop root depth: 1
0268: [->3<-|[1, 2]|1|[2]] ([2],_,_,_,_,_,_,_)
0268: pop_n 003
0270: [->3<-] ([2],_,_,_,_,_,_,_)
0270: ***recur: after stack reset stack depth: 1
0272: [->3<-] ([2],_,_,_,_,_,_,_)
0272: load_n 001
0274: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0274: ***recur: after load, end of compilation stack depth: 2
0276: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0276: jump_back 00233
0043: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0043: ***loop: after load stack depth: 2
0045: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0045: reset_match
0046: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0046: ***loop clause matching: : ([])
0048: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0048: match_depth 000
0050: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0050: match_list 000
0052: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0052: jump_if_no_match 00006
0061: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0061: jump_if_no_match 00016
0080: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0080: ***loop: after load stack depth: 2
0082: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0082: reset_match
0083: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0083: ***loop clause matching: : ([x])
0085: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0085: match_depth 000
0087: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0087: match_list 001
0089: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0089: jump_if_no_match 00020
0092: [->3<-|[2]] (_,_,_,_,_,_,_,_)
0092: load_list
0093: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0093: match_depth 000
0095: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0095: match
0096: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0096: binding `x` in sandbox
0098: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0098: stack depth: 3; match depth: 0
0100: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0100: at stack index: 2
0102: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0102: new locals: test@0//0|x@2//1
0104: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0104: jump_if_no_match 00004
0107: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0107: jump 00002
0112: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0112: jump_if_no_match 00044
0115: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0115: ***loop: before body stack depth: 3
0117: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0117: ***calling function eq? stack depth: 3
0119: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0119: resolving binding `x` in sandbox
locals: test@0//0|x@2//1
0121: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0121: at locals position 2
0123: [->3<-|[2]|2] (_,_,_,_,_,_,_,_)
0123: push_binding 002
0125: [->3<-|[2]|2|2] (_,_,_,_,_,_,_,_)
0125: resolving binding `test` in sandbox
locals: test@0//0|x@2//1
0127: [->3<-|[2]|2|2] (_,_,_,_,_,_,_,_)
0127: at locals position 0
0129: [->3<-|[2]|2|2] (_,_,_,_,_,_,_,_)
0129: push_binding 000
0131: [->3<-|[2]|2|2|3] (_,_,_,_,_,_,_,_)
0131: resolving binding `eq?` in sandbox
locals: test@0//0|x@2//1
0133: [->3<-|[2]|2|2|3] (_,_,_,_,_,_,_,_)
0133: as global
0135: [->3<-|[2]|2|2|3] (_,_,_,_,_,_,_,_)
0135: constant 00003: :eq?
0138: [->3<-|[2]|2|2|3|:eq?] (_,_,_,_,_,_,_,_)
0138: push_global
0139: [->3<-|[2]|2|2|3|fn eq?] (_,_,_,_,_,_,_,_)
0139: ***after 2 args stack depth: 6
0141: [->3<-|[2]|2|2|3|fn eq?] (_,_,_,_,_,_,_,_)
0141: call 002
=== calling into fn eq?/2 ===
0000: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0000: reset_match
0001: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0001: ***function clause matching: : (x, y)
0003: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0003: match_depth 001
0005: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0005: match
0006: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0006: binding `x` in eq?
0008: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0008: stack depth: 2; match depth: 1
0010: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0010: at stack index: 0
0012: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0012: new locals: x@0//0
0014: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0014: jump_if_no_match 00017
0017: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0017: match_depth 000
0019: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0019: match
0020: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0020: binding `y` in eq?
0022: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0022: stack depth: 2; match depth: 0
0024: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0024: at stack index: 1
0026: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0026: new locals: x@0//0|y@1//0
0028: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0028: jump_if_no_match 00003
0031: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0031: jump 00000
0034: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0034: jump_if_no_match 00034
0037: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0037: ***accessing keyword: base :eq? stack depth: 2
0039: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0039: resolving binding `base` in eq?
locals: x@0//0|y@1//0
0041: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0041: as enclosing upvalue 0
0043: [3|[2]|2|->2<-|3] (_,_,_,_,_,_,_,_)
0043: get_upvalue 000
0045: [3|[2]|2|->2<-|3|#{:trim fn trim/base...] (_,_,_,_,_,_,_,_)
0045: constant 00000: :eq?
0048: [3|[2]|2|->2<-|3|#{:trim fn trim/base...|:eq?] (_,_,_,_,_,_,_,_)
0048: get_key
0049: [3|[2]|2|->2<-|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0049: ***after keyword access stack depth: 3
0051: [3|[2]|2|->2<-|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0051: stash
0052: [3|[2]|2|->2<-|3|fn eq?/base] (fn eq?/base,_,_,_,_,_,_,_)
0052: pop
0053: [3|[2]|2|->2<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0053: resolving binding `x` in eq?
locals: x@0//0|y@1//0
0055: [3|[2]|2|->2<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0055: at locals position 0
0057: [3|[2]|2|->2<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0057: push_binding 000
0059: [3|[2]|2|->2<-|3|2] (fn eq?/base,_,_,_,_,_,_,_)
0059: resolving binding `y` in eq?
locals: x@0//0|y@1//0
0061: [3|[2]|2|->2<-|3|2] (fn eq?/base,_,_,_,_,_,_,_)
0061: at locals position 1
0063: [3|[2]|2|->2<-|3|2] (fn eq?/base,_,_,_,_,_,_,_)
0063: push_binding 001
0065: [3|[2]|2|->2<-|3|2|3] (fn eq?/base,_,_,_,_,_,_,_)
0065: load
0066: [3|[2]|2|->2<-|3|2|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0066: tail_call 002
=== tail call into fn eq?/base/2 from eq? ===
0143: [->3<-|[2]|2|false] (_,_,_,_,_,_,_,_)
0143: ***loop: after body, before store stack depth: 4
0145: [->3<-|[2]|2|false] (_,_,_,_,_,_,_,_)
0145: store
0146: [->3<-|[2]|2] (false,_,_,_,_,_,_,_)
0146: ***loop: after body, after store stack depth: 3
0148: [->3<-|[2]|2] (false,_,_,_,_,_,_,_)
0148: leaving scope 1
0150: [->3<-|[2]|2] (false,_,_,_,_,_,_,_)
0150: releasing binding Some(Binding { name: "x", depth: 1, stack_pos: 2 })
0152: [->3<-|[2]|2] (false,_,_,_,_,_,_,_)
0152: ***resetting the stack after loop from 3 to 1 stack depth: 3
0154: [->3<-|[2]|2] (false,_,_,_,_,_,_,_)
0154: pop_n 002
0156: [->3<-] (false,_,_,_,_,_,_,_)
0156: jump 00139
0298: [->3<-] (false,_,_,_,_,_,_,_)
0298: ***before loop arity adjustment stack depth: 2
0300: [->3<-] (false,_,_,_,_,_,_,_)
0300: load
0301: [->3<-|false] (_,_,_,_,_,_,_,_)
0301: ***at very end of loop after load stack depth: 2
0303: [->3<-|false] (_,_,_,_,_,_,_,_)
0303: ***after let expr stack depth: 2
0305: [->3<-|false] (_,_,_,_,_,_,_,_)
0305: ***let binding: matching: quux
0307: [->3<-|false] (_,_,_,_,_,_,_,_)
0307: reset_match
0308: [->3<-|false] (_,_,_,_,_,_,_,_)
0308: match
0309: [->3<-|false] (_,_,_,_,_,_,_,_)
0309: binding `quux` in sandbox
0311: [->3<-|false] (_,_,_,_,_,_,_,_)
0311: stack depth: 2; match depth: 0
0313: [->3<-|false] (_,_,_,_,_,_,_,_)
0313: at stack index: 1
0315: [->3<-|false] (_,_,_,_,_,_,_,_)
0315: new locals: test@0//0|quux@1//0
0317: [->3<-|false] (_,_,_,_,_,_,_,_)
0317: panic_if_no_match
0318: [->3<-|false] (_,_,_,_,_,_,_,_)
0318: ***after let binding stack depth: 2
0320: [->3<-|false] (_,_,_,_,_,_,_,_)
0320: ***before let binding stack depth: 2
0322: [->3<-|false] (_,_,_,_,_,_,_,_)
0322: constant 00005: :bar
0325: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0325: ***after let expr stack depth: 3
0327: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0327: ***let binding: matching: foo
0329: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0329: reset_match
0330: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0330: match
0331: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0331: binding `foo` in sandbox
0333: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0333: stack depth: 3; match depth: 0
0335: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0335: at stack index: 2
0337: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0337: new locals: test@0//0|quux@1//0|foo@2//0
0339: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0339: panic_if_no_match
0340: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0340: ***after let binding stack depth: 3
0342: [->3<-|false|:bar] (_,_,_,_,_,_,_,_)
0342: constant 00006: fn not
0345: [->3<-|false|:bar|fn not] (_,_,_,_,_,_,_,_)
0345: binding `not` in sandbox
0347: [->3<-|false|:bar|fn not] (_,_,_,_,_,_,_,_)
0347: stack depth: 4; match depth: 0
0349: [->3<-|false|:bar|fn not] (_,_,_,_,_,_,_,_)
0349: at stack index: 3
0351: [->3<-|false|:bar|fn not] (_,_,_,_,_,_,_,_)
0351: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0
0353: [->3<-|false|:bar|fn not] (_,_,_,_,_,_,_,_)
0353: ***before let binding stack depth: 4
0355: [->3<-|false|:bar|fn not] (_,_,_,_,_,_,_,_)
0355: ***entering loop stack depth: 4
0357: [->3<-|false|:bar|fn not] (_,_,_,_,_,_,_,_)
0357: push_list
0358: [->3<-|false|:bar|fn not|[]] (_,_,_,_,_,_,_,_)
0358: constant 00001: 1
0361: [->3<-|false|:bar|fn not|[]|1] (_,_,_,_,_,_,_,_)
0361: append_list
0362: [->3<-|false|:bar|fn not|[1]] (_,_,_,_,_,_,_,_)
0362: constant 00002: 2
0365: [->3<-|false|:bar|fn not|[1]|2] (_,_,_,_,_,_,_,_)
0365: append_list
0366: [->3<-|false|:bar|fn not|[1, 2]] (_,_,_,_,_,_,_,_)
0366: constant 00000: 3
0369: [->3<-|false|:bar|fn not|[1, 2]|3] (_,_,_,_,_,_,_,_)
0369: append_list
0370: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0370: ***after loop args stack depth: 5
0372: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0372: store_n 001
0374: [->3<-|false|:bar|fn not] ([1, 2, 3],_,_,_,_,_,_,_)
0374: ***loop: after store stack depth: 4
0376: [->3<-|false|:bar|fn not] ([1, 2, 3],_,_,_,_,_,_,_)
0376: load_n 001
0378: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0378: ***loop: after load stack depth: 5
0380: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0380: reset_match
0381: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0381: ***loop clause matching: : ([])
0383: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0383: match_depth 000
0385: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0385: match_list 000
0387: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0387: jump_if_no_match 00006
0396: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0396: jump_if_no_match 00016
0415: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0415: ***loop: after load stack depth: 5
0417: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0417: reset_match
0418: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0418: ***loop clause matching: : ([y])
0420: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0420: match_depth 000
0422: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0422: match_list 001
0424: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0424: jump_if_no_match 00020
0447: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0447: jump_if_no_match 00044
0494: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0494: ***loop: after load stack depth: 5
0496: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0496: reset_match
0497: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0497: ***loop clause matching: : ([y, ...ys])
0499: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0499: match_depth 000
0501: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0501: match_splatted_list 002
0503: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0503: jump_if_no_match 00035
0506: [->3<-|false|:bar|fn not|[1, 2, 3]] (_,_,_,_,_,_,_,_)
0506: load_splatted_list 002
0508: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0508: match_depth 001
0510: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0510: match
0511: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0511: binding `y` in sandbox
0513: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0513: stack depth: 7; match depth: 1
0515: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0515: at stack index: 5
0517: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0517: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0519: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0519: jump_if_no_match 00018
0522: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0522: match_depth 000
0524: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0524: match
0525: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0525: binding `ys` in sandbox
0527: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0527: stack depth: 7; match depth: 0
0529: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0529: at stack index: 6
0531: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0531: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0533: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0533: jump_if_no_match 00004
0536: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0536: jump 00002
0541: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0541: jump_if_no_match 00098
0544: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0544: ***loop: before body stack depth: 7
0546: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0546: ***calling function not stack depth: 7
0548: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0548: ***calling function eq? stack depth: 7
0550: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0550: resolving binding `y` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0552: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0552: at locals position 5
0554: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0554: push_binding 005
0556: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|1] (_,_,_,_,_,_,_,_)
0556: resolving binding `test` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0558: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|1] (_,_,_,_,_,_,_,_)
0558: at locals position 0
0560: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|1] (_,_,_,_,_,_,_,_)
0560: push_binding 000
0562: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|1|3] (_,_,_,_,_,_,_,_)
0562: resolving binding `eq?` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0564: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|1|3] (_,_,_,_,_,_,_,_)
0564: as global
0566: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|1|3] (_,_,_,_,_,_,_,_)
0566: constant 00003: :eq?
0569: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|1|3|:eq?] (_,_,_,_,_,_,_,_)
0569: push_global
0570: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|1|3|fn eq?] (_,_,_,_,_,_,_,_)
0570: ***after 2 args stack depth: 10
0572: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|1|3|fn eq?] (_,_,_,_,_,_,_,_)
0572: call 002
=== calling into fn eq?/2 ===
0000: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0000: reset_match
0001: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0001: ***function clause matching: : (x, y)
0003: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0003: match_depth 001
0005: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0005: match
0006: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0006: binding `x` in eq?
0008: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0008: stack depth: 2; match depth: 1
0010: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0010: at stack index: 0
0012: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0012: new locals: x@0//0
0014: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0014: jump_if_no_match 00017
0017: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0017: match_depth 000
0019: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0019: match
0020: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0020: binding `y` in eq?
0022: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0022: stack depth: 2; match depth: 0
0024: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0024: at stack index: 1
0026: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0026: new locals: x@0//0|y@1//0
0028: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0028: jump_if_no_match 00003
0031: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0031: jump 00000
0034: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0034: jump_if_no_match 00034
0037: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0037: ***accessing keyword: base :eq? stack depth: 2
0039: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0039: resolving binding `base` in eq?
locals: x@0//0|y@1//0
0041: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0041: as enclosing upvalue 0
0043: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (_,_,_,_,_,_,_,_)
0043: get_upvalue 000
0045: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3|#{:trim fn trim/base...] (_,_,_,_,_,_,_,_)
0045: constant 00000: :eq?
0048: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3|#{:trim fn trim/base...|:eq?] (_,_,_,_,_,_,_,_)
0048: get_key
0049: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0049: ***after keyword access stack depth: 3
0051: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0051: stash
0052: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3|fn eq?/base] (fn eq?/base,_,_,_,_,_,_,_)
0052: pop
0053: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0053: resolving binding `x` in eq?
locals: x@0//0|y@1//0
0055: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0055: at locals position 0
0057: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0057: push_binding 000
0059: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3|1] (fn eq?/base,_,_,_,_,_,_,_)
0059: resolving binding `y` in eq?
locals: x@0//0|y@1//0
0061: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3|1] (fn eq?/base,_,_,_,_,_,_,_)
0061: at locals position 1
0063: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3|1] (fn eq?/base,_,_,_,_,_,_,_)
0063: push_binding 001
0065: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3|1|3] (fn eq?/base,_,_,_,_,_,_,_)
0065: load
0066: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->1<-|3|1|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0066: tail_call 002
=== tail call into fn eq?/base/2 from eq? ===
0574: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|false] (_,_,_,_,_,_,_,_)
0574: resolving binding `not` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0576: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|false] (_,_,_,_,_,_,_,_)
0576: at locals position 3
0578: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|false] (_,_,_,_,_,_,_,_)
0578: push_binding 003
0580: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|false|fn not] (_,_,_,_,_,_,_,_)
0580: ***after 1 args stack depth: 9
0582: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|false|fn not] (_,_,_,_,_,_,_,_)
0582: call 001
=== calling into fn not/1 ===
0000: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->false<-] (_,_,_,_,_,_,_,_)
0000: reset_match
0001: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->false<-] (_,_,_,_,_,_,_,_)
0001: ***function clause matching: : (false)
0003: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->false<-] (_,_,_,_,_,_,_,_)
0003: match_depth 000
0005: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->false<-] (_,_,_,_,_,_,_,_)
0005: match_false
0006: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->false<-] (_,_,_,_,_,_,_,_)
0006: jump_if_no_match 00003
0009: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->false<-] (_,_,_,_,_,_,_,_)
0009: jump 00000
0012: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->false<-] (_,_,_,_,_,_,_,_)
0012: jump_if_no_match 00004
0015: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->false<-] (_,_,_,_,_,_,_,_)
0015: true
0016: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->false<-|true] (_,_,_,_,_,_,_,_)
0016: store
0017: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|->false<-] (true,_,_,_,_,_,_,_)
0017: pop
0018: [3|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (true,_,_,_,_,_,_,_)
0018: return
== returning from fn not ==
0584: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|true] (_,_,_,_,_,_,_,_)
0584: ***after condition stack depth: 8
0586: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|true] (_,_,_,_,_,_,_,_)
0586: jump_if_false 00034
0589: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0589: ***recur: before args stack depth: 7
0591: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0591: recur arg: 0
0593: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0593: resolving binding `ys` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0595: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0595: at locals position 6
0597: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] (_,_,_,_,_,_,_,_)
0597: push_binding 006
0599: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|[2, 3]] (_,_,_,_,_,_,_,_)
0599: ***recur: after args stack depth: 8
0601: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]|[2, 3]] (_,_,_,_,_,_,_,_)
0601: store_n 001
0603: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] ([2, 3],_,_,_,_,_,_,_)
0603: ***recur: after store stack depth: 7
0605: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] ([2, 3],_,_,_,_,_,_,_)
0605: loop root depth: 4
0607: [->3<-|false|:bar|fn not|[1, 2, 3]|1|[2, 3]] ([2, 3],_,_,_,_,_,_,_)
0607: pop_n 003
0609: [->3<-|false|:bar|fn not] ([2, 3],_,_,_,_,_,_,_)
0609: ***recur: after stack reset stack depth: 4
0611: [->3<-|false|:bar|fn not] ([2, 3],_,_,_,_,_,_,_)
0611: load_n 001
0613: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0613: ***recur: after load, end of compilation stack depth: 5
0615: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0615: jump_back 00237
0378: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0378: ***loop: after load stack depth: 5
0380: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0380: reset_match
0381: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0381: ***loop clause matching: : ([])
0383: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0383: match_depth 000
0385: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0385: match_list 000
0387: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0387: jump_if_no_match 00006
0396: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0396: jump_if_no_match 00016
0415: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0415: ***loop: after load stack depth: 5
0417: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0417: reset_match
0418: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0418: ***loop clause matching: : ([y])
0420: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0420: match_depth 000
0422: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0422: match_list 001
0424: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0424: jump_if_no_match 00020
0447: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0447: jump_if_no_match 00044
0494: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0494: ***loop: after load stack depth: 5
0496: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0496: reset_match
0497: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0497: ***loop clause matching: : ([y, ...ys])
0499: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0499: match_depth 000
0501: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0501: match_splatted_list 002
0503: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0503: jump_if_no_match 00035
0506: [->3<-|false|:bar|fn not|[2, 3]] (_,_,_,_,_,_,_,_)
0506: load_splatted_list 002
0508: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0508: match_depth 001
0510: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0510: match
0511: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0511: binding `y` in sandbox
0513: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0513: stack depth: 7; match depth: 1
0515: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0515: at stack index: 5
0517: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0517: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0519: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0519: jump_if_no_match 00018
0522: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0522: match_depth 000
0524: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0524: match
0525: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0525: binding `ys` in sandbox
0527: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0527: stack depth: 7; match depth: 0
0529: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0529: at stack index: 6
0531: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0531: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0533: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0533: jump_if_no_match 00004
0536: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0536: jump 00002
0541: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0541: jump_if_no_match 00098
0544: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0544: ***loop: before body stack depth: 7
0546: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0546: ***calling function not stack depth: 7
0548: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0548: ***calling function eq? stack depth: 7
0550: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0550: resolving binding `y` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0552: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0552: at locals position 5
0554: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0554: push_binding 005
0556: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|2] (_,_,_,_,_,_,_,_)
0556: resolving binding `test` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0558: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|2] (_,_,_,_,_,_,_,_)
0558: at locals position 0
0560: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|2] (_,_,_,_,_,_,_,_)
0560: push_binding 000
0562: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|2|3] (_,_,_,_,_,_,_,_)
0562: resolving binding `eq?` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0564: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|2|3] (_,_,_,_,_,_,_,_)
0564: as global
0566: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|2|3] (_,_,_,_,_,_,_,_)
0566: constant 00003: :eq?
0569: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|2|3|:eq?] (_,_,_,_,_,_,_,_)
0569: push_global
0570: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|2|3|fn eq?] (_,_,_,_,_,_,_,_)
0570: ***after 2 args stack depth: 10
0572: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|2|3|fn eq?] (_,_,_,_,_,_,_,_)
0572: call 002
=== calling into fn eq?/2 ===
0000: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0000: reset_match
0001: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0001: ***function clause matching: : (x, y)
0003: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0003: match_depth 001
0005: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0005: match
0006: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0006: binding `x` in eq?
0008: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0008: stack depth: 2; match depth: 1
0010: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0010: at stack index: 0
0012: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0012: new locals: x@0//0
0014: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0014: jump_if_no_match 00017
0017: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0017: match_depth 000
0019: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0019: match
0020: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0020: binding `y` in eq?
0022: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0022: stack depth: 2; match depth: 0
0024: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0024: at stack index: 1
0026: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0026: new locals: x@0//0|y@1//0
0028: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0028: jump_if_no_match 00003
0031: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0031: jump 00000
0034: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0034: jump_if_no_match 00034
0037: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0037: ***accessing keyword: base :eq? stack depth: 2
0039: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0039: resolving binding `base` in eq?
locals: x@0//0|y@1//0
0041: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0041: as enclosing upvalue 0
0043: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (_,_,_,_,_,_,_,_)
0043: get_upvalue 000
0045: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3|#{:trim fn trim/base...] (_,_,_,_,_,_,_,_)
0045: constant 00000: :eq?
0048: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3|#{:trim fn trim/base...|:eq?] (_,_,_,_,_,_,_,_)
0048: get_key
0049: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0049: ***after keyword access stack depth: 3
0051: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0051: stash
0052: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3|fn eq?/base] (fn eq?/base,_,_,_,_,_,_,_)
0052: pop
0053: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0053: resolving binding `x` in eq?
locals: x@0//0|y@1//0
0055: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0055: at locals position 0
0057: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0057: push_binding 000
0059: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3|2] (fn eq?/base,_,_,_,_,_,_,_)
0059: resolving binding `y` in eq?
locals: x@0//0|y@1//0
0061: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3|2] (fn eq?/base,_,_,_,_,_,_,_)
0061: at locals position 1
0063: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3|2] (fn eq?/base,_,_,_,_,_,_,_)
0063: push_binding 001
0065: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3|2|3] (fn eq?/base,_,_,_,_,_,_,_)
0065: load
0066: [3|false|:bar|fn not|[2, 3]|2|[3]|->2<-|3|2|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0066: tail_call 002
=== tail call into fn eq?/base/2 from eq? ===
0574: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|false] (_,_,_,_,_,_,_,_)
0574: resolving binding `not` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0576: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|false] (_,_,_,_,_,_,_,_)
0576: at locals position 3
0578: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|false] (_,_,_,_,_,_,_,_)
0578: push_binding 003
0580: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|false|fn not] (_,_,_,_,_,_,_,_)
0580: ***after 1 args stack depth: 9
0582: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|false|fn not] (_,_,_,_,_,_,_,_)
0582: call 001
=== calling into fn not/1 ===
0000: [3|false|:bar|fn not|[2, 3]|2|[3]|->false<-] (_,_,_,_,_,_,_,_)
0000: reset_match
0001: [3|false|:bar|fn not|[2, 3]|2|[3]|->false<-] (_,_,_,_,_,_,_,_)
0001: ***function clause matching: : (false)
0003: [3|false|:bar|fn not|[2, 3]|2|[3]|->false<-] (_,_,_,_,_,_,_,_)
0003: match_depth 000
0005: [3|false|:bar|fn not|[2, 3]|2|[3]|->false<-] (_,_,_,_,_,_,_,_)
0005: match_false
0006: [3|false|:bar|fn not|[2, 3]|2|[3]|->false<-] (_,_,_,_,_,_,_,_)
0006: jump_if_no_match 00003
0009: [3|false|:bar|fn not|[2, 3]|2|[3]|->false<-] (_,_,_,_,_,_,_,_)
0009: jump 00000
0012: [3|false|:bar|fn not|[2, 3]|2|[3]|->false<-] (_,_,_,_,_,_,_,_)
0012: jump_if_no_match 00004
0015: [3|false|:bar|fn not|[2, 3]|2|[3]|->false<-] (_,_,_,_,_,_,_,_)
0015: true
0016: [3|false|:bar|fn not|[2, 3]|2|[3]|->false<-|true] (_,_,_,_,_,_,_,_)
0016: store
0017: [3|false|:bar|fn not|[2, 3]|2|[3]|->false<-] (true,_,_,_,_,_,_,_)
0017: pop
0018: [3|false|:bar|fn not|[2, 3]|2|[3]] (true,_,_,_,_,_,_,_)
0018: return
== returning from fn not ==
0584: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|true] (_,_,_,_,_,_,_,_)
0584: ***after condition stack depth: 8
0586: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|true] (_,_,_,_,_,_,_,_)
0586: jump_if_false 00034
0589: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0589: ***recur: before args stack depth: 7
0591: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0591: recur arg: 0
0593: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0593: resolving binding `ys` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1|ys@6//1
0595: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0595: at locals position 6
0597: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] (_,_,_,_,_,_,_,_)
0597: push_binding 006
0599: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|[3]] (_,_,_,_,_,_,_,_)
0599: ***recur: after args stack depth: 8
0601: [->3<-|false|:bar|fn not|[2, 3]|2|[3]|[3]] (_,_,_,_,_,_,_,_)
0601: store_n 001
0603: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] ([3],_,_,_,_,_,_,_)
0603: ***recur: after store stack depth: 7
0605: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] ([3],_,_,_,_,_,_,_)
0605: loop root depth: 4
0607: [->3<-|false|:bar|fn not|[2, 3]|2|[3]] ([3],_,_,_,_,_,_,_)
0607: pop_n 003
0609: [->3<-|false|:bar|fn not] ([3],_,_,_,_,_,_,_)
0609: ***recur: after stack reset stack depth: 4
0611: [->3<-|false|:bar|fn not] ([3],_,_,_,_,_,_,_)
0611: load_n 001
0613: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0613: ***recur: after load, end of compilation stack depth: 5
0615: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0615: jump_back 00237
0378: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0378: ***loop: after load stack depth: 5
0380: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0380: reset_match
0381: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0381: ***loop clause matching: : ([])
0383: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0383: match_depth 000
0385: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0385: match_list 000
0387: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0387: jump_if_no_match 00006
0396: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0396: jump_if_no_match 00016
0415: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0415: ***loop: after load stack depth: 5
0417: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0417: reset_match
0418: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0418: ***loop clause matching: : ([y])
0420: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0420: match_depth 000
0422: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0422: match_list 001
0424: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0424: jump_if_no_match 00020
0427: [->3<-|false|:bar|fn not|[3]] (_,_,_,_,_,_,_,_)
0427: load_list
0428: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0428: match_depth 000
0430: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0430: match
0431: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0431: binding `y` in sandbox
0433: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0433: stack depth: 6; match depth: 0
0435: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0435: at stack index: 5
0437: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0437: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0439: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0439: jump_if_no_match 00004
0442: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0442: jump 00002
0447: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0447: jump_if_no_match 00044
0450: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0450: ***loop: before body stack depth: 6
0452: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0452: ***calling function eq? stack depth: 6
0454: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0454: resolving binding `y` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0456: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0456: at locals position 5
0458: [->3<-|false|:bar|fn not|[3]|3] (_,_,_,_,_,_,_,_)
0458: push_binding 005
0460: [->3<-|false|:bar|fn not|[3]|3|3] (_,_,_,_,_,_,_,_)
0460: resolving binding `test` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0462: [->3<-|false|:bar|fn not|[3]|3|3] (_,_,_,_,_,_,_,_)
0462: at locals position 0
0464: [->3<-|false|:bar|fn not|[3]|3|3] (_,_,_,_,_,_,_,_)
0464: push_binding 000
0466: [->3<-|false|:bar|fn not|[3]|3|3|3] (_,_,_,_,_,_,_,_)
0466: resolving binding `eq?` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|y@5//1
0468: [->3<-|false|:bar|fn not|[3]|3|3|3] (_,_,_,_,_,_,_,_)
0468: as global
0470: [->3<-|false|:bar|fn not|[3]|3|3|3] (_,_,_,_,_,_,_,_)
0470: constant 00003: :eq?
0473: [->3<-|false|:bar|fn not|[3]|3|3|3|:eq?] (_,_,_,_,_,_,_,_)
0473: push_global
0474: [->3<-|false|:bar|fn not|[3]|3|3|3|fn eq?] (_,_,_,_,_,_,_,_)
0474: ***after 2 args stack depth: 9
0476: [->3<-|false|:bar|fn not|[3]|3|3|3|fn eq?] (_,_,_,_,_,_,_,_)
0476: call 002
=== calling into fn eq?/2 ===
0000: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0000: reset_match
0001: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0001: ***function clause matching: : (x, y)
0003: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0003: match_depth 001
0005: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0005: match
0006: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0006: binding `x` in eq?
0008: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0008: stack depth: 2; match depth: 1
0010: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0010: at stack index: 0
0012: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0012: new locals: x@0//0
0014: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0014: jump_if_no_match 00017
0017: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0017: match_depth 000
0019: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0019: match
0020: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0020: binding `y` in eq?
0022: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0022: stack depth: 2; match depth: 0
0024: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0024: at stack index: 1
0026: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0026: new locals: x@0//0|y@1//0
0028: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0028: jump_if_no_match 00003
0031: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0031: jump 00000
0034: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0034: jump_if_no_match 00034
0037: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0037: ***accessing keyword: base :eq? stack depth: 2
0039: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0039: resolving binding `base` in eq?
locals: x@0//0|y@1//0
0041: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0041: as enclosing upvalue 0
0043: [3|false|:bar|fn not|[3]|3|->3<-|3] (_,_,_,_,_,_,_,_)
0043: get_upvalue 000
0045: [3|false|:bar|fn not|[3]|3|->3<-|3|#{:trim fn trim/base...] (_,_,_,_,_,_,_,_)
0045: constant 00000: :eq?
0048: [3|false|:bar|fn not|[3]|3|->3<-|3|#{:trim fn trim/base...|:eq?] (_,_,_,_,_,_,_,_)
0048: get_key
0049: [3|false|:bar|fn not|[3]|3|->3<-|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0049: ***after keyword access stack depth: 3
0051: [3|false|:bar|fn not|[3]|3|->3<-|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0051: stash
0052: [3|false|:bar|fn not|[3]|3|->3<-|3|fn eq?/base] (fn eq?/base,_,_,_,_,_,_,_)
0052: pop
0053: [3|false|:bar|fn not|[3]|3|->3<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0053: resolving binding `x` in eq?
locals: x@0//0|y@1//0
0055: [3|false|:bar|fn not|[3]|3|->3<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0055: at locals position 0
0057: [3|false|:bar|fn not|[3]|3|->3<-|3] (fn eq?/base,_,_,_,_,_,_,_)
0057: push_binding 000
0059: [3|false|:bar|fn not|[3]|3|->3<-|3|3] (fn eq?/base,_,_,_,_,_,_,_)
0059: resolving binding `y` in eq?
locals: x@0//0|y@1//0
0061: [3|false|:bar|fn not|[3]|3|->3<-|3|3] (fn eq?/base,_,_,_,_,_,_,_)
0061: at locals position 1
0063: [3|false|:bar|fn not|[3]|3|->3<-|3|3] (fn eq?/base,_,_,_,_,_,_,_)
0063: push_binding 001
0065: [3|false|:bar|fn not|[3]|3|->3<-|3|3|3] (fn eq?/base,_,_,_,_,_,_,_)
0065: load
0066: [3|false|:bar|fn not|[3]|3|->3<-|3|3|3|fn eq?/base] (_,_,_,_,_,_,_,_)
0066: tail_call 002
=== tail call into fn eq?/base/2 from eq? ===
0478: [->3<-|false|:bar|fn not|[3]|3|true] (_,_,_,_,_,_,_,_)
0478: ***loop: after body, before store stack depth: 7
0480: [->3<-|false|:bar|fn not|[3]|3|true] (_,_,_,_,_,_,_,_)
0480: store
0481: [->3<-|false|:bar|fn not|[3]|3] (true,_,_,_,_,_,_,_)
0481: ***loop: after body, after store stack depth: 6
0483: [->3<-|false|:bar|fn not|[3]|3] (true,_,_,_,_,_,_,_)
0483: leaving scope 1
0485: [->3<-|false|:bar|fn not|[3]|3] (true,_,_,_,_,_,_,_)
0485: releasing binding Some(Binding { name: "y", depth: 1, stack_pos: 5 })
0487: [->3<-|false|:bar|fn not|[3]|3] (true,_,_,_,_,_,_,_)
0487: ***resetting the stack after loop from 6 to 4 stack depth: 6
0489: [->3<-|false|:bar|fn not|[3]|3] (true,_,_,_,_,_,_,_)
0489: pop_n 002
0491: [->3<-|false|:bar|fn not] (true,_,_,_,_,_,_,_)
0491: jump 00149
0643: [->3<-|false|:bar|fn not] (true,_,_,_,_,_,_,_)
0643: ***before loop arity adjustment stack depth: 5
0645: [->3<-|false|:bar|fn not] (true,_,_,_,_,_,_,_)
0645: load
0646: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0646: ***at very end of loop after load stack depth: 5
0648: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0648: ***after let expr stack depth: 5
0650: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0650: ***let binding: matching: frob
0652: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0652: reset_match
0653: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0653: match
0654: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0654: binding `frob` in sandbox
0656: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0656: stack depth: 5; match depth: 0
0658: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0658: at stack index: 4
0660: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0660: new locals: test@0//0|quux@1//0|foo@2//0|not@3//0|frob@4//0
0662: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0662: panic_if_no_match
0663: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0663: ***after let binding stack depth: 5
0665: [->3<-|false|:bar|fn not|true] (_,_,_,_,_,_,_,_)
0665: push_list
0666: [->3<-|false|:bar|fn not|true|[]] (_,_,_,_,_,_,_,_)
0666: resolving binding `quux` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|frob@4//0
0668: [->3<-|false|:bar|fn not|true|[]] (_,_,_,_,_,_,_,_)
0668: at locals position 1
0670: [->3<-|false|:bar|fn not|true|[]] (_,_,_,_,_,_,_,_)
0670: push_binding 001
0672: [->3<-|false|:bar|fn not|true|[]|false] (_,_,_,_,_,_,_,_)
0672: append_list
0673: [->3<-|false|:bar|fn not|true|[false]] (_,_,_,_,_,_,_,_)
0673: resolving binding `frob` in sandbox
locals: test@0//0|quux@1//0|foo@2//0|not@3//0|frob@4//0
0675: [->3<-|false|:bar|fn not|true|[false]] (_,_,_,_,_,_,_,_)
0675: at locals position 4
0677: [->3<-|false|:bar|fn not|true|[false]] (_,_,_,_,_,_,_,_)
0677: push_binding 004
0679: [->3<-|false|:bar|fn not|true|[false]|true] (_,_,_,_,_,_,_,_)
0679: append_list
0680: [->3<-|false|:bar|fn not|true|[false, true]] (_,_,_,_,_,_,_,_)
0680: store
0681: [->3<-|false|:bar|fn not|true] ([false, true],_,_,_,_,_,_,_)
0681: leaving scope 0
0683: [->3<-|false|:bar|fn not|true] ([false, true],_,_,_,_,_,_,_)
0683: releasing binding Some(Binding { name: "frob", depth: 0, stack_pos: 4 })
0685: [->3<-|false|:bar|fn not|true] ([false, true],_,_,_,_,_,_,_)
0685: releasing binding Some(Binding { name: "not", depth: 0, stack_pos: 3 })
0687: [->3<-|false|:bar|fn not|true] ([false, true],_,_,_,_,_,_,_)
0687: releasing binding Some(Binding { name: "foo", depth: 0, stack_pos: 2 })
0689: [->3<-|false|:bar|fn not|true] ([false, true],_,_,_,_,_,_,_)
0689: releasing binding Some(Binding { name: "quux", depth: 0, stack_pos: 1 })
0691: [->3<-|false|:bar|fn not|true] ([false, true],_,_,_,_,_,_,_)
0691: releasing binding Some(Binding { name: "test", depth: 0, stack_pos: 0 })
0693: [->3<-|false|:bar|fn not|true] ([false, true],_,_,_,_,_,_,_)
0693: pop_n 005
0695: [] ([false, true],_,_,_,_,_,_,_)
0695: load
0696: [] (_,_,_,_,_,_,_,_)
[false, true]