anchor.diff:    '' + (if genBytecode then ''
       ${bqn-path} genRuntime ${mbqn-source}
     '' else ''
  -    cp ${cbqn-bytecode-files}/src/gen/{compiles,formatter,runtime0,runtime1,src} src/gen/
  +    cp ${cbqn-bytecode-files}/src/gen/{compiles,explain,formatter,runtime0,runtime1,src} src/gen/
     '');
   
     installPhase = ''
  
positive.code: , genBytecode ? false
  , bqn-path ? null
  , mbqn-source ? null
  }:
  
  let
  
negative.code:     name = "cbqn-bytecode-files";
      owner = "dzaima";
      repo = "CBQN";
      rev = "3df8ae563a626ff7ae0683643092f0c3bc2481e5";
      hash = "sha256:0rh9qp1bdm9aa77l0kn9n4jdy08gl6l7898lncskxiq9id6xvyb8";
    };
  in
  assert genBytecode -> ((bqn-path != null) && (mbqn-source != null));
  
  stdenv.mkDerivation rec {
    pname = "cbqn" + lib.optionalString (!genBytecode) "-standalone";
    version = "0.pre+date=2022-10-04";
  
    src = fetchFromGitHub {
      owner = "dzaima";
      repo = "CBQN";
      rev = "abcb575a537712763e9e53b6cb0eb415346b00e6";
      hash = "sha256:05gqw2ppcykv36ji8mkp8mq502q84vk9algp9c2d3z495xqy8rn6";
    };
  
    buildInputs = [
      libffi
    ];
  
    dontConfigure = true;
  
  