initial impl of #1159 better ~ operation for type parameter types