Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errors when compute the gradient of logdensity of a JuliaBUGS model #202

Closed
sunxd3 opened this issue Jul 26, 2024 · 2 comments
Closed

Errors when compute the gradient of logdensity of a JuliaBUGS model #202

sunxd3 opened this issue Jul 26, 2024 · 2 comments

Comments

@sunxd3
Copy link
Collaborator

sunxd3 commented Jul 26, 2024

This is not quite a MWE, but still maybe useful.

  • Using https://github.com/TuringLang/JuliaBUGS.jl.git#sunxd/resolve_tapir_issue, which contains an efforts to resolve the issue with recursive type definition
using Tapir, JuliaBUGS, Random, LogDensityProblems

(;model_def, data, inits) = JuliaBUGS.BUGSExamples.rats
model = compile(model_def, data, inits)

Tapir.TestUtils.test_rule(
    Random.default_rng(),
    LogDensityProblems.logdensity,
    model,
    rand(65); # num of dimension of model params is 65
    perf_flag=:none,
    is_primitive=false,
    interp=Tapir.TapirInterpreter(),
)

produces,

error (and stack trace)
MethodError(Tapir.rrule!!, (Tapir.CoDual{typeof(Core._compute_sparams), NoFData}(Core._compute_sparams, NoFData()), Tapir.CoDual{Method, NoFData}(getsym(vn::AbstractPPL.VarName{sym}) where sym @ AbstractPPL ~/.julia/packages/AbstractPPL/kb4q5/src/varname.jl:103, NoFData()), Tapir.CoDual{typeof(AbstractPPL.getsym), NoFData}(AbstractPPL.getsym, NoFData()), Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData}(mu[7, 4], NoFData())), 0x0000000000007b8f)

ERROR: ArgumentError: rrule!! for Tapir.CoDual{typeof(LogDensityProblems.logdensity), NoFData} with argument types Tuple{Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}} does not run.
Stacktrace:
 [1] test_rrule_interface(::Any, ::Any, ::Vararg{…}; rule::Tapir.DerivedRule{…})
   @ Tapir.TestUtils ~/.julia/packages/Tapir/01nhs/src/test_utils.jl:341
 [2] test_rule(::Any, ::Any, ::Vararg{…}; interface_only::Bool, is_primitive::Bool, perf_flag::Symbol, interp::Tapir.TapirInterpreter{…}, safety_on::Bool)
   @ Tapir.TestUtils ~/.julia/packages/Tapir/01nhs/src/test_utils.jl:462
 [3] top-level scope
   @ ~/JuliaBUGS.jl/src/tapir_debug.jl:9

caused by: MethodError: no method matching rrule!!(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})

Closest candidates are:
  rrule!!(::Tapir.CoDual{<:Core.IntrinsicFunction}, ::Any...)
   @ Tapir ~/.julia/packages/Tapir/01nhs/src/rrules/builtins.jl:26
  rrule!!(::Tapir.CoDual{typeof(getfield)}, ::Tapir.CoDual{P}, ::Tapir.CoDual, ::Tapir.CoDual) where P
   @ Tapir ~/.julia/packages/Tapir/01nhs/src/rrules/builtins.jl:577
  rrule!!(::Tapir.CoDual{typeof(Base.Broadcast.eltypes)}, ::Tapir.CoDual...) where N
   @ Tapir ~/.julia/packages/Tapir/01nhs/src/rrules/misc.jl:35
  ...

