I read the proposal and am very impressed by it. I have 3 concerns however.
1. `F(type T)(p T) { ... }` To me, having 2 or 3 sets of parentheses is very weird. All mainstream programming languages have only 1 set of parentheses for the function's arguments. I've never seen 2 before. I know the proposal says the authors of the draft considered other common symbols including colon. *I still think `::` seems nicest.* 2. Expanding interfaces to include fields Currently interfaces can dictate methods only. The proposal also adds type lists. *I propose that for the purposes of generics, the interface also defines fields.* This has been rejected numerous times for interfaces (as it is now), but for generics, I think it will greatly enhance the power given to developers whilst honouring the intention/spirit of the proposal. See Typescript for guidance. They have successfully implemented interfaces that can define fields, type lists and method names in their contracts. The team at Microsoft obviously saw a use for it. 3. Compile time. I started using Go around Go1.3 (the C compiler days). Back then compiling was blink-of-an-eye fast. I used it as a selling point to everyone I met at meetups (there was minimal uptake of Go back then so it was meetups for other languages). Now the compiler is fast but for moderate size projects, it's no longer blink-of-an-eye fast. I don't bother hyping this feature any more. Obviously based on how generics is implemented, the compiler will again be slower. *I propose a compile flag so that when developing all the generic type checking etc is done at run-time (default behaviour). When ready to build for production, a compile flag can use used to move the type checking to happen at compile time.* Thanks for your time, - pjebs -- 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/c0a3a6a2-0c73-4246-ac0b-56da96210ffdo%40googlegroups.com.