explicit numeric conversions
compile with more warnings, treat warnings as errors