Я бы, наверное, использовал то, что предложил @Gurkenglas, или
view (_Object . to HM.keys)
:: (AsValue s, MonadReader s m)
=> m [Text]
Я считаю важным отметить, что lens
на самом деле не светит там; по причине.
Ключи объекта являются частью его «формы». lens
прекрасно работает, когда вам не нужно менять форму. Таким образом, вы можете получить ключей, но больше ничего не можете сделать, т.е. вы не можете установить или изменить их.