let laws =
  [
    { law_name = "Leftover Ocaml compilation files";
      law_rules = [Not ".cmo"Not ".cmi"Not ".cmx"Not ".cma"Not ".cmxa"];
      law_penalty = Fail };
    { law_name = "Leftover Ocaml type annotation files";
      law_rules = [Not ".annot"];
      law_penalty = Warn };
    { law_name = "Leftover object files";
      law_rules = [Not ".o"Not ".a"Not ".so"Not ".obj"Not ".lib"Not ".dll"];
      law_penalty = Fail };
    { law_name = "Leftover ocamlyacc-generated files";
      law_rules = [Implies_not(".mly",".ml"); Implies_not(".mly",".mli")];
      law_penalty = Fail };
    { law_name = "Leftover ocamllex-generated files";
      law_rules = [Implies_not(".mll",".ml")];
      law_penalty = Fail };
    { law_name = "Leftover dependency files";
      law_rules = [Not ".ml.depends"Not ".mli.depends"];
      law_penalty = Fail }
  ]