I agree that sigils vs generics is subjective. I don't think Python is a good argument in favour of generics though, as you say it avoids braces (and types, never mind generic types) and the problem I have with generic types is when you get a bunch of them nesting up and it all becomes hard to parse.

I would be in favour of making other more common patterns more convenient too. The difference is here we are talking about removing a convenience rather than adding one.

My point about them being self-explanatory is that you still have to go to the docs to find out what `Box` means, just like `Vec` or `TreeSet`. So this is not an advantage over `~`. Box doesn't tell me it is heap allocated, is implemented as a pointer, or is unique. I disagree that Rust types are expected to be unique by default - `&` is the most common (non-value) type and is not unique, likewise `Rc`, etc. Only `~` and values are unique, and I believe most programmers with a systems background will have a mental divide between pointer types and value types.

I prefer `~[T]` to `Vec<T>` for the same (admittedly subjective) readability reasons. I'm not sure we _should_ be discouraging use of unique pointers. They are the easiest/best way to allocate something on the heap and that seems kind of popular in other languages. I don't think we understand the cost/benefits of idiomatic Rust programming well enough at this stage to be so bold about what programmers should be doing. In particular, the Rust code base is a compiler implementation, and compilers are a fairly unique kind of programming. We should not generalise from rustc to all programming in Rust.

I don't think it is important what can or can't be implemented in a library or for people to understand how 'special' something is. It is important that people understand the language concepts and how to use them.

I agree we should avoid obscure and confusing syntax, but I don't agree that pointer sigils are. After all, pointers are usually denoted by sigils, particularly in C/C++. Currently we only have one more pointer sigil than C++, so I don't think that criticism of Rust is valid anymore (and I haven't heard it as much recently).