enhance type inference for types with one constructor