Yeh, that’s true. I don’t think it’s difficult to implement Serialize or Deserialize manually, and you get more control, but need to make sure all possible serialised values can be properly deserialised yourself and that changes to your structure are also made to the serialisation.
The main issue I have with aster (and syntex) in practice is that it has a broad surface to cover, which means any small change to libsyntax tanks them completely. But since I only use a small subset of libsyntax my stuff rarely breaks.
I’d heard (second-hand) Mads Torgersen (one of the guys heading Microsoft’s Roslyn compiler platform) comment that it’ll be a long time before Rust’s compiler APIs could be stabilised based on the amount of work they did for Roslyn, so I think we’ll be wearing the costs of instability for a while yet 