We can round out the assumptions
If we are going to assume prefix ++, we should probably assume postfix ++ also
It also makes sense to assume that
p->mem means the same as (*p).mem
The library calls any type about which we can assume these things an input iterator