isSubPTS: Fix description
mapEntryMatch ↦ matchMapEntry
Drop Set.toList call
isSubPTS: rewrite to match spec more directly
Make code more fusible

I know a performance concern is unjustified here, but this is generally
interesting (I'm supposed to be proficient with fusion, since I use it
in my research, you know).

Converting code to more high-level code which does `map (, True)` feels
bad. It's nicer to know that you can write this code and rely on fusion.

Now I only use fusible functions, and the resulting Core suggests that
no intermediate data structure is built.

Moreover, `Set.map` was especially bad since it requires rebuilding the
`Set` from scratch to perform duplicate elimination. `fmap` on `Map` is
not as bad, it just performs a functional update to replace the values,
thus constructing a new map. It's not clear that would be fused away,
while it's clear for `toList`.