Compared with Rust, ATS provides better type safety at the boundaries; foreign functions and data structures can be used in a first-class way without sacrificing type safety.
ATS is known for its sophisticated type system, but it also has a template system that has been the focus of recent work. Rather than going into technical details or comparing templates to other forms of generic programming, I wanted to give an example.
Suppose we want to count the number of lines in a file. Rust has a crate that would seem to help us, namely, bytecount.
I am happy to announce that atspkg now has experimental support for
cross-compiling! I will give a short illustration of how this works using my own
project, polyglot.
I've been doing some more work with atspkg and polyglot builds. It is now in
slightly better shape, and it gives us the ability to call ATS code in Haskell
almost painlessly.