Sourceand attribute = {insertion : insertion option;id : string option;ifexpr : string option;
} Sourceand insertion = | Before of string| After of string| Replace of string
Sourceand cattribute = {cid : string;cifexpr : string option;
} Sourceand tattribute = | External| Index of int list
Sourceand 'a shorthand = {iloc : Loc.t;full_name : 'a;short_name : 'a;
}