More work on the type system
The CMake file now has the parameter -DUSE_CLANG which defaults to ON