Full dump of macroexpand
Expr
head: Symbol block
args: Array{Any}((8,))
1: LineNumberNode
line: Int64 155
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
2: Expr
head: Symbol =
args: Array{Any}((2,))
1: Symbol #21#func
2: Expr
head: Symbol block
args: Array{Any}((2,))
1: Expr
head: Symbol meta
args: Array{Any}((1,))
1: Symbol doc
2: Expr
head: Symbol function
args: Array{Any}((2,))
1: Expr
head: Symbol call
args: Array{Any}((3,))
1: Symbol f
2: Expr
head: Symbol parameters
args: Array{Any}((0,))
3: Expr
head: Symbol ::
args: Array{Any}((2,))
1: Symbol x
2: Symbol Any
2: Expr
head: Symbol block
args: Array{Any}((8,))
1: LineNumberNode
line: Int64 206
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
2: Expr
head: Symbol =
args: Array{Any}((2,))
1: Symbol ##cache#234
2: Expr
head: Symbol call
args: Array{Any}((3,))
1: get_cache (function of type typeof(Memoization.get_cache))
2: UnionAll
var: TypeVar
name: Symbol K
lb: Union{}
ub: Any
body: UnionAll
var: TypeVar
name: Symbol V
lb: Union{}
ub: Any
body: IdDict{K, V} <: AbstractDict{K, V}
ht::Vector{Any}
count::Int64
ndel::Int64
3: Symbol f
3: LineNumberNode
line: Int64 207
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
4: Expr
head: Symbol =
args: Array{Any}((2,))
1: Expr
head: Symbol call
args: Array{Any}((1,))
1: Symbol ##getter#233
2: Expr
head: Symbol block
args: Array{Any}((2,))
1: LineNumberNode
line: Int64 207
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
2: Expr
head: Symbol block
args: Array{Any}((4,))
1: LineNumberNode
line: Int64 1
file: Symbol REPL[7]
2: Expr
head: Symbol call
args: Array{Any}((2,))
1: Symbol println
2: Expr
head: Symbol string
args: Array{Any}((2,))
1: String "Computed "
2: Symbol x
3: LineNumberNode
line: Int64 1
file: Symbol REPL[7]
4: Symbol x
5: LineNumberNode
line: Int64 208
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
6: Expr
head: Symbol =
args: Array{Any}((2,))
1: Symbol ##T#232
2: Expr
head: Symbol call
args: Array{Any}((3,))
1: return_type (function of type typeof(Core.Compiler.return_type))
2: Symbol ##getter#233
3: Expr
head: Symbol curly
args: Array{Any}((1,))
1: Tuple <: Any
7: LineNumberNode
line: Int64 209
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
8: Expr
head: Symbol ::
args: Array{Any}((2,))
1: Expr
head: Symbol call
args: Array{Any}((4,))
1: _get! (function of type typeof(Memoization._get!))
2: Symbol ##getter#233
3: Symbol ##cache#234
4: Expr
head: Symbol tuple
args: Array{Any}((2,))
1: Expr
head: Symbol tuple
args: Array{Any}((1,))
1: Symbol x
2: Expr
head: Symbol tuple
args: Array{Any}((0,))
2: Symbol ##T#232
3: LineNumberNode
line: Int64 156
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
4: Expr
head: Symbol block
args: Array{Any}((4,))
1: LineNumberNode
line: Int64 158
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
2: Expr
head: Symbol local
args: Array{Any}((1,))
1: Expr
head: Symbol =
args: Array{Any}((2,))
1: Symbol #22#cache_constructor_expr′
2: Expr
head: Symbol call
args: Array{Any}((4,))
1: GlobalRef
mod: Module Memoization
name: Symbol _get!
binding: Core.Binding
value: _get! (function of type typeof(Memoization._get!))
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x01
2: Expr
head: Symbol ->
args: Array{Any}((2,))
1: Expr
head: Symbol tuple
args: Array{Any}((0,))
2: Expr
head: Symbol block
args: Array{Any}((2,))
1: LineNumberNode
line: Int64 158
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
2: QuoteNode
value: UnionAll
var: TypeVar
name: Symbol K
lb: Union{}
ub: Any
body: UnionAll
var: TypeVar
name: Symbol V
lb: Union{}
ub: Any
body: IdDict{K, V} <: AbstractDict{K, V}
ht::Vector{Any}
count::Int64
ndel::Int64
3: GlobalRef
mod: Module Memoization
name: Symbol cache_constructor_exprs
binding: Core.Binding
value: IdDict{Any, Any}
ht: Array{Any}((32,))
1: #undef
2: #undef
3: #undef
4: #undef
5: #undef
...
28: #undef
29: #undef
30: #undef
31: #undef
32: #undef
count: Int64 1
ndel: Int64 0
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x01
4: Symbol #21#func
3: LineNumberNode
line: Int64 159
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
4: Expr
head: Symbol if
args: Array{Any}((2,))
1: Expr
head: Symbol call
args: Array{Any}((3,))
1: GlobalRef
mod: Module Memoization
name: Symbol !=
binding: Core.Binding
value: #undef
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding
value: != (function of type typeof(!=))
globalref: GlobalRef
mod: Module Base
name: Symbol !=
binding: Core.Binding#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: #undef
flags: UInt8 0x03
ty: #undef
flags: UInt8 0x00
2: Symbol #22#cache_constructor_expr′
3: QuoteNode
value: UnionAll
var: TypeVar
name: Symbol K
lb: Union{}
ub: Any
body: UnionAll
var: TypeVar
name: Symbol V
lb: Union{}
ub: Any
body: IdDict{K, V} <: AbstractDict{K, V}
ht::Vector{Any}
count::Int64
ndel::Int64
2: Expr
head: Symbol block
args: Array{Any}((2,))
1: LineNumberNode
line: Int64 160
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
2: Expr
head: Symbol call
args: Array{Any}((2,))
1: GlobalRef
mod: Module Memoization
name: Symbol error
binding: Core.Binding
value: #undef
globalref: GlobalRef#= circular reference @-2 =#
owner: #undef
ty: #undef
flags: UInt8 0x00
2: Expr
head: Symbol string
args: Array{Any}((3,))
1: Symbol #21#func
2: String " is already memoized with "
3: Symbol #22#cache_constructor_expr′
5: LineNumberNode
line: Int64 163
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
6: Expr
head: Symbol if
args: Array{Any}((2,))
1: Expr
head: Symbol call
args: Array{Any}((2,))
1: GlobalRef
mod: Module Memoization
name: Symbol statically_memoizable
binding: Core.Binding
value: statically_memoizable (function of type typeof(Memoization.statically_memoizable))
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x01
2: Expr
head: Symbol call
args: Array{Any}((2,))
1: GlobalRef
mod: Module Memoization
name: Symbol typeof
binding: Core.Binding
value: #undef
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding
value: typeof (function of type typeof(typeof))
globalref: GlobalRef
mod: Module Core
name: Symbol typeof
binding: Core.Binding#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x03
ty: #undef
flags: UInt8 0x00
2: Symbol #21#func
2: Expr
head: Symbol block
args: Array{Any}((4,))
1: LineNumberNode
line: Int64 168
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
2: Expr
head: Symbol if
args: Array{Any}((2,))
1: Expr
head: Symbol call
args: Array{Any}((3,))
1: GlobalRef
mod: Module Memoization
name: Symbol ==
binding: Core.Binding
value: #undef
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding
value: == (function of type typeof(==))
globalref: GlobalRef
mod: Module Base
name: Symbol ==
binding: Core.Binding#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: #undef
flags: UInt8 0x03
ty: #undef
flags: UInt8 0x00
2: Expr
head: Symbol call
args: Array{Any}((3,))
1: GlobalRef
mod: Module Memoization
name: Symbol which
binding: Core.Binding
value: #undef
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding
value: which (function of type typeof(which))
globalref: GlobalRef
mod: Module Base
name: Symbol which
binding: Core.Binding#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: #undef
flags: UInt8 0x03
ty: #undef
flags: UInt8 0x00
2: Expr
head: Symbol .
args: Array{Any}((2,))
1: Module Memoization
2: QuoteNode
value: Symbol _static_get_cache
3: Expr
head: Symbol curly
args: Array{Any}((2,))
1: GlobalRef
mod: Module Memoization
name: Symbol Tuple
binding: Core.Binding
value: #undef
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding
value: Tuple <: Any
globalref: GlobalRef
mod: Module Core
name: Symbol Tuple
binding: Core.Binding#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x03
ty: #undef
flags: UInt8 0x00
2: Expr
head: Symbol call
args: Array{Any}((2,))
1: GlobalRef
mod: Module Memoization
name: Symbol typeof
binding: Core.Binding
value: #undef
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding
value: typeof (function of type typeof(typeof))
globalref: GlobalRef
mod: Module Core
name: Symbol typeof
binding: Core.Binding#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x03
ty: #undef
flags: UInt8 0x00
2: Symbol #21#func
3: Expr
head: Symbol call
args: Array{Any}((3,))
1: GlobalRef
mod: Module Memoization
name: Symbol which
binding: Core.Binding
value: #undef
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding
value: which (function of type typeof(which))
globalref: GlobalRef
mod: Module Base
name: Symbol which
binding: Core.Binding#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: #undef
flags: UInt8 0x03
ty: #undef
flags: UInt8 0x00
2: Expr
head: Symbol .
args: Array{Any}((2,))
1: Module Memoization
2: QuoteNode
value: Symbol _static_get_cache
3: Expr
head: Symbol curly
args: Array{Any}((2,))
1: GlobalRef
mod: Module Memoization
name: Symbol Tuple
binding: Core.Binding
value: #undef
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding
value: Tuple <: Any
globalref: GlobalRef
mod: Module Core
name: Symbol Tuple
binding: Core.Binding#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x03
ty: #undef
flags: UInt8 0x00
2: GlobalRef
mod: Module Memoization
name: Symbol Any
binding: Core.Binding
value: #undef
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding
value: Any
globalref: GlobalRef
mod: Module Core
name: Symbol Any
binding: Core.Binding#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x03
ty: #undef
flags: UInt8 0x00
2: Expr
head: Symbol block
args: Array{Any}((2,))
1: LineNumberNode
line: Int64 172
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
2: Expr
head: Symbol call
args: Array{Any}((3,))
1: GlobalRef
mod: Module Core
name: Symbol eval
binding: Core.Binding
value: eval (function of type typeof(Core.eval))
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: #undef
flags: UInt8 0x03
2: Module Main
3: Expr
head: Symbol call
args: Array{Any}((5,))
1: GlobalRef
mod: Module Core
name: Symbol _expr
binding: Core.Binding
value: _expr (function of type typeof(Core._expr))
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x01
2: QuoteNode
value: Symbol macrocall
3: QuoteNode
value: Symbol @generated
4: QuoteNode
value: LineNumberNode
line: Int64 172
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
5: Expr
head: Symbol call
args: Array{Any}((4,))
1: GlobalRef
mod: Module Core
name: Symbol _expr
binding: Core.Binding
value: _expr (function of type typeof(Core._expr))
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x01
2: QuoteNode
value: Symbol function
3: Expr
head: Symbol call
args: Array{Any}((4,))
1: GlobalRef
mod: Module Core
name: Symbol _expr
binding: Core.Binding
value: _expr (function of type typeof(Core._expr))
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x01
2: QuoteNode
value: Symbol call
3: Expr
head: Symbol copyast
args: Array{Any}((1,))
1: QuoteNode
value: Expr
head: Symbol .
args: Array{Any}((2,))
1: Module Memoization
2: QuoteNode
value: Symbol _static_get_cache
4: Expr
head: Symbol call
args: Array{Any}((3,))
1: GlobalRef
mod: Module Core
name: Symbol _expr
binding: Core.Binding
value: _expr (function of type typeof(Core._expr))
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x01
2: QuoteNode
value: Symbol ::
3: Expr
head: Symbol call
args: Array{Any}((4,))
1: GlobalRef
mod: Module Core
name: Symbol _expr
binding: Core.Binding
value: _expr (function of type typeof(Core._expr))
globalref: GlobalRef#= circular reference @-2 =#
owner: Core.Binding#= circular reference @-1 =#
ty: Any
flags: UInt8 0x01
2: QuoteNode
value: Symbol call
3: QuoteNode
value: Symbol typeof
4: Symbol #21#func
4: Expr
head: Symbol copyast
args: Array{Any}((1,))
1: QuoteNode
value: Expr
head: Symbol block
args: Array{Any}((3,))
1: LineNumberNode
line: Int64 172
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
2: LineNumberNode
line: Int64 173
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
3: Expr
head: Symbol call
args: Array{Any}((1,))
1: UnionAll
var: TypeVar
name: Symbol K
lb: Union{}
ub: Any
body: UnionAll
var: TypeVar
name: Symbol V
lb: Union{}
ub: Any
body: IdDict{K, V} <: AbstractDict{K, V}
ht::Vector{Any}
count::Int64
ndel::Int64
3: LineNumberNode
line: Int64 180
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
4: Expr
head: Symbol call
args: Array{Any}((2,))
1: empty_cache! (function of type typeof(Memoization.empty_cache!))
2: Symbol f
7: LineNumberNode
line: Int64 182
file: Symbol /Users/cameron/.julia/packages/Memoization/7WxyR/src/Memoization.jl
8: Symbol #21#func