ignore Mac weirdness
demand 100% coverage
add NullPrinter to be used if user does not specify an IO object for diagnostic outputs