monkeyPatch static method 
    
    
    
  Implementation
  static String monkeyPatch(String shader, { Map<String,String>? defines, String header = '', String main = '', Map<String,String>? replaces}) {
  String patchedShader = shader;
  final replaceAll = (String str, String find, String rep) => str.split(find).join(rep);
  replaces?.keys.forEach((key) {
    patchedShader = replaceAll(patchedShader, key, replaces[key]!);
  });
  patchedShader = patchedShader.replaceAll(
    'void main() {',
    '''
    ${header}
    void main() {
      ${main}
    '''
  );
  final stringDefines = defines?.keys
    .map((d) => '''#define ${d} ${defines[d]}''')
    .join('\n') ?? '';
  return '''
    ${stringDefines}
    ${patchedShader}
  ''';
}