backport semanticHash from master to 0.10.x
use hops when including pick/drop types in hash