public void defineMacros(Map<String, Object> macros) {
   createMacros();
   this.macros.putAll(macros);
 }
 public CLProgram defineMacro(String name, Object value) {
   createMacros();
   macros.put(name, value);
   return this;
 }