Type checking generic for