derivative type management for correct method overload selection