buildIfNecessary :: Handle -> AssetId -> IO ()
buildIfNecessary h aId = insertAssetRuntimeStateWith h aId adj (assetRuntimeState Dirty)
  where
    adj _ ars = case arsState ars of
        Building _  -> ars
        Completed _ -> ars
        _           -> ars { arsState = Dirty }
buildIfNecessary :: Handle -> AssetId -> IO ()
buildIfNecessary h aId = insertAssetRuntimeStateWith h aId adj (assetRuntimeState Dirty)
  where
    adj _ ars = case arsState ars of
        Building _  -> ars
        Completed _ -> ars
        _           -> ars { arsState = Dirty }
buildIfNecessary h aId = insertAssetRuntimeStateWith h aId adj (assetRuntimeState Dirty)
  where
    adj _ ars = case arsState ars of
        Building _  -> ars
        Completed _ -> ars
        _           -> ars { arsState = Dirty }