anchor.diff:        Framework                    : FrameworkIdentifier
         PackagesOrGroupFolder        : DirectoryInfo
         IncludeScriptsRootFolder     : DirectoryInfo
  -      DependentScripts             : FileInfo seq
  -      FrameworkReferences          : string seq
  -      OrderedRelativeDllReferences : string seq
  +      DependentScripts             : FileInfo list
  +      FrameworkReferences          : string list
  +      OrderedRelativeDllReferences : string list
     }
  +
  +  type ScriptGenResult = 
  +  | DoNotGenerate
  +  | Generate of lines : string list
   
     let makeRelativePath (scriptFile: FileInfo) (libFile: FileInfo) =
       (scriptFile.FullName |> Uri).MakeRelativeUri(libFile.FullName |> Uri).ToString()
  
positive.code: 
      let depLines =
        input.DependentScripts
        |> Seq.map (fun script -> sprintf """#load @"%s" """ script.Name)
  
      let framworkRefLines =
        input.FrameworkReferences
        |> Seq.map (sprintf """#r "%s" """)
  
      let dllLines =
        if packageName.ToLowerInvariant() = "fsharp.core"
        then Seq.empty else input.OrderedRelativeDllReferences
        |> Seq.map (sprintf """#r "%s" """)
  
      let lines = Seq.concat [depLines; framworkRefLines; dllLines]
      
      if Seq.isEmpty lines 
      then Seq.empty // only write the status if we actually did anything
      else Seq.append lines [ sprintf "printfn \"%%s\" \"Loaded %s\"" packageName ]
  
  
    // default implementation of C# include script generator
    let generateCSharpScript (input: ScriptGenInput) =
  
negative.code:         installModel
          |> InstallModel.getFrameworkAssembliesLazy
          |> force
          |> Set.toList
  
  module ScriptGeneration =
    open PackageAndAssemblyResolution
  