Pattern matching using [first | rest] in with clause seems to fail?

yeah I grokked the basics of with statements and liked them so much I wanted to use them extensively. Maybe too extensively! Now I grok them properly. Thank you. Back to good ol’ nested case in this (ahem) case.