trace = R.curry((map, direction, startCoords) => {
const items = []
let currentCoords = startCoords
let timeout = 9999
while (timeout > 0) {
currentCoords = add(currentCoords, direction)
if (!isInMap(map.size, currentCoords)) break
items.push(map.data[coordsToIndex(map.size, currentCoords)])
timeout--
}
return items
})