code: public static <S, T, A, B> Lens<S, T, A, B> unLiftT(Lens<S, Maybe<T>, A, B> lens, T defaultT) {
          return lens.mapT(m -> m.orElse(defaultT));
      }
docs: Given a lens with <code>T</code> lifted into {@link Maybe} and a default <code>T</code>, flatten <code>T</code>
  back down.
  <p>
  Note that while this lens is not *necessarily* unlawful, it probably is, since the only case where "you get back
  what you put in" would not be violated is if <code>T</code> could never be {@link Maybe#nothing()}.
  
  @param lens     the lens
  @param defaultT the T to use if lens produces {@link Maybe#nothing()}
  @param <S>      the type of the "larger" value for reading
  @param <T>      the type of the "larger" value for putting
  @param <A>      the type of the "smaller" value that is read
  @param <B>      the type of the "smaller" update value
  @return the lens with T flattened