Added smarter coercions

Boolean class is defined if the class has not already been previously
defined. This is just to make the DSL a little nicer.