use c++11 enhanced-for and auto in type-generator
use c++11 variadic templates in Compiler::call
use enum class in ir
use constexpr for ir::Type
reformat