Implementing a traits class to check for incomplete types