“Query type ops” are type ops that are implemented using a canonical query. The Self type here contains the kernel of information needed to do the operation – TypeOp is actually implemented for ParamEnvAnd<Self>, since we always need to bring along a parameter environment as well. For query type-ops, we will first canonicalize the key and then invoke the query on the tcx, which produces the resulting query region constraints.

“Type ops” are used in NLL to perform some particular action and extract out the resulting region constraints (or an error if it cannot be completed).