anchor.diff:              fst renderer.RenderPackageCachedOpt = assetTag.PackageName then
               if  renderer.RenderAssetCachedOpt :> obj |> notNull &&
                   fst renderer.RenderAssetCachedOpt = assetTag.AssetName then
  -                Some (snd renderer.RenderAssetCachedOpt)
  +                ValueSome (snd renderer.RenderAssetCachedOpt)
               else
                   let assets = snd renderer.RenderPackageCachedOpt
  -                match Dictionary.tryFind assetTag.AssetName assets with
  -                | Some asset as someAsset ->
  +                match assets.TryGetValue assetTag.AssetName with
  +                | (true, asset) ->
                       renderer.RenderAssetCachedOpt <- (assetTag.AssetName, asset)
  -                    someAsset
  -                | None -> None
  +                    ValueSome asset
  +                | (false, _) -> ValueNone
           else
               match Dictionary.tryFind assetTag.PackageName renderer.RenderPackages with
               | Some assets ->
                   renderer.RenderPackageCachedOpt <- (assetTag.PackageName, assets)
  -                match Dictionary.tryFind assetTag.AssetName assets with
  -                | Some asset as someAsset ->
  +                match assets.TryGetValue assetTag.AssetName with
  +                | (true, asset) ->
                       renderer.RenderAssetCachedOpt <- (assetTag.AssetName, asset)
  -                    someAsset
  -                | None -> None
  +                    ValueSome asset
  +                | (false, _) -> ValueNone
               | None ->
                   Log.info ("Loading render package '" + assetTag.PackageName + "' for asset '" + assetTag.AssetName + "' on the fly.")
                   SdlRenderer.tryLoadRenderPackage assetTag.PackageName renderer
  -                match Dictionary.tryFind assetTag.PackageName renderer.RenderPackages with
  -                | Some assets ->
  +                match renderer.RenderPackages.TryGetValue assetTag.PackageName with
  +                | (true, assets) ->
                       renderer.RenderPackageCachedOpt <- (assetTag.PackageName, assets)
  -                    match Dictionary.tryFind assetTag.AssetName assets with
  -                    | Some asset as someAsset ->
  +                    match assets.TryGetValue assetTag.AssetName with
  +                    | (true, asset) ->
                           renderer.RenderAssetCachedOpt <- (assetTag.AssetName, asset)
  -                        someAsset
  -                    | None -> None
  -                | None -> None
  +                        ValueSome asset
  +                    | (false, _) -> ValueNone
  +                | (false, _) -> ValueNone
   
       static member private handleHintRenderPackageUse hintPackageName renderer =
           SdlRenderer.tryLoadRenderPackage hintPackageName renderer
  
positive.code:         let blend = Blend.toSdlBlendMode blend
          let image = AssetTag.generalize image
          match SdlRenderer.tryFindRenderAsset image renderer with
          | Some renderAsset ->
              match renderAsset with
              | TextureAsset texture ->
                  let (_, _, _, textureSizeX, textureSizeY) = SDL.SDL_QueryTexture texture
  
negative.code:         let sizeView = Matrix3x3.Multiply (&transform.Size, &viewScale)
          let font = AssetTag.generalize font
          match SdlRenderer.tryFindRenderAsset font renderer with
          | ValueSome renderAsset ->
              match renderAsset with
              | FontAsset (font, _) ->
                  let mutable renderColor = SDL.SDL_Color ()
  