biaslab / MultiAgentTrajectoryPlanning

Experiments of the "Multi-Agent Trajectory Planning with NUV Priors" paper
MIT License
6 stars 1 forks source link

An error of `switching_positions.jl` #4

Closed Flawless1202 closed 1 month ago

Flawless1202 commented 3 months ago

@bvdmitri @bertdv Thanks for your excellent work! I try to follow the tutorial to migrate switching_positions.jl to RxInfer v3.5.0. The code is as follows:

using LinearAlgebra, RxInfer, Plots, PGFPlotsX

goals = hcat([
    # agent 1: start at (0,0) with 0 velocity, end at (0, 50) with 0 velocity
    [
        [0, 0, 0, 0],
        [0, 0, 50, 0]
    ], 
    # agent 2: start at (0,50) with 0 velocity, end at (0, 0) with 0 velocity
    [
        [0, 0, 50, 0],
        [0, 0, 0, 0]
    ]
]...)
radius1 = 15
radius2 = 15

# node specification
struct Halfspace end
@node Halfspace Stochastic [out, a, σ2, γ]

# rule specification
@rule Halfspace(:out, Marginalisation) (q_a::PointMass, q_σ2::PointMass, q_γ::PointMass) = begin
    return NormalMeanVariance(mean(q_a) + mean(q_γ) * mean(q_σ2), mean(q_σ2))
end

@rule Halfspace(:σ2, Marginalisation) (q_out::UnivariateNormalDistributionsFamily, q_a::PointMass, q_γ::PointMass, ) = begin
    return PointMass( 1 / mean(q_γ) * sqrt(abs2(mean(q_out) - mean(q_a)) + var(q_out)))
end

function h(y1, y2; r1 = radius1, r2 = radius2)
    return norm(y1 - y2) - r1 - r2
end;

@model function switching_model(goals, nr_steps, γ, ΔT)

    # transition model
    A = Matrix([1 ΔT 0 0; 0 1 0 0; 0 0 1 ΔT; 0 0 0 1])
    B = Matrix([0 0; ΔT 0; 0 0; 0 ΔT])
    C = Matrix([1 0 0 0; 0 0 1 0])

    # observations
    local y

    # single agent models
    for k in 1:2

        # prior on state
        x[k, 1] ~ MvNormalMeanCovariance(zeros(4), 1e2I)

        for t in 1:nr_steps

            # prior on controls
            u[k,t] ~ MvNormalMeanCovariance(zeros(2), 1e-2I)

            # state transition
            x[k, t+1] ~ A * x[k,t] + B * u[k,t]

            # observation model
            y[k, t] ~ C * x[k, t+1]

        end

        # goal priors (indexing reverse due to definition)
        goals[1,k] ~ MvNormalMeanCovariance(x[k, 1], 1e-5I)
        goals[2,k] ~ MvNormalMeanCovariance(x[k, nr_steps + 1], 1e-5I)

    end

    # multi-agent models
    for t = 1:nr_steps

        # observation constraint
        σ2[t] ~ GammaShapeRate(3/2, γ^2/2)
        d[t] := h(y[1, t], y[2, t])
        d[t] ~ Halfspace(0, σ2[t], γ)

    end

end;

@constraints function switching_constraints() 
    q(d, σ2) = q(d)q(σ2)
end;

switching_meta = @meta begin 
    h() -> Linearization()
end;

@initialization function my_init()
    q(σ2) = repeat([PointMass(1)], nr_steps)
    q(u) = repeat([PointMass(0)], nr_steps)
    μ(x) = MvNormalMeanCovariance(randn(4), 100I)
end

nr_iterations = 1000
nr_steps = 50

results = infer(
    model           = switching_model(nr_steps = nr_steps, γ = 1, ΔT = 1),
    data            = ( goals = goals, ),
    constraints     = switching_constraints(),
    meta            = switching_meta,
    iterations      = nr_iterations,
    returnvars      = KeepLast(), 
    initialization  = my_init() 
)

Then I got the error:

`ProductOf` object cannot be used as a functional form in inference backend. Use form constraints to restrict the functional form of marginal posteriors.

Could you give me some suggestions to solve the problem? And are there any publications related to this repo ? Thanks a lot!

bvdmitri commented 3 months ago

Related https://github.com/ReactiveBayes/RxInfer.jl/issues/335

You should use functional form constraint on some of your variable, but without a full stacktrace its hard to say which one

Flawless1202 commented 2 months ago

Related ReactiveBayes/RxInfer.jl#335

You should use functional form constraint on some of your variable, but without a full stacktrace its hard to say which one

@bvdmitri Thanks for your reply! Here is the full stacktrace:

