anchor.diff:  namespace Nu
   open System
   open System.Collections.Generic
  +open System.Linq
   open System.Numerics
   open System.IO
   open SDL2
  
positive.code:           mutable RenderAssetCachedOpt : string * RenderAsset
            mutable RenderMessages : RenderMessage List
            RenderLayeredMessages : RenderLayeredMessage List }
  
      static member private compareDescriptors (left : RenderLayeredMessage) (right : RenderLayeredMessage) =
          let elevationCompare = left.Elevation.CompareTo right.Elevation
          if elevationCompare <> 0 then elevationCompare else
          let positionYCompare = -(left.PositionY.CompareTo right.PositionY)
          if positionYCompare <> 0 then positionYCompare else
          let assetNameCompare = strCmp left.AssetTag.AssetName right.AssetTag.AssetName
          if assetNameCompare <> 0 then assetNameCompare else
          strCmp left.AssetTag.PackageName right.AssetTag.PackageName
  
      static member private invalidateCaches renderer =
          renderer.RenderPackageCachedOpt <- Unchecked.defaultof<_>
  
negative.code:     /// Handle render clean up by freeing all loaded render assets.
      abstract CleanUp : unit -> Renderer
  
  type RenderLayeredMessageComparer () =
      interface IComparer<RenderLayeredMessage> with
          member this.Compare (left, right) =
              let elevationCompare = left.Elevation.CompareTo right.Elevation
              if elevationCompare <> 0 then elevationCompare else
              let positionYCompare = -(left.PositionY.CompareTo right.PositionY)
              if positionYCompare <> 0 then positionYCompare else
              let assetNameCompare = strCmp left.AssetTag.AssetName right.AssetTag.AssetName
              if assetNameCompare <> 0 then assetNameCompare else
              strCmp left.AssetTag.PackageName right.AssetTag.PackageName
  
  /// The mock implementation of Renderer.
  type [<ReferenceEquality; NoComparison>] MockRenderer =
      private
  