Generic types matcher

Set support