Stacktrace:
  [1] RRuleZeroWrapper
    @ ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:244 [inlined]
  [2] ht_keyindex
    @ ./dict.jl:263 [inlined]
  [3] (::Tuple{…})(none::Tapir.CoDual{…}, none::Tapir.CoDual{…}, none::Tapir.CoDual{…})
    @ Base.Experimental ./<missing>:0
  [4] (::MistyClosures.MistyClosure{…})(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/UrOU5/src/MistyClosures.jl:13
  [5] DerivedRule
    @ ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:675 [inlined]
  [6] (::Tapir.LazyDerivedRule{…})(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:1259
  [7] RRuleZeroWrapper
    @ ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:244 [inlined]
  [8] getindex
    @ ~/.julia/packages/MetaGraphsNext/KWB3R/src/dict_utils.jl:16 [inlined]
  [9] (::Tuple{…})(none::Tapir.CoDual{…}, none::Tapir.CoDual{…}, none::Tapir.CoDual{…})
    @ Base.Experimental ./<missing>:0
 [10] (::MistyClosures.MistyClosure{…})(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/UrOU5/src/MistyClosures.jl:13
 [11] (::Tapir.DerivedRule{…})(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:675
 [12] (::Tapir.DynamicDerivedRule{…})(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:1229
 [13] (::Tapir.RRuleZeroWrapper{…})(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:244
 [14] evaluate!!
    @ ~/JuliaBUGS.jl/src/model.jl:498 [inlined]
 [15] (::Tuple{…})(none::Tapir.CoDual{…}, none::Tapir.CoDual{…}, none::Tapir.CoDual{…}, none::Tapir.CoDual{…})
    @ Base.Experimental ./<missing>:0
 [16] (::MistyClosures.MistyClosure{…})(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/UrOU5/src/MistyClosures.jl:13
 [17] DerivedRule
    @ ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:675 [inlined]
 [18] (::Tapir.LazyDerivedRule{…})(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:1259
 [19] RRuleZeroWrapper
    @ ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:244 [inlined]
 [20] logdensity
    @ ~/JuliaBUGS.jl/src/logdensityproblems.jl:2 [inlined]
 [21] (::Tuple{…})(none::Tapir.CoDual{…}, none::Tapir.CoDual{…}, none::Tapir.CoDual{…})
    @ Base.Experimental ./<missing>:0
 [22] (::MistyClosures.MistyClosure{…})(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})
    @ MistyClosures ~/.julia/packages/MistyClosures/UrOU5/src/MistyClosures.jl:13
 [23] (::Tapir.DerivedRule{…})(::Tapir.CoDual{…}, ::Tapir.CoDual{…}, ::Tapir.CoDual{…})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:675
 [24] test_rrule_interface(::Any, ::Any, ::Vararg{…}; rule::Tapir.DerivedRule{…})
    @ Tapir.TestUtils ~/.julia/packages/Tapir/01nhs/src/test_utils.jl:337
 [25] test_rule(::Any, ::Any, ::Vararg{…}; interface_only::Bool, is_primitive::Bool, perf_flag::Symbol, interp::Tapir.TapirInterpreter{…}, safety_on::Bool)
    @ Tapir.TestUtils ~/.julia/packages/Tapir/01nhs/src/test_utils.jl:462
 [26] top-level scope
    @ ~/JuliaBUGS.jl/src/tapir_debug.jl:9
Some type information was truncated. Use `show(err)` to see complete types.

<\details>

@willtebbutt
Copy link
Member

Thanks for opening this. In the first instance, could you provide the version of the above stack trace that you get using show(err) (per the suggestion at the bottom of this stack trace) -- much of the information about what's going on is contained in the ... in the various CoDual{...} that you can see above, and the show(err) version will show us what's going on in there.

@sunxd3
Copy link
Collaborator Author

sunxd3 commented Jul 26, 2024

Of course,

Julia 1.10.4 on MacOS

  [47edcb42] ADTypes v1.6.1
  [6fdf6af0] LogDensityProblems v2.1.1
  [996a588d] LogDensityProblemsAD v1.9.0
  [07d77754] Tapir v0.2.27 `https://github.com/compintell/Tapir.jl.git#wct/debugging-and-mwes`
  [9a3f8284] Random
...
err
julia> show(err)
2-element ExceptionStack:
LoadError: ArgumentError: rrule!! for Tapir.CoDual{typeof(LogDensityProblems.logdensity), NoFData} with argument types Tuple{Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}} does not run.
Stacktrace:
  [1] test_rrule_interface(::Any, ::Any, ::Vararg{Any}; rule::Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(LogDensityProblems.logdensity), NoFData}, Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}}, P}} where P<:Tapir.CoDual, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Any}, Tuple{NoRData, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}, NoRData}}}, Val{false}, Val{3}})
    @ Tapir.TestUtils ~/.julia/packages/Tapir/01nhs/src/test_utils.jl:341
  [2] test_rule(::Any, ::Any, ::Vararg{Any}; interface_only::Bool, is_primitive::Bool, perf_flag::Symbol, interp::Tapir.TapirInterpreter{Tapir.DefaultCtx}, safety_on::Bool)
    @ Tapir.TestUtils ~/.julia/packages/Tapir/01nhs/src/test_utils.jl:462
  [3] top-level scope
    @ ~/JuliaBUGS.jl/src/tapir_debug.jl:9
  [4] eval
    @ ./boot.jl:385 [inlined]
  [5] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
    @ Base ./loading.jl:2076
  [6] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
    @ Base ./essentials.jl:892
  [7] invokelatest(::Any, ::Any, ::Vararg{Any})
    @ Base ./essentials.jl:889
  [8] inlineeval(m::Module, code::String, code_line::Int64, code_column::Int64, file::String; softscope::Bool)
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:271
  [9] (::VSCodeServer.var"#69#74"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:181
 [10] withpath(f::VSCodeServer.var"#69#74"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams}, path::String)
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:276
 [11] (::VSCodeServer.var"#68#73"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:179
 [12] hideprompt(f::VSCodeServer.var"#68#73"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:38
 [13] (::VSCodeServer.var"#67#72"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:150
 [14] with_logstate(f::Function, logstate::Any)
    @ Base.CoreLogging ./logging.jl:515
 [15] with_logger
    @ ./logging.jl:627 [inlined]
 [16] (::VSCodeServer.var"#66#71"{VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:263
 [17] #invokelatest#2
    @ ./essentials.jl:892 [inlined]
 [18] invokelatest(::Any)
    @ Base ./essentials.jl:889
 [19] (::VSCodeServer.var"#64#65")()
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:34
in expression starting at /Users/xiandasun/JuliaBUGS.jl/src/tapir_debug.jl:9

caused by: MethodError: no method matching rrule!!(::Tapir.CoDual{typeof(Core._compute_sparams), NoFData}, ::Tapir.CoDual{Method, NoFData}, ::Tapir.CoDual{typeof(AbstractPPL.getsym), NoFData}, ::Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData})

Closest candidates are:
  rrule!!(::Tapir.CoDual{<:Core.IntrinsicFunction}, ::Any...)
   @ Tapir ~/.julia/packages/Tapir/01nhs/src/rrules/builtins.jl:26
  rrule!!(::Tapir.CoDual{typeof(getfield)}, ::Tapir.CoDual{P}, ::Tapir.CoDual, ::Tapir.CoDual) where P
   @ Tapir ~/.julia/packages/Tapir/01nhs/src/rrules/builtins.jl:577
  rrule!!(::Tapir.CoDual{typeof(Base.Broadcast.eltypes)}, ::Tapir.CoDual...) where N
   @ Tapir ~/.julia/packages/Tapir/01nhs/src/rrules/misc.jl:35
  ...

Stacktrace:
  [1] RRuleZeroWrapper
    @ ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:244 [inlined]
  [2] ht_keyindex
    @ ./dict.jl:263 [inlined]
  [3] (::Tuple{Tapir.Stack{Int32}, Base.RefValue{Tuple{Tapir.LazyZeroRData{typeof(Base.ht_keyindex), Nothing}, Tapir.LazyZeroRData{Dict{AbstractPPL.VarName, Tuple{Int64, JuliaBUGS.NodeInfo}}, Nothing}, Tapir.LazyZeroRData{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#mutable_lgetfield_pb!!#470"{:keys, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, Tapir.LazyZeroRData{Vector{AbstractPPL.VarName}, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#mutable_lgetfield_pb!!#470"{:maxprobe, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, Tapir.LazyZeroRData{Int64, Nothing}}}, Tapir.RRuleZeroWrapper{Tapir.LazyDerivedRule{Tuple{typeof(hash), Tuple{Symbol, Accessors.IndexLens{Tuple{Int64, Int64}}}, UInt64}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(hash), NoFData}, Tapir.CoDual{Tuple{Symbol, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData}, Tapir.CoDual{UInt64, NoFData}}, Tapir.CoDual{UInt64, NoFData}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData, NoRData}}}, Val{false}, Val{3}}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.Pullback{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData, NoRData}}}, Val{false}, Val{1}}, Tapir.LazyZeroRData{UInt64, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#mutable_lgetfield_pb!!#470"{:keys, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, Tapir.LazyZeroRData{Vector{AbstractPPL.VarName}, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#mutable_lgetfield_pb!!#470"{:slots, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, Tapir.LazyZeroRData{Vector{UInt8}, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#arrayref_pullback!!#285"{1, Vector{NoTangent}, Int64}, Tapir.LazyZeroRData{UInt8, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#mutable_lgetfield_pb!!#470"{:slots, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, Tapir.LazyZeroRData{Vector{UInt8}, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#arrayref_pullback!!#285"{1, Vector{NoTangent}, Int64}, Tapir.LazyZeroRData{UInt8, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#arrayref_pullback!!#285"{1, Vector{Any}, Int64}, Tl} where Tl<:(Tapir.LazyZeroRData{P} where P<:AbstractPPL.VarName)}, Tapir.Stack{Tapir.NoPullback}, Tapir.Stack{Any}, Tapir.Stack{Any}, Tapir.Stack{Tapir.NoPullback}, Tapir.Stack{Tapir.NoPullback}, Tapir.RRuleZeroWrapper{Tapir.LazyDerivedRule{Tuple{typeof(==), Symbol, WeakRef}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(==), NoFData}, Tapir.CoDual{Symbol, NoFData}, Tapir.CoDual{WeakRef, MutableTangent{@NamedTuple{value}}}}, Tapir.CoDual{Bool, NoFData}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData, NoRData}}}, Val{false}, Val{3}}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.Pullback{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData, NoRData}}}, Val{false}, Val{1}}, Tapir.LazyZeroRData{Bool, Nothing}}}, Tapir.Stack{Tapir.NoPullback}, Tapir.Stack{Any}, Tapir.Stack{Any}, Tapir.Stack{Tapir.NoPullback}, Tapir.Stack{Tapir.NoPullback}, Tapir.RRuleZeroWrapper{Tapir.LazyDerivedRule{Tuple{typeof(==), Accessors.IndexLens{Tuple{Int64, Int64}}, WeakRef}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(==), NoFData}, Tapir.CoDual{Accessors.IndexLens{Tuple{Int64, Int64}}, NoFData}, Tapir.CoDual{WeakRef, MutableTangent{@NamedTuple{value}}}}, Tapir.CoDual{Bool, NoFData}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData, NoRData}}}, Val{false}, Val{3}}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.Pullback{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData, NoRData}}}, Val{false}, Val{1}}, Tapir.LazyZeroRData{Bool, Nothing}}}, Tapir.Stack{Tapir.NoPullback}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.LazyDerivedRule{Tuple{Type{AssertionError}, String}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{Type{AssertionError}, NoFData}, Tapir.CoDual{String, NoFData}}, Tapir.CoDual{AssertionError, Tapir.FData{@NamedTuple{msg}}}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.RData{@NamedTuple{msg}}}, Tuple{NoRData, NoRData}}}, Val{false}, Val{2}}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.Pullback{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.RData{@NamedTuple{msg}}}, Tuple{NoRData, NoRData}}}, Val{false}, Val{1}}, Tapir.LazyZeroRData{AssertionError, Tapir.RData{@NamedTuple{msg}}}}}, Tapir.Stack{Any}})(none::Tapir.CoDual{typeof(Base.ht_keyindex), NoFData}, none::Tapir.CoDual{Dict{AbstractPPL.VarName, Tuple{Int64, JuliaBUGS.NodeInfo}}, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, none::Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData})
    @ Base.Experimental ./<missing>:0
  [4] (::MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(Base.ht_keyindex), NoFData}, Tapir.CoDual{Dict{AbstractPPL.VarName, Tuple{Int64, JuliaBUGS.NodeInfo}}, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData}}, Tapir.CoDual{Int64, NoFData}}})(::Tapir.CoDual{typeof(Base.ht_keyindex), NoFData}, ::Tapir.CoDual{Dict{AbstractPPL.VarName, Tuple{Int64, JuliaBUGS.NodeInfo}}, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, ::Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData})
    @ MistyClosures ~/.julia/packages/MistyClosures/UrOU5/src/MistyClosures.jl:13
  [5] DerivedRule
    @ ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:675 [inlined]
  [6] (::Tapir.LazyDerivedRule{Tuple{typeof(Base.ht_keyindex), Dict{AbstractPPL.VarName, Tuple{Int64, JuliaBUGS.NodeInfo}}, AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(Base.ht_keyindex), NoFData}, Tapir.CoDual{Dict{AbstractPPL.VarName, Tuple{Int64, JuliaBUGS.NodeInfo}}, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData}}, Tapir.CoDual{Int64, NoFData}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData, NoRData}}}, Val{false}, Val{3}}})(::Tapir.CoDual{typeof(Base.ht_keyindex), NoFData}, ::Tapir.CoDual{Dict{AbstractPPL.VarName, Tuple{Int64, JuliaBUGS.NodeInfo}}, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, ::Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:1259
  [7] RRuleZeroWrapper
    @ ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:244 [inlined]
  [8] getindex
    @ ~/.julia/packages/MetaGraphsNext/KWB3R/src/dict_utils.jl:16 [inlined]
  [9] (::Tuple{Tapir.Stack{Int32}, Base.RefValue{Tuple{Tapir.LazyZeroRData{typeof(getindex), Nothing}, Tapir.LazyZeroRData{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleDiGraph{Int64}, AbstractPPL.VarName, JuliaBUGS.NodeInfo, Nothing, Nothing, MetaGraphsNext.var"#11#13", Float64}, Nothing}, Tapir.LazyZeroRData{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, Nothing}}}, Tapir.RRuleZeroWrapper{Tapir.LazyDerivedRule{Tuple{typeof(Base.ht_keyindex), Dict{AbstractPPL.VarName, Tuple{Int64, JuliaBUGS.NodeInfo}}, AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(Base.ht_keyindex), NoFData}, Tapir.CoDual{Dict{AbstractPPL.VarName, Tuple{Int64, JuliaBUGS.NodeInfo}}, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData}}, Tapir.CoDual{Int64, NoFData}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData, NoRData}}}, Val{false}, Val{3}}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.Pullback{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData, NoRData}}}, Val{false}, Val{1}}, Tapir.LazyZeroRData{Int64, Nothing}}}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.Stack{Any}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#mutable_lgetfield_pb!!#470"{:vals, MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}}, Tapir.LazyZeroRData{Vector{Tuple{Int64, JuliaBUGS.NodeInfo}}, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#arrayref_pullback!!#285"{1, Vector{Any}, Int64}, Tl} where Tl<:(Tapir.LazyZeroRData{P} where P<:Tuple{Int64, JuliaBUGS.NodeInfo})}, Tapir.Stack{Any}})(none::Tapir.CoDual{typeof(getindex), NoFData}, none::Tapir.CoDual{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleDiGraph{Int64}, AbstractPPL.VarName, JuliaBUGS.NodeInfo, Nothing, Nothing, MetaGraphsNext.var"#11#13", Float64}, Tapir.FData{@NamedTuple{graph::MutableTangent{@NamedTuple{ne::NoTangent, fadjlist::Vector{Vector{NoTangent}}, badjlist::Vector{Vector{NoTangent}}}}, vertex_labels::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{NoTangent}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, vertex_properties::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, edge_data::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, graph_data::NoFData, weight_function::NoFData, default_weight::NoFData}}}, none::Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData})
    @ Base.Experimental ./<missing>:0
 [10] (::MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(getindex), NoFData}, Tapir.CoDual{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleDiGraph{Int64}, AbstractPPL.VarName, JuliaBUGS.NodeInfo, Nothing, Nothing, MetaGraphsNext.var"#11#13", Float64}, Tapir.FData{@NamedTuple{graph::MutableTangent{@NamedTuple{ne::NoTangent, fadjlist::Vector{Vector{NoTangent}}, badjlist::Vector{Vector{NoTangent}}}}, vertex_labels::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{NoTangent}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, vertex_properties::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, edge_data::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, graph_data::NoFData, weight_function::NoFData, default_weight::NoFData}}}, Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData}}, Tapir.CoDual{Tx} where Tx<:JuliaBUGS.NodeInfo}})(::Tapir.CoDual{typeof(getindex), NoFData}, ::Tapir.CoDual{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleDiGraph{Int64}, AbstractPPL.VarName, JuliaBUGS.NodeInfo, Nothing, Nothing, MetaGraphsNext.var"#11#13", Float64}, Tapir.FData{@NamedTuple{graph::MutableTangent{@NamedTuple{ne::NoTangent, fadjlist::Vector{Vector{NoTangent}}, badjlist::Vector{Vector{NoTangent}}}}, vertex_labels::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{NoTangent}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, vertex_properties::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, edge_data::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, graph_data::NoFData, weight_function::NoFData, default_weight::NoFData}}}, ::Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData})
    @ MistyClosures ~/.julia/packages/MistyClosures/UrOU5/src/MistyClosures.jl:13
 [11] (::Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(getindex), NoFData}, Tapir.CoDual{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleDiGraph{Int64}, AbstractPPL.VarName, JuliaBUGS.NodeInfo, Nothing, Nothing, MetaGraphsNext.var"#11#13", Float64}, Tapir.FData{@NamedTuple{graph::MutableTangent{@NamedTuple{ne::NoTangent, fadjlist::Vector{Vector{NoTangent}}, badjlist::Vector{Vector{NoTangent}}}}, vertex_labels::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{NoTangent}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, vertex_properties::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, edge_data::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, graph_data::NoFData, weight_function::NoFData, default_weight::NoFData}}}, Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData}}, P}} where P<:Tapir.CoDual, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Any}, Tuple{NoRData, Tapir.RData{@NamedTuple{graph::NoRData, vertex_labels::NoRData, vertex_properties::NoRData, edge_data::NoRData, graph_data::NoRData, weight_function::NoRData, default_weight::Float64}}, NoRData}}}, Val{false}, Val{3}})(::Tapir.CoDual{typeof(getindex), NoFData}, ::Tapir.CoDual{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleDiGraph{Int64}, AbstractPPL.VarName, JuliaBUGS.NodeInfo, Nothing, Nothing, MetaGraphsNext.var"#11#13", Float64}, Tapir.FData{@NamedTuple{graph::MutableTangent{@NamedTuple{ne::NoTangent, fadjlist::Vector{Vector{NoTangent}}, badjlist::Vector{Vector{NoTangent}}}}, vertex_labels::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{NoTangent}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, vertex_properties::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, edge_data::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, graph_data::NoFData, weight_function::NoFData, default_weight::NoFData}}}, ::Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:675
 [12] (::Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}})(::Tapir.CoDual{typeof(getindex), NoFData}, ::Tapir.CoDual{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleDiGraph{Int64}, AbstractPPL.VarName, JuliaBUGS.NodeInfo, Nothing, Nothing, MetaGraphsNext.var"#11#13", Float64}, Tapir.FData{@NamedTuple{graph::MutableTangent{@NamedTuple{ne::NoTangent, fadjlist::Vector{Vector{NoTangent}}, badjlist::Vector{Vector{NoTangent}}}}, vertex_labels::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{NoTangent}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, vertex_properties::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, edge_data::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, graph_data::NoFData, weight_function::NoFData, default_weight::NoFData}}}, ::Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:1229
 [13] (::Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}})(::Tapir.CoDual{typeof(getindex), NoFData}, ::Tapir.CoDual{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleDiGraph{Int64}, AbstractPPL.VarName, JuliaBUGS.NodeInfo, Nothing, Nothing, MetaGraphsNext.var"#11#13", Float64}, Tapir.FData{@NamedTuple{graph::MutableTangent{@NamedTuple{ne::NoTangent, fadjlist::Vector{Vector{NoTangent}}, badjlist::Vector{Vector{NoTangent}}}}, vertex_labels::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{NoTangent}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, vertex_properties::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{Any}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, edge_data::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, graph_data::NoFData, weight_function::NoFData, default_weight::NoFData}}}, ::Tapir.CoDual{AbstractPPL.VarName{:mu, Accessors.IndexLens{Tuple{Int64, Int64}}}, NoFData})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:244
 [14] evaluate!!
    @ ~/JuliaBUGS.jl/src/model.jl:498 [inlined]
 [15] (::Tuple{Tapir.Stack{Int32}, Base.RefValue{Tuple{Tapir.LazyZeroRData{typeof(AbstractPPL.evaluate!!), Nothing}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}, Tapir.LazyZeroRData{JuliaBUGS.LogDensityContext, Nothing}, Tapir.LazyZeroRData{Vector{Float64}, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:transformed}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tapir.LazyZeroRData{Bool, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:transformed_param_length}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tapir.LazyZeroRData{Int64, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:untransformed_param_length}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tapir.LazyZeroRData{Int64, Nothing}}}, Tapir.RRuleZeroWrapper{Tapir.LazyDerivedRule{Tuple{typeof(error), String}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(error), NoFData}, Tapir.CoDual{String, NoFData}}, P}} where P<:Tapir.CoDual, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData}}}, Val{false}, Val{2}}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.Pullback{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, Tuple{NoRData, NoRData}}}, Val{false}, Val{1}}, Tl} where Tl<:Tapir.LazyZeroRData}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:transformed}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tapir.LazyZeroRData{Bool, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:transformed_var_lengths}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tapir.LazyZeroRData{Dict{AbstractPPL.VarName, Int64}, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:untransformed_var_lengths}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tapir.LazyZeroRData{Dict{AbstractPPL.VarName, Int64}, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:sorted_nodes}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tapir.LazyZeroRData{Vector{AbstractPPL.VarName}, Nothing}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:g}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tl} where Tl<:(Tapir.LazyZeroRData{P} where P<:MetaGraphsNext.MetaGraph)}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:varinfo}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tl} where Tl<:(Tapir.LazyZeroRData{P} where P<:DynamicPPL.SimpleVarInfo)}, Tapir.Stack{Tapir.RRuleWrapperPb{Tpb!!, Tl} where {Tpb!!<:Tapir.var"#deepcopy_pb!!#330", Tl<:Tapir.LazyZeroRData}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#arrayref_pullback!!#285"{1, Vector{Any}, Int64}, Tl} where Tl<:(Tapir.LazyZeroRData{P} where P<:AbstractPPL.VarName)}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.Stack{Tapir.NoPullback}, Tapir.Stack{Any}, Tapir.Stack{Tapir.NoPullback}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.Stack{Tapir.NoPullback}, Tapir.Stack{Any}, Tapir.Stack{Tapir.NoPullback}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:parameters}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tapir.LazyZeroRData{Vector{AbstractPPL.VarName}, Nothing}}}, Tapir.Stack{Tapir.NoPullback}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#immutable_lgetfield_pb!!#471"{Val{:transformed}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}}, Tapir.LazyZeroRData{Bool, Nothing}}}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.LazyDerivedRule{Tuple{typeof(Base._copyto_impl!), Vector{Float64}, Int64, Vector{Float64}, Int64, Int64}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(Base._copyto_impl!), NoFData}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}, Tapir.CoDual{Int64, NoFData}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}, Tapir.CoDual{Int64, NoFData}, Tapir.CoDual{Int64, NoFData}}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, NTuple{6, NoRData}}}, Val{false}, Val{6}}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.Pullback{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, NTuple{6, NoRData}}}, Val{false}, Val{1}}, Tapir.LazyZeroRData{Vector{Float64}, Nothing}}}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.Stack{Any}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.Stack{Any}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.LazyDerivedRule{Tuple{typeof(Base._copyto_impl!), Vector{Float64}, Int64, Vector{Float64}, Int64, Int64}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(Base._copyto_impl!), NoFData}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}, Tapir.CoDual{Int64, NoFData}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}, Tapir.CoDual{Int64, NoFData}, Tapir.CoDual{Int64, NoFData}}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}}}, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, NTuple{6, NoRData}}}, Val{false}, Val{6}}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.Pullback{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{NoRData}, NTuple{6, NoRData}}}, Val{false}, Val{1}}, Tapir.LazyZeroRData{Vector{Float64}, Nothing}}}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.RRuleZeroWrapper{Tapir.DynamicDerivedRule{Tapir.TapirInterpreter{Tapir.DefaultCtx}, Dict{Any, Any}}}, Tapir.Stack{Any}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.var"#arrayref_pullback!!#285"{1, Vector{Any}, Int64}, Tl} where Tl<:(Tapir.LazyZeroRData{P} where P<:AbstractPPL.VarName)}, Tapir.Stack{Any}})(none::Tapir.CoDual{typeof(AbstractPPL.evaluate!!), NoFData}, none::Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, none::Tapir.CoDual{JuliaBUGS.LogDensityContext, NoFData}, none::Tapir.CoDual{Vector{Float64}, Vector{Float64}})
    @ Base.Experimental ./<missing>:0
 [16] (::MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(AbstractPPL.evaluate!!), NoFData}, Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, Tapir.CoDual{JuliaBUGS.LogDensityContext, NoFData}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}}, Tapir.CoDual{Tx} where Tx<:Tuple{Any, Any}}})(::Tapir.CoDual{typeof(AbstractPPL.evaluate!!), NoFData}, ::Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, ::Tapir.CoDual{JuliaBUGS.LogDensityContext, NoFData}, ::Tapir.CoDual{Vector{Float64}, Vector{Float64}})
    @ MistyClosures ~/.julia/packages/MistyClosures/UrOU5/src/MistyClosures.jl:13
 [17] DerivedRule
    @ ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:675 [inlined]
 [18] (::Tapir.LazyDerivedRule{Tuple{typeof(AbstractPPL.evaluate!!), JuliaBUGS.BUGSModel{Nothing}, JuliaBUGS.LogDensityContext, Vector{Float64}}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(AbstractPPL.evaluate!!), NoFData}, Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, Tapir.CoDual{JuliaBUGS.LogDensityContext, NoFData}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}}, P}} where P<:Tapir.CoDual, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Any}, Tuple{NoRData, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}, NoRData, NoRData}}}, Val{false}, Val{4}}})(::Tapir.CoDual{typeof(AbstractPPL.evaluate!!), NoFData}, ::Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, ::Tapir.CoDual{JuliaBUGS.LogDensityContext, NoFData}, ::Tapir.CoDual{Vector{Float64}, Vector{Float64}})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:1259
 [19] RRuleZeroWrapper
    @ ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:244 [inlined]
 [20] logdensity
    @ ~/JuliaBUGS.jl/src/logdensityproblems.jl:2 [inlined]
 [21] (::Tuple{Tapir.Stack{Int32}, Base.RefValue{Tuple{Tapir.LazyZeroRData{typeof(LogDensityProblems.logdensity), Nothing}, Tapir.LazyZeroRData{JuliaBUGS.BUGSModel{Nothing}, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}}, Tapir.LazyZeroRData{Vector{Float64}, Nothing}}}, Tapir.RRuleZeroWrapper{Tapir.LazyDerivedRule{Tuple{typeof(AbstractPPL.evaluate!!), JuliaBUGS.BUGSModel{Nothing}, JuliaBUGS.LogDensityContext, Vector{Float64}}, Tapir.TapirInterpreter{Tapir.DefaultCtx}, Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(AbstractPPL.evaluate!!), NoFData}, Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, Tapir.CoDual{JuliaBUGS.LogDensityContext, NoFData}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}}, P}} where P<:Tapir.CoDual, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Any}, Tuple{NoRData, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}, NoRData, NoRData}}}, Val{false}, Val{4}}}}, Tapir.Stack{Tapir.RRuleWrapperPb{Tapir.Pullback{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Any}, Tuple{NoRData, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}, NoRData, NoRData}}}, Val{false}, Val{1}}, Tl} where Tl<:Tapir.LazyZeroRData}, Tapir.Stack{Any}})(none::Tapir.CoDual{typeof(LogDensityProblems.logdensity), NoFData}, none::Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, none::Tapir.CoDual{Vector{Float64}, Vector{Float64}})
    @ Base.Experimental ./<missing>:0
 [22] (::MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(LogDensityProblems.logdensity), NoFData}, Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}}, Tapir.CoDual}})(::Tapir.CoDual{typeof(LogDensityProblems.logdensity), NoFData}, ::Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, ::Tapir.CoDual{Vector{Float64}, Vector{Float64}})
    @ MistyClosures ~/.julia/packages/MistyClosures/UrOU5/src/MistyClosures.jl:13
 [23] (::Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(LogDensityProblems.logdensity), NoFData}, Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}}, P}} where P<:Tapir.CoDual, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Any}, Tuple{NoRData, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}, NoRData}}}, Val{false}, Val{3}})(::Tapir.CoDual{typeof(LogDensityProblems.logdensity), NoFData}, ::Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, ::Tapir.CoDual{Vector{Float64}, Vector{Float64}})
    @ Tapir ~/.julia/packages/Tapir/01nhs/src/interpreter/s2s_reverse_mode_ad.jl:675
 [24] test_rrule_interface(::Any, ::Any, ::Vararg{Any}; rule::Tapir.DerivedRule{MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Tapir.CoDual{typeof(LogDensityProblems.logdensity), NoFData}, Tapir.CoDual{JuliaBUGS.BUGSModel{Nothing}, Tapir.FData{@NamedTuple{transformed::NoFData, untransformed_param_length::NoFData, transformed_param_length::NoFData, untransformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, transformed_var_lengths::MutableTangent{@NamedTuple{slots::Vector{NoTangent}, keys::Vector{Any}, vals::Vector{NoTangent}, ndel::NoTangent, count::NoTangent, age::NoTangent, idxfloor::NoTangent, maxprobe::NoTangent}}, varinfo, parameters::Vector{Any}, sorted_nodes::Vector{Any}, g, base_model::NoFData}}}, Tapir.CoDual{Vector{Float64}, Vector{Float64}}}, P}} where P<:Tapir.CoDual, MistyClosures.MistyClosure{Core.OpaqueClosure{Tuple{Any}, Tuple{NoRData, Tapir.RData{@NamedTuple{transformed::NoRData, untransformed_param_length::NoRData, transformed_param_length::NoRData, untransformed_var_lengths::NoRData, transformed_var_lengths::NoRData, varinfo, parameters::NoRData, sorted_nodes::NoRData, g, base_model::NoRData}}, NoRData}}}, Val{false}, Val{3}})
    @ Tapir.TestUtils ~/.julia/packages/Tapir/01nhs/src/test_utils.jl:337
 [25] test_rule(::Any, ::Any, ::Vararg{Any}; interface_only::Bool, is_primitive::Bool, perf_flag::Symbol, interp::Tapir.TapirInterpreter{Tapir.DefaultCtx}, safety_on::Bool)
    @ Tapir.TestUtils ~/.julia/packages/Tapir/01nhs/src/test_utils.jl:462
 [26] top-level scope
    @ ~/JuliaBUGS.jl/src/tapir_debug.jl:9
 [27] eval
    @ ./boot.jl:385 [inlined]
 [28] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
    @ Base ./loading.jl:2076
 [29] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
    @ Base ./essentials.jl:892
 [30] invokelatest(::Any, ::Any, ::Vararg{Any})
    @ Base ./essentials.jl:889
 [31] inlineeval(m::Module, code::String, code_line::Int64, code_column::Int64, file::String; softscope::Bool)
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:271
 [32] (::VSCodeServer.var"#69#74"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:181
 [33] withpath(f::VSCodeServer.var"#69#74"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams}, path::String)
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:276
 [34] (::VSCodeServer.var"#68#73"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:179
 [35] hideprompt(f::VSCodeServer.var"#68#73"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:38
 [36] (::VSCodeServer.var"#67#72"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:150
 [37] with_logstate(f::Function, logstate::Any)
    @ Base.CoreLogging ./logging.jl:515
 [38] with_logger
    @ ./logging.jl:627 [inlined]
 [39] (::VSCodeServer.var"#66#71"{VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:263
 [40] #invokelatest#2
    @ ./essentials.jl:892 [inlined]
 [41] invokelatest(::Any)
    @ Base ./essentials.jl:889
 [42] (::VSCodeServer.var"#64#65")()
    @ VSCodeServer ~/.cursor/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:34

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants