insertAssetRuntimeStateWith :: Handle -> AssetId -> (AssetRuntimeState -> AssetRuntimeState -> AssetRuntimeState) -> AssetRuntimeState -> IO ()
insertAssetRuntimeStateWith h aId f d = atomically $ do
    modifyTVar (state h) $ \s -> s { assets = M.insertWith f aId d (assets s) }
insertAssetRuntimeStateWith :: Handle -> AssetId -> (AssetRuntimeState -> AssetRuntimeState -> AssetRuntimeState) -> AssetRuntimeState -> IO ()
insertAssetRuntimeStateWith h aId f d = atomically $ do
    modifyTVar (state h) $ \s -> s { assets = M.insertWith f aId d (assets s) }
insertAssetRuntimeStateWith h aId f d = atomically $ do
    modifyTVar (state h) $ \s -> s { assets = M.insertWith f aId d (assets s) }