diff --git a/src/lib.rs b/src/lib.rs
index f3b13a1..51a7952 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -662,10 +662,7 @@
     feature = "parsing",
     feature = "proc-macro"
 ))]
-pub fn parse<T>(tokens: proc_macro::TokenStream) -> Result<T, Error>
-where
-    T: Synom,
-{
+pub fn parse<T: parse::Parse>(tokens: proc_macro::TokenStream) -> Result<T, Error> {
     parse2(tokens.into())
 }
 
@@ -682,10 +679,7 @@
 ///
 /// *This function is available if Syn is built with the `"parsing"` feature.*
 #[cfg(feature = "parsing")]
-pub fn parse2<T>(tokens: proc_macro2::TokenStream) -> Result<T, Error>
-where
-    T: Synom,
-{
+pub fn parse2<T: parse::Parse>(tokens: proc_macro2::TokenStream) -> Result<T, Error> {
     let parser = T::parse;
     parser.parse2(tokens).map_err(|err| match T::description() {
         Some(s) => Error::new(Span::call_site(), format!("failed to parse {}: {}", s, err)),
@@ -722,7 +716,7 @@
 /// # fn main() { run().unwrap() }
 /// ```
 #[cfg(feature = "parsing")]
-pub fn parse_str<T: Synom>(s: &str) -> Result<T, Error> {
+pub fn parse_str<T: parse::Parse>(s: &str) -> Result<T, Error> {
     match s.parse() {
         Ok(tts) => parse2(tts),
         Err(_) => Err(Error::new(
diff --git a/src/lit.rs b/src/lit.rs
index 5b2bf86..1b9efac 100644
--- a/src/lit.rs
+++ b/src/lit.rs
@@ -15,7 +15,7 @@
 #[cfg(feature = "parsing")]
 use proc_macro2::TokenStream;
 #[cfg(feature = "parsing")]
-use {Error, Synom};
+use Error;
 
 use proc_macro2::TokenTree;
 
@@ -24,6 +24,8 @@
 
 #[cfg(feature = "parsing")]
 use lookahead;
+#[cfg(feature = "parsing")]
+use parse::Parse;
 
 ast_enum_of_structs! {
     /// A Rust literal such as a string or integer or boolean.
@@ -125,7 +127,7 @@
     ///
     /// All spans in the syntax tree will point to the span of this `LitStr`.
     #[cfg(feature = "parsing")]
-    pub fn parse<T: Synom>(&self) -> Result<T, Error> {
+    pub fn parse<T: Parse>(&self) -> Result<T, Error> {
         use proc_macro2::Group;
 
         // Parse string literal into a token stream with every span equal to the
diff --git a/src/parse_quote.rs b/src/parse_quote.rs
index 072b4f7..9d65555 100644
--- a/src/parse_quote.rs
+++ b/src/parse_quote.rs
@@ -88,8 +88,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 // Can parse any type that implements Synom.
 
-use proc_macro2::TokenStream;
 use parse::{Parse, ParseStream, Result};
+use proc_macro2::TokenStream;
+use synom::Parser;
 
 // Not public API.
 #[doc(hidden)]
diff --git a/src/synom.rs b/src/synom.rs
index 035b770..e39a534 100644
--- a/src/synom.rs
+++ b/src/synom.rs
@@ -313,21 +313,17 @@
 
 impl<F, T> Parser for F
 where
-    F: FnOnce(Cursor) -> PResult<T>,
+    F: FnOnce(ParseStream) -> Result<T>,
 {
     type Output = T;
 
     fn parse2(self, tokens: TokenStream) -> Result<T> {
         let buf = TokenBuffer::new2(tokens);
-        let (t, rest) = self(buf.begin())?;
-        if rest.eof() {
-            Ok(t)
-        } else if rest == buf.begin() {
-            // parsed nothing
-            Err(Error::new(Span::call_site(), "failed to parse anything"))
-        } else {
-            Err(Error::new(Span::call_site(), "failed to parse all tokens"))
-        }
+        let unexpected = Rc::new(Cell::new(None));
+        let state = ParseBuffer::new(Span::call_site(), buf.begin(), unexpected);
+        let node = self(&state)?;
+        state.check_unexpected()?;
+        Ok(node)
     }
 }
 
