This is a bit exhaustive but as it really hurts compilation it's probably better to declare as much as we can.