Properly support generic type definitions