static RuntimeException unimplemented() { throw fail("TODO"); } static RuntimeException unimplemented(S msg) { throw fail("TODO: " + msg); } static RuntimeException unimplemented(O obj) { throw fail("TODO: implement method in " + className(obj)); }