@torfjelde raised in https://github.com/TuringLang/Turing.jl/issues/2485#issuecomment-2659271918 in certain cases, we might want to skip certain variables during inference time, e.g. these variables are for forecasting: ```julia @model function demo_used_for_prediction() x ~ Normal() # Let's sample some predictions! y_predict ~ Normal(x, 1) end chain = sample(demo(), sampler, num_samples) generated_quantities(demo_used_for_prediction(), chain) ``` I have previously suggested a [workflow](https://github.com/TuringLang/DynamicPPL.jl/pull/589#issuecomment-2097081321) of (a similar idea is re-suggested by @penelopeysm https://github.com/TuringLang/Turing.jl/issues/2485#issuecomment-2659331667) ```julia @model function demo() x ~ Normal() end chain = sample(demo(), sampler, num_samples) @model function demo_used_for_prediction() x ~ to_submodel(demo()) # Let's sample some predictions! y_predict ~ Normal(x, 1) end generated_quantities(demo_used_for_prediction(), chain) ``` The above works well for forecasting and generated quantities. Is there any extra reason why a functionality like https://github.com/TuringLang/DynamicPPL.jl/pull/589 or https://github.com/TuringLang/DynamicPPL.jl/issues/510 is needed?