reorder includes in lens.hpp for less goofy circularity