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.
OK, I can revise the pull request to keep the import list explicit. I can also use -fno-warn-unused-imports, or I can drop -Wall.