# \[Ranted\]Allow to compare generic types without providing a signature specialization

**URL:** <https://forums.swift.org/t/ranted-allow-to-compare-generic-types-without-providing-a-signature-specialization/39654>\
**Category:** Pitches\
**Created:** [August 24, 2020, 7:22am UTC](https://forums.swift.org/t/ranted-allow-to-compare-generic-types-without-providing-a-signature-specialization/39654 "2020-08-24T07:22:18Z")\
**Posts on this page:** 7\
**Page:** 2

<div class="post-metadata">

**Author:** ![Avi](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/avi/32/2962_2.png) [@Avi](https://forums.swift.org/u/Avi)\
**Post date:** [August 27, 2020, 6:22am UTC](https://forums.swift.org/t/ranted-allow-to-compare-generic-types-without-providing-a-signature-specialization/39654/22 "2020-08-27T06:22:57Z")

</div>

Please desist from posting. Your negative tone and thinly-veiled insults are unwelcome and unhelpful.

---

<div class="post-metadata">

**Author:** ![total\_swiftification](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/total_swiftification/32/11900_2.png) [@total\_swiftification](https://forums.swift.org/u/total_swiftification)\
**Post date:** [August 27, 2020, 6:27am UTC](https://forums.swift.org/t/ranted-allow-to-compare-generic-types-without-providing-a-signature-specialization/39654/23 "2020-08-27T06:27:05Z")

</div>

The beginning of the thread was fine. Then for some reason, people started publicly accusing me of things.

---

<div class="post-metadata">

**Author:** ![Avi](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/avi/32/2962_2.png) [@Avi](https://forums.swift.org/u/Avi)\
**Post date:** [August 27, 2020, 6:38am UTC](https://forums.swift.org/t/ranted-allow-to-compare-generic-types-without-providing-a-signature-specialization/39654/24 "2020-08-27T06:38:53Z")

</div>

Perhaps English is not your first language, but your tone became very defensive early on. Most specifically about tagging the core team.

Words like this don't help your case:

> [@total\_swiftification](#):
>
> Pretty. So the language which is not completely finished with its internals and foundational semantic is already given away to all the people out there who should "just" spend their time digging around the huge c++ codebase for no reward other than avowal, doing what essentially is the duty of the project initiator(apple/core team)?

The Swift development process is fairly well-understood at this point. There are Apple employees working on changes Apple wants (i.e. property wrappers and function builders). There's the core team, whose members work on what interests them (or what they get paid to work on), and there's 3rd-party contributors, who are like the core team, without the authority to merge into master.

This is besides the core team's role as moderators for 3rd-party contributions. And the key is that the core team is not required to work on anything the general public wants. The general public is both free and encouraged to work on what interests them the most, and to pitch and propose changes to be merged.

The negative feedback you've received in this area has been to this point, and you've either misunderstood it, or have chosen to ignore it.

---

<div class="post-metadata">

**Author:** ![scanon](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/scanon/32/2445_2.png) [@scanon](https://forums.swift.org/u/scanon)\
**Post date:** [September 1, 2020, 11:37pm UTC](https://forums.swift.org/t/ranted-allow-to-compare-generic-types-without-providing-a-signature-specialization/39654/25 "2020-09-01T23:37:42Z")

</div>

> [@total\_swiftification](#):
>
> That comparison is irrelevant, since cpp wasn't backed by a trillion-dollar company and a pack of people with math phds.

I hesitate to wade into this, but a tangential note: C++ was developed by the dominant tech company of its day, which had a literal monopoly on nearly all telecommunications in the US, at a lab that employed about as many math PhDs as Apple ever has (e.g. my neighbor Doug, who is responsible for `<<` as an iostream operator as well as UNIX pipes, is a math PhD, as were most of the people he managed there).

---

<div class="post-metadata">

**Author:** ![Nobody1707](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/nobody1707/32/2169_2.png) [@Nobody1707](https://forums.swift.org/u/Nobody1707)\
**Post date:** [September 2, 2020, 2:48pm UTC](https://forums.swift.org/t/ranted-allow-to-compare-generic-types-without-providing-a-signature-specialization/39654/26 "2020-09-02T14:48:10Z")

</div>

Ah, so now I know who to blame for the iostream operators. 😛

---

<div class="post-metadata">

**Author:** ![Jon\_Hull](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/jon_hull/32/678_2.png) [@Jon\_Hull](https://forums.swift.org/u/Jon_Hull)\
**Post date:** [September 6, 2020, 11:19am UTC](https://forums.swift.org/t/ranted-allow-to-compare-generic-types-without-providing-a-signature-specialization/39654/27 "2020-09-06T11:19:07Z")

</div>

What do you think about the syntax:

```swift
if let aa = a as? Dictionary<let K:Hashable, let V> {
    if K.self == Int.self {
        ...
    }
}

```

I suppose that would make @Karl's suggestion:

```swift
if let aa = a as? let T:RandomAccessCollection
///Note: it would be just `as` without the type constraint

```

I get that it doesn't match the `func myFunc<T>` syntax quite as well, but I think it does clarify that the type value is dynamically being bound to the name T at that moment. It also matches `switch` syntax pretty well...

---

<div class="post-metadata">

**Author:** ![AnotherUser](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/anotheruser/32/14927_2.png) [@AnotherUser](https://forums.swift.org/u/AnotherUser)\
**Post date:** [September 13, 2020, 9:37pm UTC](https://forums.swift.org/t/ranted-allow-to-compare-generic-types-without-providing-a-signature-specialization/39654/29 "2020-09-13T21:37:57Z")

</div>

That's a lot of `let`s.

[Previous page](https://forums.swift.org/t/ranted-allow-to-compare-generic-types-without-providing-a-signature-specialization/39654.md?page=1)
