I'm not sure PLs should have custom syntax for data types. You quickly run out of paren types before you run out of common types.
Related Posts
Bootstrapping a language can be immensely satisfying.
I've added the ability to define stub types in the Garden stdlib and suddenly I don't need to special-case Int or String! They're just normal type declarations.
Playing with optional type signatures in Python, I realise that the return type is the most important to me.
I'd much rather have a function with only a return type instead of a function with only parameter types. It's often quick to add too.
A funny side effect of building software in Rust: my machine OOMs much more during development.
I'm not entirely sure why. I think Rust makes it easy to allocate data quickly, and sooner or later you write an infinite loop when coding.