This type declaration seems unsatisfactory.