Literal documentation
diff --git a/src/lit.rs b/src/lit.rs
index 22648b8..d38c58d 100644
--- a/src/lit.rs
+++ b/src/lit.rs
@@ -16,32 +16,33 @@
 use std::hash::{Hash, Hasher};
 
 ast_enum_of_structs! {
+    /// A Rust literal such as a string or integer or boolean.
     pub enum Lit {
-        /// A string literal (`"foo"`)
+        /// A UTF-8 string literal: `"foo"`.
         pub Str(LitStr #manual_extra_traits {
             token: Literal,
             pub span: Span,
         }),
 
-        /// A byte string (`b"foo"`)
+        /// A byte string literal: `b"foo"`.
         pub ByteStr(LitByteStr #manual_extra_traits {
             token: Literal,
             pub span: Span,
         }),
 
-        /// A byte char (`b'f'`)
+        /// A byte literal: `b'f'`.
         pub Byte(LitByte #manual_extra_traits {
             token: Literal,
             pub span: Span,
         }),
 
-        /// A character literal (`'a'`)
+        /// A character literal: `'a'`.
         pub Char(LitChar #manual_extra_traits {
             token: Literal,
             pub span: Span,
         }),
 
-        /// An integer literal (`1`)
+        /// An integer literal: `1` or `1u16`.
         ///
         /// Holds up to 64 bits of data. Use `LitVerbatim` for any larger
         /// integer literal.
@@ -50,7 +51,7 @@
             pub span: Span,
         }),
 
-        /// A float literal (`1f64` or `1E10f64`)
+        /// A floating point literal: `1f64` or `1.0e10f64`.
         ///
         /// Must be finite. May not be infinte or NaN.
         pub Float(LitFloat #manual_extra_traits {
@@ -58,12 +59,14 @@
             pub span: Span,
         }),
 
-        /// A boolean literal
+        /// A boolean literal: `true` or `false`.
         pub Bool(LitBool #manual_extra_traits {
             pub value: bool,
             pub span: Span,
         }),
 
+        /// A raw token literal not interpreted by Syn, possibly because it
+        /// represents an integer larger than 64 bits.
         pub Verbatim(LitVerbatim #manual_extra_traits {
             pub token: Literal,
             pub span: Span,
@@ -234,10 +237,12 @@
 lit_extra_traits!(LitVerbatim, token);
 
 ast_enum! {
+    /// The style of a string literal, either plain or a raw string like
+    /// `r##"data"##`.
     pub enum StrStyle #no_visit {
-        /// A regular string, like `"foo"`
+        /// An ordinary string like `"data"`.
         Cooked,
-        /// A raw string, like `r##"foo"##`
+        /// A raw string like `r##"data"##`.
         ///
         /// The unsigned integer is the number of `#` symbols used.
         Raw(usize),
@@ -245,6 +250,7 @@
 }
 
 ast_enum! {
+    /// The suffix on an integer literal if any, like the `u8` in `127u8`.
     pub enum IntSuffix #no_visit {
         I8,
         I16,
@@ -263,6 +269,8 @@
 }
 
 ast_enum! {
+    /// The suffix on a floating point literal if any, like the `f32` in
+    /// `1.0f32`.
     pub enum FloatSuffix #no_visit {
         F32,
         F64,