Shouldn't this be called `with` and `with_mut`? It doesn't seem like there's any mapping going on here.