Hello, I'm trying to understand macros and how typed vs untyped AST work and I learnt that if you want to create an ast from a typed ast node you have to "sanitize" it to turn it to an untyped tree, which means removing hidden convs, replacing symbol nodes by ident nodes and some other stuff, but where do I find the exhaustive list of what I need to take into account ? For example I'm creating a macro that merges the bodies of two function that have the same argument list and I want to be sure that the entire ast of the merged body will be valid in any case, so firstly I turned all sym nodes that refer to the function arguments to idents, leaving global references as sym, and Ive seen that those arent the only things you need to edit, theres's also implicit brackets, implicit calls, etc.. that you have to remove, and i want to be sure to handle all the possible cases, but I struggle to find exhaustive doc on this