Why do not call a 'record' a 'struct'? Same with 'List' vs 'Vec'. And why are List, String & co uppercase? From what I gather these are built-in types the compiler knows? 'i32', not 'I32' but 'List' not 'list'? In Rust the case is clear cut: built-ins that the compiler 'knows' are lowercase, types expressed in Rust itself are PascalCase. Roto seems to mix this? Reads like Rust but then "differs subtley" where it (see…
Regarding the List type, as we optimize that, it will probably become a different data structure from a Vec. Also in the Roto-Rust boundary, you cannot pass in a normal Vec. So different names male sense there.
Regarding the case, small primitive types are lowercase. String and List are heap allocated and therefore somewhat different. I'm open to changing that but there is some logic to it.