Add some doc comments.
diff --git a/src/attr.rs b/src/attr.rs
index afa611e..443daa5 100644
--- a/src/attr.rs
+++ b/src/attr.rs
@@ -21,7 +21,10 @@
 /// distinguished for pretty-printing.
 #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
 pub enum AttrStyle {
+    /// Attribute of the form `#![...]`.
     Outer,
+
+    /// Attribute of the form `#[...]`.
     Inner,
 }
 
@@ -34,17 +37,23 @@
     ///
     /// E.g. `test` as in `#[test]`
     Word(Ident),
+
     /// List meta item.
     ///
     /// E.g. `derive(..)` as in `#[derive(..)]`
     List(Ident, Vec<NestedMetaItem>),
-    /// Name value meta item.
+
+    /// Name-value meta item.
     ///
     /// E.g. `feature = "foo"` as in `#[feature = "foo"]`
     NameValue(Ident, Lit),
 }
 
 impl MetaItem {
+    /// Name of the item.
+    ///
+    /// E.g. `test` as in `#[test]`, `derive` as in `#[derive(..)]`, and
+    /// `feature` as in `#[feature = "foo"]`.
     pub fn name(&self) -> &str {
         match *self {
             MetaItem::Word(ref name) |
@@ -59,11 +68,14 @@
 /// E.g. the '..' in `#[name(..)]`.
 #[derive(Debug, Clone, Eq, PartialEq, Hash)]
 pub enum NestedMetaItem {
-    /// A full MetaItem, for recursive meta items.
-    MetaItem(MetaItem),
-    /// A literal.
+    /// A full `MetaItem`.
     ///
-    /// E.g. "foo", 64, true
+    /// E.g. `Copy` in `#[derive(Copy)]` would be a `MetaItem::Word(Ident::from("Copy"))`.
+    MetaItem(MetaItem),
+
+    /// A Rust literal.
+    ///
+    /// E.g. `"name"` in `#[rename("name")]`.
     Literal(Lit),
 }