Axel, please send your reply to golang-nuts too, you can ignore the rest of 
this, I already sent it to you but not golang-nuts because I didn't reply to 
all.

> What is the "them" to be omitted if there is only one type parameter? It 
> wouldn't make sense to omit the brackets (because there needs to be some 
> delimiter between the name of the generic function/type and the type 
> argument). But if there is only one type-parameter anyway, I don't know what 
> else you would omit.

Why does there need to be a delimiter, there isn't one between chan and int in 
chan int, which I think is more readable than chan[int].

> Either way - you are using `sync.Map` to motivate this, with a clear analogue 
> to `map`. But what about types that *don't* represent a map (like the 
> Graph-example, where both type-parameters are on mostly equal footing)?

I think most generic types would only have 1 type-parameter and the syntax 
should be like the built-in ones ([]T, *T, func(Params) Result, map[Key]Elem 
and chan T). Putting the extra ones in square brackets is the best thing I can 
think of. Also I think Graph[Node]Edge or Graph[Edge]Node is still readable.

> And what about generic functions? I think
> Foo[int]string(bar, baz)
> isn't super readable, TBH.

I was only suggesting this for generic types.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/1794255551.562131.1609847012148%40ichabod.co-bxl.

Reply via email to