Remove Synom trait
diff --git a/src/synom.rs b/src/synom.rs
index d5f1684..a768c73 100644
--- a/src/synom.rs
+++ b/src/synom.rs
@@ -166,61 +166,6 @@
 use buffer::{Cursor, TokenBuffer};
 use parse::{Parse, ParseBuffer, ParseStream, Result};
 
-/// Parsing interface implemented by all types that can be parsed in a default
-/// way from a token stream.
-///
-/// Refer to the [module documentation] for details about parsing in Syn.
-///
-/// [module documentation]: index.html
-///
-/// *This trait is available if Syn is built with the `"parsing"` feature.*
-pub trait Synom: Sized {
-    fn parse(input: Cursor) -> PResult<Self>;
-
-    /// A short name of the type being parsed.
-    ///
-    /// The description should only be used for a simple name.  It should not
-    /// contain newlines or sentence-ending punctuation, to facilitate embedding in
-    /// larger user-facing strings.  Syn will use this description when building
-    /// error messages about parse failures.
-    ///
-    /// # Examples
-    ///
-    /// ```
-    /// # use syn::buffer::Cursor;
-    /// # use syn::synom::{Synom, PResult};
-    /// #
-    /// struct ExprMacro {
-    ///     // ...
-    /// }
-    ///
-    /// impl Synom for ExprMacro {
-    /// #   fn parse(input: Cursor) -> PResult<Self> { unimplemented!() }
-    ///     // fn parse(...) -> ... { ... }
-    ///
-    ///     fn description() -> Option<&'static str> {
-    ///         // Will result in messages like
-    ///         //
-    ///         //     "failed to parse macro invocation expression: $reason"
-    ///         Some("macro invocation expression")
-    ///     }
-    /// }
-    /// ```
-    fn description() -> Option<&'static str> {
-        None
-    }
-}
-
-impl<T: Parse> Synom for T {
-    fn parse(input: Cursor) -> PResult<Self> {
-        let unexpected = Rc::new(Cell::new(None));
-        let state = ParseBuffer::new(Span::call_site(), input, unexpected);
-        let node = <T as Parse>::parse(&state)?;
-        state.check_unexpected()?;
-        Ok((node, state.cursor()))
-    }
-}
-
 impl Parse for TokenStream {
     fn parse(input: ParseStream) -> Result<Self> {
         input.step_cursor(|cursor| Ok((cursor.token_stream(), Cursor::empty())))