Less use of std::pair.
Clang was having some issues with my use of fusion::reversed_view. But I think this is cleaner anyway.