handleListParagraphs (
  (Div attr1@(_, classes1, _) blks1) :
  (Div (ident2, classes2, kvs2) blks2) :
  blks
  ) | "list-item" `elem` classes1 &&
    not ("list-item" `elem` classes2) &&
    (not . null) (listParagraphDivs `intersect` classes2) =
      -- We don't want to keep this indent.
      let newDiv2 =
            (Div (ident2, classes2, filter (\kv -> fst kv /= "indent") kvs2) blks2)
      in
       handleListParagraphs ((Div attr1 (blks1 ++ [newDiv2])) : blks)
handleListParagraphs (
  (Div attr1@(_, classes1, _) blks1) :
  (Div (ident2, classes2, kvs2) blks2) :
  blks
  ) | "list-item" `elem` classes1 &&
    not ("list-item" `elem` classes2) &&
    (not . null) (listParagraphDivs `intersect` classes2) =
      -- We don't want to keep this indent.
      let newDiv2 =
            (Div (ident2, classes2, filter (\kv -> fst kv /= "indent") kvs2) blks2)
      in
       handleListParagraphs ((Div attr1 (blks1 ++ [newDiv2])) : blks)
handleListParagraphs (
  (Div attr1@(_, classes1, _) blks1) :
  (Div (ident2, classes2, kvs2) blks2) :
  blks
  ) | "list-item" `elem` classes1 &&
    not ("list-item" `elem` classes2) &&
    (not . null) (listParagraphDivs `intersect` classes2) =
      -- We don't want to keep this indent.
      let newDiv2 =
            (Div (ident2, classes2, filter (\kv -> fst kv /= "indent") kvs2) blks2)
      in
       handleListParagraphs ((Div attr1 (blks1 ++ [newDiv2])) : blks)