A library for composing lenses and working with complex state objects