I give you right, here. We can actually consider some P in return type position as type aliases, but for the argument position, it seems not to working anymore.
The type aliases are created from other callees than the actual callee accepting the some P type, so we actually have to deal with different type aliases.