public IokeObject newMacro(String doc, IokeObject tp, IokeData impl) throws ControlFlow { IokeObject obj = tp.allocateCopy(null, null); obj.setDocumentation(doc, null, null); obj.mimicsWithoutCheck(tp); obj.setData(impl); return obj; }