I have seen "strict data structures, lazy functions" bandied about among Haskellers. This is bad advice. Preferable is "know what you are doing."
Streaming via a C API presents a conundrum in Haskell: on the one hand, the C code is side effecting, on the other, we would like to provide a lazy API.
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.
You may have seen the Some Were Meant for C polemic; I do not agree with it completely but I encourage you to read it if you have not. Here, I give some comments on ATS and Rust in light of it.
Though there are diverse tools for Haskell development many are not widely advertised; here I collect those I use.prev | next