i had an idea for a 'flippy' function that turned an arbitrarily nested structure into a flat dict comprising a deepwhere-looking output as domain and the flat values as range, and back
and maybe stops along the way (eg strings as values and domain length is one shorter)
and maybe the implementation actually stores nested structures in the 'exploded' form and just provides the 'imploded' nested form as a convenience
don't know if any of that would be useful
but the point is, if you had that, then 'deep where' is just a regular shallow & on the exploded form
and more generally - depth and shallow forms of verbs are unified. you instead have a 'toggle' verb that you can apply at will to determine whether an operation should be shallow or deep. or maybe an adverb
sort of like how k9's ? on dicts, exchanging domain and range, lets you deal with domain/range targeting via a data structure manipulation instead of a different kind of verb
so no more shallow @ and deep dot. indexing is always shallow and it's up to you to implode or explode as necessary
i guess the point/insight of k is that you don't need this level of generality - certain verbs tend to be used with certain ranks more than others (infinite (equality); leading (filter); entire data structure (flip))
here's a starting point for explode, a deep where that works on ktables, and a deep group thrown in just because. explode is powerful
maybe a simpler way to explode would be starting with !/++(values;,()) and then build the keys by prepending to the lists. then swap the dict at the end
@ngn if dict[] gave values instead of 0N it would eliminate the val helper in the above