Does the type here need to be decomposed? Can't it just be `map()`?