anchor.diff:              if not <| constr.Check grammar then
                   eprintfn "Constraint %s: applying %s..." constr.Name constr.Conversion.Name
                   ilTree := {!ilTree with grammar = constr.Fix grammar}
  -        ilTree
       with
           | e -> GenError e.Message |> raise
   
  -let genToFile (generator : Generator) genParams ilTree =
  +let genToFile ((generator : Generator), genParams, ilTree) =
       try
           match genParams with
           | None -> generator.Generate(!ilTree, true)
  
positive.code:         ilTree := applyConversion conv !ilTree
          checkSources conv !ilTree
  
  let gen grammarFile frontendName generatorName generatorParams conversions userDefs generateToFile = 
      try
          let frontend = getFrontend frontendName
          let ilTree = getIlTreeFromFile grammarFile frontend userDefs
          applyConversions ilTree frontend conversions
          let generator = prepareGenerator generatorName
          let checkedIl = checkIlTree ilTree generator
          if generateToFile then
              genToFile generator generatorParams checkedIl
          else
              genToObj generator generatorParams checkedIl
      with
      | InvalidFEName frontendName as e  -> 
          "Frontend with name " + frontendName + " is not available. Run \"Main.exe -af\" for get all available frontends.\n" 
  
negative.code:     with
          | e -> GenError e.Message |> raise
  
  let genToObj ((generator : Generator), genParams, ilTree) =
      try
          match genParams with
          | None -> generator.Generate(!ilTree, false)
  