Close but it is also incorrect.  I left a comment in that comment.  I think the general idea of adding `demand::subtype` and `demand::suptype` is fine, that's more-or-less what I was going to suggest.