type function conflict