Move decompilation of assign to purification
Before we added the purification pass, assign was transformed to a let_in in the abstractor phase. However we kept the decompilation logic (checking if the let_in should be decompiled in an assign) in the abstractor for pascaligo.
This logic should be move to the purification so It can be share among all the imperative from end. However, there is a bigger issus that need to be solve first :
Currently decompilation for all front-end goes through core -> sugar -> imperative -> cst. But the reverse purification, actually produce a subset of the ast-imperative, without the imperative construct so we can produce CST for cameligo and reasonligo. If we change this so that we correctly reverse the purification. Then transpiling pascaligo to cameligo will lead to trying to write (a := 1) in cameligo cst.
So we first need to shurtcut purification when decompiling to cameligo or other fonctional language. But if we do so, all syntaxes won't use the same pipeling. Other idea are to copy part of the purification in the abstraction decompiler, that looks like a bad idea. Or to wait for algebraic effect to be implemented and transform assign to an algebraic effect. That would be still a bad idea