/* Nested union templates */ use "basic_models.g"; union bar where { Regular } { T* x; }; union foo where { Regular } { bar* b; }; fun main() -> int@ { let f = @foo{ b = new bar { x = new int(1) } }; switch (f) { case b: switch (*b) { case x: return 1 - *x; } } }