walk associated types more deeply