Switch to using below instead of traverse

Below gives the correct semantics for checking that all items in a
traversable functor match the supplied prism, as opposed to the sloppy
"empty list" / partial behavior that we had before. Of course, in
traversing in this fashion we have no error message if we take the wrong
path (we didn't have it before either).