Types consistency should be tested

Some types are wrongly inferred in certain cases but more importantly, types consistency should be guaranteed accross releases.