We have all made trivial mistakes which end up biting us badly in the end, even the experts in rocket science got the units wrong on the mars climate orbiter crashing hundreds of man years of work into the planet. There are actually syntactic tools within the C++ language which could have caught this and many many other errors at compile time with no added run time cost. I am talking of course about the type system which, when used well, can bullet proof error prone interfaces. In this talk I will give very simple examples of using the type system to find errors and build at the end to an introduction to domain specific languages which even allow the compiler to find some logic errors.