//! [`serde_as`](https://docs.rs/serde_with/3.12.0/serde_with/index.html) annotation on AST types.
/// Each object of the implementing type has a unique id; however, ids are not unique for different
/// On de-serialization, each object is created as the default value for that type, except with the
/// memory has a unique id; using this information, re-constructing the shared pointers should be
// https://docs.rs/serde_with/3.12.0/serde_with/trait.SerializeAs.html#implementing-a-converter-type
/// The shared references can be reconstructed using the ids stored, as before serialization these