In the * Inference with Discrete Latent Variables* tutorial (Inference with Discrete Latent Variables — Pyro Tutorials 1.8.6 documentation), the explanation says “there is no way to linearly order x and y such that one’s plate nesting is less than the other”.

What does that mean exactly? I tried the code within the **invalid_model** and it didn’t throw an error, does it mean the error will only occur if we try to use **TraceEnum_ELBO**? Would the **invalid_model** be okay if we stick with **Trace_ELBO** (on that note, how bad is **Trace_ELBO** for discrete variables, is the difference only on computational efficiency)?

```
plate_1 = pyro.plate("plate_1", 10, dim=-1) # vectorized
plate_2 = pyro.plate("plate_2", 10, dim=-2) # vectorized
with plate_1:
x = pyro.sample("x", Bernoulli(0.5))
with plate_2:
y = pyro.sample("y", Bernoulli(0.5))
with plate_1, plate_2:
z = pyro.sample("z", Bernoulli((1. + x + y) / 4.))
```

I’m quite confused. Thank you very much for reading this! (And is there a tutorial that explains the difference between vectorized plate and sequential plate?)