Enhancements in instances, extensions, and warnings

This patch series consists of three enhancements:

1. Make instances coherent and non-overlapping.
2. Disuse some language extensions.
3. Make the code compile without warning.
We try to use explicit import lists, because that way it's easier for people unfamiliar with the code to see where a particular function came from.