here is one way to look at it: you have a pattern of patterns, so you need a function join :: Pattern (Pattern a) -> Pattern a, see slides of my talk at https://www.imn.htwk-leipzig.de/LFUNK2026/
This function is seemingly avoided (but hidden in the implementation) if you use inhabit on a pattern of names-for-patterns, https://uzu.lurk.org/t/motivating-examples-for-squeeze-join/6213/2