If you don't go into the source code and you just use lith, these are the noticeable changes.
   - You now need to add two dependencies to the code: teishi and dale.
   - You can now create a lith with contents and without attributes, without having to leave an empty place for the attribute.
   - A series of bugs emerging from an incomplete definition of the contents of a lith are now solved, thanks to the concept of lithbags.
   - The contents of style tags are not entityified, so quotes and other special characters within style tags now work properly.
   - You no longer can place nulls or empty strings as the attribute of a lith, or null strings as the contents of a lith.
   - You can now generate CSS using lith.css.g!

If you go into the code, you'll notice:
   - I completely rewrote the code, using teishi and dale as dependencies and employing the concept of lithbags.
   - Placed all definitions within lith.constants.
   - Defined throughly the concept of lithbag, which is an array made of one or more of: undefined, string, number and arrays. The latter can only be either lithbags or liths. This recursive definition covers (to the best of my knowledge) all corner cases.
   - The contents of a lith are now defined as either a lithbag or a lithbag element.
   - There is barely any repetition of code. What's used in two places or more is defined once and called as needed. From here emerged the function lith.lithbag\_g.