Thanks for the descriptive answer mate. I honestly don't know much about it. But I've read about the LISP family and ML family of languages. There are too many to choose from. I've decided to learn F# and have been going through some tutorials. I'm enjoying it quite a lot. ATS sounds like a good combo of abstraction meets bare metal.
Yet to actually use that power, developers are pretty much left to implement everything themselves.
The nice thing about Rust's borrow-checking approach is that common patterns can be inferred and checked. Linear types ATS offer the same power, but force developers to jump through more hoops 'manually' (and likewise for dependent types, compared to the fancy inference/proof-search approaches of languages like Idris)