Cleaner construction of type ordering