title: What are lenses used/useful for?
body: <p>I can't seem to find any explanation of what lenses are used for in practical examples. This short paragraph from the Hackage page is the closest I've found:</p>
  
  <blockquote>
    <p>This modules provides a convienient way to access and update the elements of a structure. It is very similar to Data.Accessors, but a bit more generic and has fewer dependencies. I particularly like how cleanly it handles nested structures in state monads. </p>
  </blockquote>
  
  <p>So, what are they used for? What benefits and disadvantages do they have over other methods? Why are they needed?</p>