anchor.diff:      let flags = modul.GccFlagsLinux
   
       let args = makeArgs flags cFile oFile modul
  -    do! startGcc args
  +    do! startGcc args modul
   
       return oFile }
   
  -let compileToDynamicLibrary libs oFiles dylibName = io {
  +let compileToDynamicLibrary libs oFiles dylibName modul = io {
       let args = makeDynamicArgs libs oFiles dylibName
  -    do! startGcc args }
  +    do! startGcc args modul }
   
   let cleanObjectFiles outputPath = io {
       return
  
positive.code: 
  let makeDynamicLibraryPath path (modul: Module) = Path.Combine (path, sprintf "lib%s.so" modul.Name)
  
  let makeArgs flags cFile oFile (modul: Module) =
      if modul.IsCpp
      then
          sprintf "-Wall -arch i386 %s -c %s -o %s" flags cFile oFile
      else
          sprintf "-Wall -std=c99 -arch i386 %s -c %s -o %s" flags cFile oFile
  
  let makeDynamicArgs libs oFile soName = sprintf "%s %s -shared -o %s" libs oFile soName
  
  let makeGccStartInfo args = ProcessStartInfo ("g++", args)
  
  let findAllObjectFiles path = Directory.GetFiles (path, "*.o") |> List.ofArray
  
  let startGcc args = io {
      let pinfo = makeGccStartInfo args
  
      pinfo.UseShellExecute <- false
      pinfo.RedirectStandardError <- true
  
negative.code: 
      io {
          let! oFile = compileC outputPath modul cgen
          do! compileToDynamicLibrary libs oFile dylibName modul
          return! cleanObjectFiles outputPath }
      |> IO.run
  