code: public static <X> Lens.Simple<List<X>, X> elementAt(int index, X defaultValue) {
          return Lens.Simple.adapt(unLiftB(unLiftA(elementAt(index), defaultValue)));
      }
docs: Convenience static factory method for creating a lens that focuses on an element in a list at a particular index,
  returning <code>defaultValue</code> if there is no value at that index.
  <p>
  Note that this lens is NOT lawful, since "putting back what you got changes nothing" fails for any value
  <code>B</code> where <code>S</code> is the empty list
  
  @param index        the index to focus on
  @param defaultValue the value to use if there is no element at index
  @param <X>          the list element type
  @return the element at the index, or defaultValue