Generically derive traversals, lenses and prisms
