These nested maps are pretty awkward in Scheme