ERROR: LoadError: `ProductOf` object cannot be used as a functional form in inference backend. Use form constraints to restrict the functional form of marginal posteriors.
Stacktrace:
    [1] error(s::String)
      @ Base ./error.jl:35
    [2] constrain_form(::UnspecifiedFormConstraint, something::ProductOf{GammaShapeRate{Float64}, PointMass{Float64}})
      @ ReactiveMP ~/.julia/packages/ReactiveMP/DrjJB/src/constraints/form.jl:85
    [3] constrain_form_as_message(message::Message{ProductOf{GammaShapeRate{Float64}, PointMass{Float64}}, Nothing}, form_constraint::UnspecifiedFormConstraint)
      @ ReactiveMP ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:139
    [4] (::ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint})(messages::Vector{AbstractMessage})
      @ ReactiveMP ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:149
    [5] (::ReactiveMP.var"#119#120"{ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}})(messages::Vector{AbstractMessage})
      @ ReactiveMP ~/.julia/packages/ReactiveMP/DrjJB/src/variables/variable.jl:36
    [6] next_received!(wrapper::Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#119#120"{ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}}, typeof(ReactiveMP.reset_vstatus)}, data::DefferedMessage{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, ReactiveMP.MessageMapping{Halfspace, Val{:σ2}, Marginalisation, Nothing, Val{(:out, :a, :γ)}, Nothing, Nothing, Nothing, Nothing}}, index::CartesianIndex{1})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:103
    [7] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:93 [inlined]
    [8] scheduled_next!(actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#119#120"{ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}}, typeof(ReactiveMP.reset_vstatus)}}, value::DefferedMessage{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, ReactiveMP.MessageMapping{Halfspace, Val{:σ2}, Marginalisation, Nothing, Val{(:out, :a, :γ)}, Nothing, Nothing, Nothing, Nothing}}, ::AsapScheduler)
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/schedulers/asap.jl:23
    [9] on_next!(subject::Subject{AbstractMessage, AsapScheduler, AsapScheduler}, data::DefferedMessage{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, ReactiveMP.MessageMapping{Halfspace, Val{:σ2}, Marginalisation, Nothing, Val{(:out, :a, :γ)}, Nothing, Nothing, Nothing, Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/subjects/subject.jl:62
   [10] actor_on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:250 [inlined]
   [11] next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:202 [inlined]
   [12] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/subjects/recent.jl:62 [inlined]
   [13] actor_on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:250 [inlined]
   [14] next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:202 [inlined]
   [15] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/map.jl:62 [inlined]
   [16] next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:206 [inlined]
   [17] next_received!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:101 [inlined]
   [18] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:68 [inlined]
   [19] next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:206 [inlined]
   [20] next_received!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:72 [inlined]
   [21] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:34 [inlined]
   [22] scheduled_next!(actor::Rocket.CombineLatestUpdatesInnerActor{Marginal, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{Halfspace, Val{:σ2}, Marginalisation, Nothing, Val{(:out, :a, :γ)}, Nothing, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}}, value::Marginal{NormalWeightedMeanPrecision{Float64}, Nothing}, ::AsapScheduler)
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/schedulers/asap.jl:23
   [23] on_next!(subject::Subject{Marginal, AsapScheduler, AsapScheduler}, data::Marginal{NormalWeightedMeanPrecision{Float64}, Nothing})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/subjects/subject.jl:62
   [24] actor_on_next!(::BaseActorTrait{Marginal}, actor::Subject{Marginal, AsapScheduler, AsapScheduler}, data::Marginal{NormalWeightedMeanPrecision{Float64}, Nothing})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/actor.jl:250
   [25] next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:202 [inlined]
   [26] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/subjects/recent.jl:62 [inlined]
   [27] actor_on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:250 [inlined]
   [28] next!(actor::Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, data::Marginal{NormalWeightedMeanPrecision{Float64}, Nothing})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/actor.jl:202
   [29] next_received!(wrapper::Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#119#120"{ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}}, typeof(ReactiveMP.reset_vstatus)}, data::DefferedMessage{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}}, index::CartesianIndex{1})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:104
   [30] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:93 [inlined]
   [31] scheduled_next!(actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#119#120"{ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}}, typeof(ReactiveMP.reset_vstatus)}}, value::DefferedMessage{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}}, ::AsapScheduler)
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/schedulers/asap.jl:23
   [32] on_next!(subject::Subject{AbstractMessage, AsapScheduler, AsapScheduler}, data::DefferedMessage{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/subjects/subject.jl:62
   [33] actor_on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:250 [inlined]
   [34] next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:202 [inlined]
   [35] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/subjects/recent.jl:62 [inlined]
   [36] actor_on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:250 [inlined]
   [37] next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:202 [inlined]
   [38] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/map.jl:62 [inlined]
   [39] next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:206 [inlined]
   [40] next_received!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:101 [inlined]
   [41] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:68 [inlined]
   [42] next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:206 [inlined]
   [43] next_received!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:72 [inlined]
   [44] on_next!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:34 [inlined]
   [45] next!
      @ ~/.julia/packages/Rocket/LrFUI/src/actor.jl:206 [inlined]
   [46] on_subscribe!(subject::Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, actor::Rocket.CombineLatestUpdatesInnerActor{Marginal, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/subjects/recent.jl:78
   [47] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
   [48] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:22 [inlined]
   [49] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subscribable.jl:185 [inlined]
   [50] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:69 [inlined]
   [51] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subscribable.jl:185 [inlined]
   [52] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
   [53] subscribe!(subscribable::ProxyObservable{Marginal{PointMass{Int64}, Nothing}, Rocket.RefCountSource{Marginal{PointMass{Int64}, Nothing}, ConnectableObservable{Marginal{PointMass{Int64}, Nothing}, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, SingleObservable{Marginal{PointMass{Int64}, Nothing}, AsapScheduler}}}, Rocket.RefCountProxy}, actor::Rocket.CombineLatestUpdatesInnerActor{Marginal, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/subscribable.jl:185
   [54] on_subscribe!(observable::LazyObservable{Marginal}, actor::Rocket.CombineLatestUpdatesInnerActor{Marginal, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
   [55] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/marginal.jl:192 [inlined]
   [56] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
   [57] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:130 [inlined]
   [58] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
   [59] __combine_latest_updates_unrolled_fill_subscriptions!(sources::Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, wrapper::Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
   [60] on_subscribe!(observable::Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}, actor::Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:113
   [61] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
   [62] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
   [63] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:154 [inlined]
   [64] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
   [65] __combine_latest_unrolled_fill_subscriptions!(sources::Tuple{SingleObservable{Nothing, AsapScheduler}, Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}}, wrapper::Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
   [66] on_subscribe!(observable::Rocket.CombineLatestObservable{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Tuple{SingleObservable{Nothing, AsapScheduler}, Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}}, PushNew}, actor::Rocket.MapActor{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:137
   [67] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
   [68] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
   [69] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
   [70] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
   [71] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
   [72] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
   [73] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
   [74] subscribe!(observable::ProxyObservable{AbstractMessage, Rocket.RefCountSource{AbstractMessage, ConnectableObservable{AbstractMessage, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ProxyObservable{AbstractMessage, Rocket.CombineLatestObservable{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, Tuple{SingleObservable{Nothing, AsapScheduler}, Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}}, PushNew}, Rocket.MapProxy{Tuple{Nothing, Tuple{ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable, ReactiveMP.MarginalObservable}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{Halfspace, Val{:out}, Marginalisation, Nothing, Val{(:a, :σ2, :γ)}, Nothing, Nothing, Nothing, Nothing}}}}}}, Rocket.RefCountProxy}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
   [75] on_subscribe!(observable::LazyObservable{AbstractMessage}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
   [76] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
   [77] on_subscribe!(observable::Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}, actor::Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:147
   [78] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subject.jl:59 [inlined]
   [79] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
   [80] on_subscribe!(refcount_source::Rocket.RefCountSource{Message, ConnectableObservable{Message, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}}}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesActorWrapper{Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, PushNew, Rocket.UInt8UpdatesStatus, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72
   [81] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
   [82] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
   [83] subscribe!(observable::ProxyObservable{Message, Rocket.RefCountSource{Message, ConnectableObservable{Message, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}}}, Rocket.RefCountProxy}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesActorWrapper{Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, PushNew, Rocket.UInt8UpdatesStatus, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
   [84] on_subscribe!(observable::LazyObservable{Message}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesActorWrapper{Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, PushNew, Rocket.UInt8UpdatesStatus, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
   [85] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
   [86] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
   [87] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:130 [inlined]
   [88] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
   [89] __combine_latest_updates_unrolled_fill_subscriptions!(sources::Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, wrapper::Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesActorWrapper{Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, PushNew, Rocket.UInt8UpdatesStatus, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
   [90] on_subscribe!(observable::Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, actor::Rocket.CombineLatestUpdatesInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesActorWrapper{Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, PushNew, Rocket.UInt8UpdatesStatus, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:113
   [91] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
--- the last 6 lines are repeated 1 more time ---
   [98] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
   [99] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
  [100] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [101] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
  [102] subscribe!(observable::ProxyObservable{Marginal, Rocket.RefCountSource{Marginal, ConnectableObservable{Marginal, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, Rocket.CombineLatestUpdatesObservable{Marginal, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, PushNew, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}}}, Rocket.RefCountProxy}, actor::Rocket.CombineLatestUpdatesInnerActor{Marginal, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MarginalObservable}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
  [103] on_subscribe!(observable::LazyObservable{Marginal}, actor::Rocket.CombineLatestUpdatesInnerActor{Marginal, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MarginalObservable}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
  [104] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/marginal.jl:192 [inlined]
  [105] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
  [106] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:130 [inlined]
  [107] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
  [108] __combine_latest_updates_unrolled_fill_subscriptions!
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
  [109] on_subscribe!(observable::Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}, actor::Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:113
  [110] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [111] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
  [112] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:154 [inlined]
  [113] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
  [114] __combine_latest_unrolled_fill_subscriptions!(sources::Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}}, wrapper::Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
  [115] on_subscribe!(observable::Rocket.CombineLatestObservable{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}}, PushNew}, actor::Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:137
  [116] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [117] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
  [118] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [119] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
  [120] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
  [121] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [122] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
  [123] subscribe!(observable::ProxyObservable{AbstractMessage, Rocket.RefCountSource{AbstractMessage, ConnectableObservable{AbstractMessage, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ProxyObservable{AbstractMessage, Rocket.CombineLatestObservable{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}}, PushNew}, Rocket.MapProxy{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}}}}, Rocket.RefCountProxy}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
  [124] on_subscribe!(observable::LazyObservable{AbstractMessage}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
  [125] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
  [126] on_subscribe!(observable::Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}, actor::Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:147
  [127] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subject.jl:59 [inlined]
  [128] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
  [129] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
  [130] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [131] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
  [132] subscribe!(observable::ProxyObservable{Message, Rocket.RefCountSource{Message, ConnectableObservable{Message, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}}}, Rocket.RefCountProxy}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:in}, Marginalisation, Val{(:out, :A)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
  [133] on_subscribe!(observable::LazyObservable{Message}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:in}, Marginalisation, Val{(:out, :A)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
  [134] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
  [135] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
  [136] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:130 [inlined]
  [137] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
  [138] __combine_latest_updates_unrolled_fill_subscriptions!(sources::Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, wrapper::Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:in}, Marginalisation, Val{(:out, :A)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
--- the last 30 lines are repeated 3 more times ---
  [229] on_subscribe!(observable::Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, actor::Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:out}, Marginalisation, Val{(:A, :in)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:113
  [230] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [231] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
  [232] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:154 [inlined]
  [233] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
  [234] __combine_latest_unrolled_fill_subscriptions!(sources::Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, wrapper::Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:out}, Marginalisation, Val{(:A, :in)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
  [235] on_subscribe!(observable::Rocket.CombineLatestObservable{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, PushNew}, actor::Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:out}, Marginalisation, Val{(:A, :in)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:137
  [236] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [237] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
  [238] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [239] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
  [240] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
  [241] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [242] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
  [243] subscribe!(observable::ProxyObservable{AbstractMessage, Rocket.RefCountSource{AbstractMessage, ConnectableObservable{AbstractMessage, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ProxyObservable{AbstractMessage, Rocket.CombineLatestObservable{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, PushNew}, Rocket.MapProxy{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:out}, Marginalisation, Val{(:A, :in)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}}}}, Rocket.RefCountProxy}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
  [244] on_subscribe!(observable::LazyObservable{AbstractMessage}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
  [245] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
  [246] on_subscribe!(observable::Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}, actor::Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:147
  [247] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subject.jl:59 [inlined]
  [248] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
  [249] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
  [250] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
  [251] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
  [252] subscribe!(observable::ProxyObservable{Message, Rocket.RefCountSource{Message, ConnectableObservable{Message, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}}}, Rocket.RefCountProxy}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
  [253] on_subscribe!(observable::LazyObservable{Message}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
  [254] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
--- the last 150 lines are repeated 48 more times ---
 [7455] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
 [7456] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:130 [inlined]
 [7457] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7458] __combine_latest_updates_unrolled_fill_subscriptions!(sources::Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, wrapper::Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Rocket.MapActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestUpdatesInnerActor{ReactiveMP.ManyOf, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesActorWrapper{Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, PushNew, Rocket.UInt8UpdatesStatus, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}}, ReactiveMP.var"#156#157"}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
 [7459] on_subscribe!(observable::Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, actor::Rocket.MapActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestUpdatesInnerActor{ReactiveMP.ManyOf, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesActorWrapper{Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, PushNew, Rocket.UInt8UpdatesStatus, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}}, ReactiveMP.var"#156#157"})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:113
 [7460] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7461] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7462] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7463] on_subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/nodes/interfaces.jl:125 [inlined]
 [7464] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subscribable.jl:188 [inlined]
 [7465] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
 [7466] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:130 [inlined]
 [7467] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7468] __combine_latest_updates_unrolled_fill_subscriptions!(sources::Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, wrapper::Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesActorWrapper{Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, PushNew, Rocket.UInt8UpdatesStatus, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
 [7469] on_subscribe!(observable::Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, actor::Rocket.CombineLatestUpdatesInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestUpdatesActorWrapper{Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, PushNew, Rocket.UInt8UpdatesStatus, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:113
 [7470] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
--- the last 6 lines are repeated 1 more time ---
 [7477] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
 [7478] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
 [7479] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7480] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7481] subscribe!(observable::ProxyObservable{Marginal, Rocket.RefCountSource{Marginal, ConnectableObservable{Marginal, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, Rocket.CombineLatestUpdatesObservable{Marginal, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, PushNew, ReactiveMP.MarginalMapping{DeltaFn{typeof(h)}, Val{:ins}, Val{(:out, :ins)}, Nothing, DeltaMeta{Linearization, Nothing}, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}}, typeof(ReactiveMP.reset_vstatus)}}}, Rocket.RefCountProxy}, actor::Rocket.CombineLatestUpdatesInnerActor{Marginal, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MarginalObservable}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
 [7482] on_subscribe!(observable::LazyObservable{Marginal}, actor::Rocket.CombineLatestUpdatesInnerActor{Marginal, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MarginalObservable}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
 [7483] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/marginal.jl:192 [inlined]
 [7484] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
 [7485] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:130 [inlined]
 [7486] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7487] __combine_latest_updates_unrolled_fill_subscriptions!
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7488] on_subscribe!(observable::Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}, actor::Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MarginalObservable}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:113
 [7489] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7490] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
 [7491] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:154 [inlined]
 [7492] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7493] __combine_latest_unrolled_fill_subscriptions!(sources::Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}}, wrapper::Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
 [7494] on_subscribe!(observable::Rocket.CombineLatestObservable{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}}, PushNew}, actor::Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:137
 [7495] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7496] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7497] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7498] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
 [7499] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
 [7500] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7501] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7502] subscribe!(observable::ProxyObservable{AbstractMessage, Rocket.RefCountSource{AbstractMessage, ConnectableObservable{AbstractMessage, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ProxyObservable{AbstractMessage, Rocket.CombineLatestObservable{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MarginalObservable}, Tuple{ReactiveMP.MarginalObservable}, PushNew, typeof(identity), Nothing}}, PushNew}, Rocket.MapProxy{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}}}}, Rocket.RefCountProxy}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
 [7503] on_subscribe!(observable::LazyObservable{AbstractMessage}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
 [7504] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
 [7505] on_subscribe!(observable::Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}, actor::Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:147
 [7506] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subject.jl:59 [inlined]
 [7507] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
 [7508] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
 [7509] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7510] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7511] subscribe!(observable::ProxyObservable{Message, Rocket.RefCountSource{Message, ConnectableObservable{Message, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}}}, Rocket.RefCountProxy}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:in}, Marginalisation, Val{(:out, :A)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
 [7512] on_subscribe!(observable::LazyObservable{Message}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:in}, Marginalisation, Val{(:out, :A)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
 [7513] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
 [7514] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
 [7515] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:130 [inlined]
 [7516] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7517] __combine_latest_updates_unrolled_fill_subscriptions!(sources::Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, wrapper::Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{AbstractMessage}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:in}, Marginalisation, Val{(:out, :A)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
--- the last 30 lines are repeated 3 more times ---
 [7608] on_subscribe!(observable::Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, actor::Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:out}, Marginalisation, Val{(:A, :in)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:113
 [7609] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7610] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
 [7611] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:154 [inlined]
 [7612] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7613] __combine_latest_unrolled_fill_subscriptions!(sources::Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, wrapper::Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:out}, Marginalisation, Val{(:A, :in)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
 [7614] on_subscribe!(observable::Rocket.CombineLatestObservable{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, PushNew}, actor::Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:out}, Marginalisation, Val{(:A, :in)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:137
 [7615] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7616] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7617] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7618] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
 [7619] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
 [7620] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7621] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7622] subscribe!(observable::ProxyObservable{AbstractMessage, Rocket.RefCountSource{AbstractMessage, ConnectableObservable{AbstractMessage, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ProxyObservable{AbstractMessage, Rocket.CombineLatestObservable{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, PushNew}, Rocket.MapProxy{Tuple{Tuple{ReactiveMP.MessageObservable{AbstractMessage}, ReactiveMP.MessageObservable{Message}}, Nothing}, ReactiveMP.var"#182#185"{ReactiveMP.MessageMapping{typeof(*), Val{:out}, Marginalisation, Val{(:A, :in)}, Nothing, MatrixCorrectionTools.ReplaceZeroDiagonalEntries{TinyHugeNumbers.TinyNumber}, Nothing, Nothing, Nothing}}}}}}, Rocket.RefCountProxy}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
 [7623] on_subscribe!(observable::LazyObservable{AbstractMessage}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
 [7624] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
 [7625] on_subscribe!(observable::Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}, actor::Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:147
 [7626] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subject.jl:59 [inlined]
 [7627] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
 [7628] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
 [7629] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7630] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7631] subscribe!(observable::ProxyObservable{Message, Rocket.RefCountSource{Message, ConnectableObservable{Message, Rocket.RecentSubjectInstance{Message, Subject{Message, AsapScheduler, AsapScheduler}}, Rocket.CollectLatestObservable{AbstractMessage, ReactiveMP.SkipIndexIterator{ReactiveMP.MessageObservable{AbstractMessage}, Vector{ReactiveMP.MessageObservable{AbstractMessage}}}, Message, ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}, typeof(ReactiveMP.reset_vstatus)}}}, Rocket.RefCountProxy}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
 [7632] on_subscribe!(observable::LazyObservable{Message}, actor::Rocket.CombineLatestUpdatesInnerActor{Message, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MarginalObservable}}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#849#851"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Tuple{Val{:in}, Int64}, Marginalisation, Val{(:in,)}, Val{(:ins,)}, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
 [7633] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
--- the last 150 lines are repeated 1 more time ---
 [7784] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
 [7785] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:130 [inlined]
 [7786] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7787] __combine_latest_updates_unrolled_fill_subscriptions!(sources::Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, wrapper::Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Rocket.MapActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestUpdatesInnerActor{ReactiveMP.ManyOf, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#846#847"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Val{:out}, Marginalisation, Val{(:ins,)}, Nothing, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}}, ReactiveMP.var"#156#157"}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
 [7788] on_subscribe!(observable::Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}, actor::Rocket.MapActor{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Rocket.CombineLatestUpdatesInnerActor{ReactiveMP.ManyOf, Rocket.CombineLatestUpdatesActorWrapper{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#846#847"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Val{:out}, Marginalisation, Val{(:ins,)}, Nothing, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}}, PushNew, Rocket.UInt8UpdatesStatus, typeof(identity), Nothing}}, ReactiveMP.var"#156#157"})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:113
 [7789] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7790] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7791] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7792] on_subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/nodes/interfaces.jl:125 [inlined]
 [7793] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subscribable.jl:188 [inlined]
 [7794] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
 [7795] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:130 [inlined]
 [7796] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7797] __combine_latest_updates_unrolled_fill_subscriptions!
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7798] on_subscribe!(observable::Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, actor::Rocket.CombineLatestInnerActor{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#846#847"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Val{:out}, Marginalisation, Val{(:ins,)}, Nothing, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined_updates.jl:113
 [7799] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7800] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:55 [inlined]
 [7801] macro expansion
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:154 [inlined]
 [7802] macro expansion
      @ ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127 [inlined]
 [7803] __combine_latest_unrolled_fill_subscriptions!(sources::Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, wrapper::Rocket.CombineLatestActorWrapper{Rocket.MStorage2{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Rocket.MapActor{Tuple{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#846#847"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Val{:out}, Marginalisation, Val{(:ins,)}, Nothing, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}, PushNew, Rocket.UInt8UpdatesStatus})
      @ Rocket ~/.julia/packages/Unrolled/KtWta/src/Unrolled.jl:127
 [7804] on_subscribe!(observable::Rocket.CombineLatestObservable{Tuple{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, PushNew}, actor::Rocket.MapActor{Tuple{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ReactiveMP.var"#846#847"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Val{:out}, Marginalisation, Val{(:ins,)}, Nothing, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/combined.jl:137
 [7805] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7806] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7807] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7808] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
 [7809] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
 [7810] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7811] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7812] subscribe!(observable::ProxyObservable{AbstractMessage, Rocket.RefCountSource{AbstractMessage, ConnectableObservable{AbstractMessage, Rocket.RecentSubjectInstance{AbstractMessage, Subject{AbstractMessage, AsapScheduler, AsapScheduler}}, ProxyObservable{AbstractMessage, Rocket.CombineLatestObservable{Tuple{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, Tuple{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, PushNew, typeof(identity), Nothing}, SingleObservable{Nothing, AsapScheduler}}, PushNew}, Rocket.MapProxy{Tuple{Tuple{ReactiveMP.ManyOfObservable{Rocket.CombineLatestUpdatesObservable{Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, Tuple{ReactiveMP.MessageObservable{Message}, ReactiveMP.MessageObservable{Message}}, PushNew, typeof(identity), Nothing}}}, Nothing}, ReactiveMP.var"#846#847"{ReactiveMP.MessageMapping{DeltaFn{typeof(h)}, Val{:out}, Marginalisation, Val{(:ins,)}, Nothing, DeltaMeta{Linearization, Nothing}, Nothing, DeltaFnNode{typeof(h), typeof(h), 2, Tuple{}, ReactiveMP.FactorNodeLocalClusters{Tuple{ReactiveMP.FactorNodeLocalMarginal, ReactiveMP.FactorNodeLocalMarginal}, Nothing}}, Nothing}}}}}}, Rocket.RefCountProxy}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#119#120"{ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
 [7813] on_subscribe!(observable::LazyObservable{AbstractMessage}, actor::Rocket.CollectLatestObservableInnerActor{AbstractMessage, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{AbstractMessage, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, Vector{AbstractMessage}, BitVector, Vector{Teardown}, ReactiveMP.var"#119#120"{ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}}, typeof(ReactiveMP.reset_vstatus)}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
 [7814] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/message.jl:255 [inlined]
 [7815] on_subscribe!(observable::Rocket.CollectLatestObservable{AbstractMessage, Vector{ReactiveMP.MessageObservable{AbstractMessage}}, Marginal, ReactiveMP.var"#119#120"{ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}}, typeof(ReactiveMP.reset_vstatus)}, actor::Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:147
 [7816] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subject.jl:59 [inlined]
 [7817] connect
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/connectable.jl:73 [inlined]
 [7818] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/operators/ref_count.jl:72 [inlined]
 [7819] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7820] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7821] subscribe!(observable::ProxyObservable{Marginal, Rocket.RefCountSource{Marginal, ConnectableObservable{Marginal, Rocket.RecentSubjectInstance{Marginal, Subject{Marginal, AsapScheduler, AsapScheduler}}, Rocket.CollectLatestObservable{AbstractMessage, Vector{ReactiveMP.MessageObservable{AbstractMessage}}, Marginal, ReactiveMP.var"#119#120"{ReactiveMP.var"#15#17"{GenericProd, UnspecifiedFormConstraint}}, typeof(ReactiveMP.reset_vstatus)}}}, Rocket.RefCountProxy}, actor::Rocket.FilterActor{Marginal, Rocket.CollectLatestObservableInnerActor{Marginal, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{Marginal, Rocket.TapActor{Vector{Marginal}, BufferActor{Marginal, Vector{Marginal}}, RxInfer.var"#129#130"{RxInfer.MarginalHasBeenUpdated}}, Vector{Marginal}, BitVector, Vector{Teardown}, typeof(copy), Nothing}}, ReactiveMP.var"#31#32"})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
 [7822] on_subscribe!(observable::LazyObservable{Marginal}, actor::Rocket.FilterActor{Marginal, Rocket.CollectLatestObservableInnerActor{Marginal, CartesianIndex{1}, Rocket.CollectLatestObservableWrapper{Marginal, Rocket.TapActor{Vector{Marginal}, BufferActor{Marginal, Vector{Marginal}}, RxInfer.var"#129#130"{RxInfer.MarginalHasBeenUpdated}}, Vector{Marginal}, BitVector, Vector{Teardown}, typeof(copy), Nothing}}, ReactiveMP.var"#31#32"})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/lazy.jl:51
 [7823] subscribe!
      @ ~/.julia/packages/ReactiveMP/DrjJB/src/marginal.jl:192 [inlined]
 [7824] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7825] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108 [inlined]
 [7826] on_subscribe!(observable::Rocket.CollectLatestObservable{Marginal, Vector{ProxyObservable{Marginal, ReactiveMP.MarginalObservable, Rocket.FilterProxy{ReactiveMP.var"#31#32"}}}, Vector{Marginal}, typeof(copy), Nothing}, actor::Rocket.TapActor{Vector{Marginal}, BufferActor{Marginal, Vector{Marginal}}, RxInfer.var"#129#130"{RxInfer.MarginalHasBeenUpdated}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/observable/collected.jl:147
 [7827] subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/subscribable.jl:188 [inlined]
 [7828] on_subscribe!
      @ ~/.julia/packages/Rocket/LrFUI/src/observable/proxy.jl:103 [inlined]
 [7829] subscribe!(observable::ProxyObservable{Vector{Marginal}, Rocket.CollectLatestObservable{Marginal, Vector{ProxyObservable{Marginal, ReactiveMP.MarginalObservable, Rocket.FilterProxy{ReactiveMP.var"#31#32"}}}, Vector{Marginal}, typeof(copy), Nothing}, Rocket.TapProxy{RxInfer.var"#129#130"{RxInfer.MarginalHasBeenUpdated}}}, actor::BufferActor{Marginal, Vector{Marginal}})
      @ Rocket ~/.julia/packages/Rocket/LrFUI/src/utils.jl:108
 [7830] (::RxInfer.var"#149#170"{Dict{Symbol, RxInfer.MarginalHasBeenUpdated}, ProbabilisticModel{GraphPPL.Model{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleGraph{Int64}, GraphPPL.NodeLabel, GraphPPL.NodeData, GraphPPL.EdgeLabel, GraphPPL.Context, MetaGraphsNext.var"#4#8", Float64}, GraphPPL.PluginsCollection{Tuple{GraphPPL.VariationalConstraintsPlugin{GraphPPL.Constraints{Vector{GraphPPL.FactorizationConstraint}, Vector{GraphPPL.MarginalFormConstraint}, Vector{GraphPPL.MessageFormConstraint}, Dict{Function, GraphPPL.GeneralSubModelConstraints}, Dict{GraphPPL.FactorID, GraphPPL.SpecificSubModelConstraints}}}, GraphPPL.MetaPlugin{GraphPPL.MetaSpecification}, RxInfer.InitializationPlugin{RxInfer.InitSpecification}, RxInfer.ReactiveMPInferencePlugin{RxInfer.ReactiveMPInferenceOptions{Nothing, Nothing, Nothing}}}}, RxInfer.ReactiveMPGraphPPLBackend}}, Nothing})(::Pair{Symbol, BufferActor{Marginal}})
      @ RxInfer ./essentials.jl:0
 [7831] iterate
      @ ./generator.jl:47 [inlined]
 [7832] grow_to!(dest::Dict{Any, Any}, itr::Base.Generator{Dict{Symbol, BufferActor{Marginal}}, RxInfer.var"#149#170"{Dict{Symbol, RxInfer.MarginalHasBeenUpdated}, ProbabilisticModel{GraphPPL.Model{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleGraph{Int64}, GraphPPL.NodeLabel, GraphPPL.NodeData, GraphPPL.EdgeLabel, GraphPPL.Context, MetaGraphsNext.var"#4#8", Float64}, GraphPPL.PluginsCollection{Tuple{GraphPPL.VariationalConstraintsPlugin{GraphPPL.Constraints{Vector{GraphPPL.FactorizationConstraint}, Vector{GraphPPL.MarginalFormConstraint}, Vector{GraphPPL.MessageFormConstraint}, Dict{Function, GraphPPL.GeneralSubModelConstraints}, Dict{GraphPPL.FactorID, GraphPPL.SpecificSubModelConstraints}}}, GraphPPL.MetaPlugin{GraphPPL.MetaSpecification}, RxInfer.InitializationPlugin{RxInfer.InitSpecification}, RxInfer.ReactiveMPInferencePlugin{RxInfer.ReactiveMPInferenceOptions{Nothing, Nothing, Nothing}}}}, RxInfer.ReactiveMPGraphPPLBackend}}, Nothing}})
      @ Base ./dict.jl:120
 [7833] dict_with_eltype
      @ ./abstractdict.jl:590 [inlined]
 [7834] Dict(kv::Base.Generator{Dict{Symbol, BufferActor{Marginal}}, RxInfer.var"#149#170"{Dict{Symbol, RxInfer.MarginalHasBeenUpdated}, ProbabilisticModel{GraphPPL.Model{MetaGraphsNext.MetaGraph{Int64, Graphs.SimpleGraphs.SimpleGraph{Int64}, GraphPPL.NodeLabel, GraphPPL.NodeData, GraphPPL.EdgeLabel, GraphPPL.Context, MetaGraphsNext.var"#4#8", Float64}, GraphPPL.PluginsCollection{Tuple{GraphPPL.VariationalConstraintsPlugin{GraphPPL.Constraints{Vector{GraphPPL.FactorizationConstraint}, Vector{GraphPPL.MarginalFormConstraint}, Vector{GraphPPL.MessageFormConstraint}, Dict{Function, GraphPPL.GeneralSubModelConstraints}, Dict{GraphPPL.FactorID, GraphPPL.SpecificSubModelConstraints}}}, GraphPPL.MetaPlugin{GraphPPL.MetaSpecification}, RxInfer.InitializationPlugin{RxInfer.InitSpecification}, RxInfer.ReactiveMPInferencePlugin{RxInfer.ReactiveMPInferenceOptions{Nothing, Nothing, Nothing}}}}, RxInfer.ReactiveMPGraphPPLBackend}}, Nothing}})
      @ Base ./dict.jl:109
 [7835] batch_inference(; model::GraphPPL.ModelGenerator{typeof(switching_model), @Kwargs{nr_steps::Int64, γ::Int64, ΔT::Int64}, GraphPPL.PluginsCollection{Tuple{}}, RxInfer.ReactiveMPGraphPPLBackend}, data::@NamedTuple{goals::Matrix{Vector{Int64}}}, initialization::RxInfer.InitSpecification, constraints::GraphPPL.Constraints{Vector{GraphPPL.FactorizationConstraint}, Vector{GraphPPL.MarginalFormConstraint}, Vector{GraphPPL.MessageFormConstraint}, Dict{Function, GraphPPL.GeneralSubModelConstraints}, Dict{GraphPPL.FactorID, GraphPPL.SpecificSubModelConstraints}}, meta::GraphPPL.MetaSpecification, options::Nothing, returnvars::KeepLast, predictvars::Nothing, iterations::Int64, free_energy::Bool, free_energy_diagnostics::Tuple{RxInfer.ObjectiveDiagnosticCheckNaNs, RxInfer.ObjectiveDiagnosticCheckInfs}, showprogress::Bool, callbacks::Nothing, addons::Nothing, postprocess::DefaultPostprocess, warn::Bool, catch_exception::Bool)
      @ RxInfer ~/.julia/packages/RxInfer/iG4wU/src/inference/batch.jl:257
 [7836] batch_inference
      @ ~/.julia/packages/RxInfer/iG4wU/src/inference/batch.jl:94 [inlined]
 [7837] #infer#244
      @ ~/.julia/packages/RxInfer/iG4wU/src/inference/inference.jl:306 [inlined]
in expression starting at /Users/chenkai/MyCodes/RxInferEx/MultiAgentTrajectoryPlanning/switching_positions_v3.jl:99

Do you have some suggestions to solve it?

bvdmitri commented 2 months ago

Yeah, this example had this line, but in the new version you should write:

using BayesBase, Distributions

ReactiveMP.prod(::GenericProd, left::Distribution, right::PointMass) = right

note that the default argument now is GenericProd

Flawless1202 commented 2 months ago

Yeah, this example had this line, but in the new version you should write:

using BayesBase, Distributions

ReactiveMP.prod(::GenericProd, left::Distribution, right::PointMass) = right

note that the default argument now is GenericProd

Thanks for your reply! I added this line to my code. Then no errors are raised. But the code runs for more than 10 minutes and seems to never stop. Do you have any suggestions?

bvdmitri commented 2 months ago

You can use

infer(..., showprogress = true)
Flawless1202 commented 2 months ago

You can use

infer(..., showprogress = true)

Thanks for your reply! But when I add showprogress = true, I could still not see any outputs in the terminal.

Flawless1202 commented 2 months ago

@bvdmitri Do you have any ideas?

bvdmitri commented 2 months ago

I'm not sure why this example slowed down so much, but reducing nr_steps makes it run, although it throws a different error related to using I from LinearAlgebra. This might be a bug. Additionally, I suggest changing the definition of h to:

function h(y1, y2)
    r1 = 15
    r2 = 15
    return norm(y1 - y2) - r1 - r2
end

Since Linearization uses ForwardDiff, it is very slow for functions that depend on global variables.

Flawless1202 commented 1 month ago

Hi @bvdmitri, I have tried to solve the problem again these days. I use the following code:

import BayesBase: prod
import ReactiveMP: apply_pipeline_stage
using LinearAlgebra, RxInfer, Plots, PGFPlotsX, Distributions

ReactiveMP.prod(::GenericProd, left::Distribution, right::PointMass) = right
ReactiveMP.prod(::GenericProd, left::PointMass, right::Distribution) = left

function BayesBase.prod(
    ::PreserveTypeProd{Distribution},
    left::MvNormalMeanCovariance{T1},
    right::MvNormalMeanCovariance{T2}
) where {T1<:LinearAlgebra.BlasFloat,T2<:LinearAlgebra.BlasFloat}
    xi_left, W_left = weightedmean_precision(left)
    xi_right, W_right = weightedmean_precision(right)
    return MvNormalWeightedMeanPrecision(xi_left + xi_right, W_left + W_right)
end

apply_pipeline_stage(stage::LoggerPipelineStage, factornode, tag::Val{T}, stream) where {T} = stream |> tap((v) -> println(stage, "[$(functionalform(factornode))][$(T)]: $(as_message(v))"))
apply_pipeline_stage(stage::LoggerPipelineStage, factornode, tag::Tuple{Val{T},Int}, stream) where {T} = stream |> tap((v) -> println(stage, "[$(functionalform(factornode))][$(T):$(tag[2])]: $(as_message(v))"))

# node specification
struct Halfspace end
@node Halfspace Stochastic [out, a, σ², γ]

# rule specification
@rule Halfspace(:out, Marginalisation) (q_a::PointMass, q_σ²::PointMass, q_γ::PointMass) = begin
    return NormalMeanVariance(mean(q_a) + mean(q_γ) * mean(q_σ²), mean(q_σ²))
end

@rule Halfspace(:σ², Marginalisation) (q_out::UnivariateNormalDistributionsFamily, q_a::PointMass, q_γ::PointMass) = begin
    return PointMass(1 / mean(q_γ) * sqrt(abs2(mean(q_out) - mean(q_a)) + var(q_out)))
end

function h(y1, y0, r1, r2)
    return norm(y1 - y0) - r1 - r2
end

@model function single_agent_model(goals, nr_steps, γ, ΔT)
    # transition model
    A = Matrix([
        1 ΔT 0 0;
        0 1 0 0;
        0 0 1 ΔT;
        0 0 0 1
    ])
    B = Matrix([
        0 0;
        ΔT 0;
        0 0;
        0 ΔT
    ])
    C = Matrix([
        1 0 0 0;
        0 0 1 0
    ])

    x[1] ~ MvNormalMeanCovariance(zeros(4), 1e2I) where {pipeline=LoggerPipelineStage("x[1]")}

    local u, y

    for t in 1:nr_steps
        u[t] ~ MvNormalMeanCovariance(zeros(2), 1e-2I) where {pipeline=LoggerPipelineStage("u[$t]")}
        x[t+1] ~ (A * x[t] + B * u[t]) where {pipeline=LoggerPipelineStage("x[$(t+1)]")}
        y[t] ~ (C * x[t+1]) where {pipeline=LoggerPipelineStage("y[$t]")}
        σ²[t] ~ GammaShapeRate(3 / 2, γ^2 / 2) where {pipeline=LoggerPipelineStage("σ²[$t]")}
        # d[t] := h(y[t], MvNormalMeanCovariance([0.0, 25.0], 1e-2I), 15, 15) where {pipeline=LoggerPipelineStage("d[$t]")}
        d[t] := h(y[t], [5.0, 25.0], 15.0, 5.0) where {pipeline=LoggerPipelineStage("d[$t](h)")}
        d[t] ~ Halfspace(0, σ²[t], γ) where {pipeline=LoggerPipelineStage("d[$t](Halfspace)")}
    end

    goals[1] ~ MvNormalMeanCovariance(x[1], 1e-5I)
    goals[2] ~ MvNormalMeanCovariance(x[nr_steps+1], 1e-5I)

end

nr_iterations = 20
nr_steps = 20

constraints = @constraints begin
    q(d, σ²) = q(d)q(σ²)
end;

metas = @meta begin
    h() -> Linearization()
end;

initm = @initialization begin
    q(σ²) = repeat([PointMass(1)], nr_steps)
    q(u) = repeat([PointMass(0)], nr_steps)
    μ(x) = MvNormalMeanCovariance(randn(4), 100I)
end

goals = [
    [0, 0, 0, 0],
    [0, 0, 50, 0],
]

# A callback that will be called every time before a variational iteration starts
function before_iteration_callback(model, iteration)
    println("Start iteration ", iteration)
end

# A callback that will be called every time after a variational iteration finishes
function after_iteration_callback(model, iteration)
    println("Iteration ", iteration, " has been finished")
end

# A callback that will be called every time a posterior is updated
function on_marginal_update_callback(model, variable_name, posterior)
    println("Latent variable ", variable_name, " has been updated. Posterior is ", posterior)
end

function before_data_update_callback(model::ProbabilisticModel, data)
    println("Start updating data: ", data)
end

function after_data_update_callback(model::ProbabilisticModel, data)
    println("Finish updating data: ", data)
end

results = infer(
    model=single_agent_model(nr_steps=nr_steps, γ=200, ΔT=1),
    data=(goals=goals,),
    constraints=constraints,
    meta=metas,
    iterations=nr_iterations,
    returnvars=KeepLast(),
    initialization=initm,
    showprogress=true,
    # addons=(AddonMemory(),),
    callbacks=(
        on_marginal_update=on_marginal_update_callback,
        before_iteration=before_iteration_callback,
        after_iteration=after_iteration_callback,
        before_data_update=before_data_update_callback,
        after_data_update=after_data_update_callback
    )
)

when nr_steps is less than 10, the code runs well. But when it becomes larger, e.g. 20, the code runs forever without stopping. I try to find the reason from the output (terminated while running) as follows. output.zip

It seems that the message-passing process went into an endless cycle, which is not expected. I am not familiar with the source code of RxInfer and I really need your help! Is there any way to solve it?

bvdmitri commented 1 month ago

@bartvanerp do you have the capacity to look into this?

bartvanerp commented 1 month ago

Hi @Flawless1202, thanks a lot for the interest! We dove into the code and explored two main issues:

bvdmitri commented 1 month ago

@Flawless1202 Thanks for checking on us again, we identified a potential source of the problem. For now, there is a simple workaround for you: It should work just fine if you replace:

initm = @initialization begin
    q(σ²) = repeat([PointMass(1)], nr_steps)
    q(u) = repeat([PointMass(0)], nr_steps)
    μ(x) = MvNormalMeanCovariance(randn(4), 100I)
end

with

initm = @initialization begin
    q(σ²) = repeat([PointMass(1)], nr_steps)
    q(u) = repeat([PointMass(0)], nr_steps)
    μ(y) = MvNormalMeanCovariance(randn(2), 100I)
end

I'm working on a patch that will fix both cases.

Flawless1202 commented 1 month ago

@bartvanerp Thanks for your reply and I am really looking forward to your update about this issue. @bvdmitri Thanks a lot! I have tried this solution and it works for me! And I try the model definition in Active Inference Mountain Car as follows and there is no endless cycle:

@model function single_agent_model(A, B, C, mₓ, Vₓ, initial, nr_steps, γ)
    x_0 ~ MvNormalMeanCovariance(initial, 1e-5I) 
    x_t_min = x_0

    local u, y, x

    for t in 1:nr_steps
        u[t] ~ MvNormalMeanCovariance(zeros(2), 1e2I) 
        x[t] ~ (A * x_t_min + B * u[t]) 
        y[t] ~ (C * x[t])
        σ²[t] ~ GammaShapeRate(3 / 2, γ^2 / 2)
        d[t] := h(y[t], [5.0, 25.0], 15.0, 5.0)
        d[t] ~ Halfspace(0, σ²[t], γ) 
        x[t] ~ MvNormalMeanCovariance(mₓ[t], Vₓ[t])
        x_t_min = x[t]
    end
end

in which

mₓ = [zeros(4) for k = 1:nr_steps]
Vₓ = [huge * I(4) for k = 1:nr_steps]
mₓ[end] = goal
Vₓ[end] = tiny * I(4)
bvdmitri commented 1 month ago

Should be fixed in the next release