anchor.diff:  |> Observable.subscribe Logging.traceToConsole
   |> ignore
   
  -Logging.tracefn "Paket.Unity3D version %s" fvi.FileVersion
  -
   type Command =
       | [<First>][<CustomCommandLine("install")>] Install
       | [<First>][<CustomCommandLine("add")>]     Add
  +    | [<First>][<CustomCommandLine("version")>] VersionCmd
   with 
       interface IArgParserTemplate with
           member __.Usage = ""
  
positive.code: try
      match args with
          | Command(Install, rest) ->
              let results = commandArgs<AddArgs> rest 
              Paket.Logging.verbose <- results.Contains <@ AddArgs.Verbose @>
              let deps = Dependencies.Locate().DependenciesFile |> DependenciesFile.ReadFromFile
              let lock = deps.FindLockfile().FullName |> LockFile.LoadFrom
              let sources = deps.GetAllPackageSources()
              Paket.Unity3D.InstallProcess.Install(sources,InstallerOptions.Default,lock)
          | Command(Add, rest) -> 
              let results = commandArgs<AddArgs> rest
              let nuget = results.GetResult <@ AddArgs.Nuget @>
              Paket.Logging.verbose <- results.Contains <@ AddArgs.Verbose @>
  
negative.code:         
              let dep = Dependencies.Locate()
              Paket.Unity3D.AddProcess.Add(dep.DependenciesFile, Paket.Domain.PackageName packageName, version, force, hard, interactive, noInstall |> not)
          | Command(VersionCmd, rest) ->
              Logging.tracefn "%s" fvi.FileVersion
          | _ -> failwith "Paket.Unity3D does not know that command"
  with
  | exn when not (exn :? System.NullReferenceException) -> 
  