Inferred type is less polymorphic than expected?