anchor.diff:  , ocamlPackages, ltl2ba, coq, why3
   , gdk-pixbuf, wrapGAppsHook
   }:
  -
  -let why3_1_5 = why3; in
  -let why3 = why3_1_5.overrideAttrs (o: rec {
  -  version = "1.4.1";
  -  src = fetchurl {
  -    url = "https://why3.gitlabpages.inria.fr/releases/${o.pname}-${version}.tar.gz";
  -    sha256 = "sha256:1rqyypzlvagrn43ykl0c5wxyvnry5fl1ykn3xcvlzgghk96yq3jq";
  -  };
  -}); in
   
   let
     mkocamlpath = p: "${p}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib";
  
positive.code:     mlgmpidl
      num
      ocamlgraph
      stdlib-shims
      why3
      re
      seq
      sexplib
      sexplib0
  
negative.code: 
  stdenv.mkDerivation rec {
    pname = "frama-c";
    version = "25.0";
    slang   = "Manganese";
  
    src = fetchurl {
      url    = "https://frama-c.com/download/frama-c-${version}-${slang}.tar.gz";
      sha256 = "sha256-Ii3O/NJyBTVAv1ts/zae/Ee4HCjzYOthZmnD8wqLwp8=";
    };
  
    preConfigure = lib.optionalString stdenv.cc.isClang "configureFlagsArray=(\"--with-cpp=clang -E -C\")";
  
    postConfigure = "patchShebangs src/plugins/value/gen-api.sh";
  
    nativeBuildInputs = [ autoconf wrapGAppsHook ];
  
    buildInputs = with ocamlPackages; [
      ncurses ocaml findlib ltl2ba ocamlgraph yojson menhirLib camlzip
      lablgtk3 lablgtk3-sourceview3 coq graphviz zarith apron why3 mlgmpidl doxygen
      ppx_deriving ppx_import
      gdk-pixbuf
    ];
  
  