Switch from IResult to PResult in syn
diff --git a/src/lit.rs b/src/lit.rs
index 0be32d5..c9b4229 100644
--- a/src/lit.rs
+++ b/src/lit.rs
@@ -101,26 +101,25 @@
 #[cfg(feature = "parsing")]
 pub mod parsing {
     use super::*;
-    use proc_macro2::TokenTree;
-    use synom::{Synom, IResult};
+    use synom::{Synom, PResult, Cursor, parse_error};
 
     impl Synom for Lit {
-        fn parse(input: &[TokenTree]) -> IResult<&[TokenTree], Self> {
+        fn parse(input: Cursor) -> PResult<Self> {
             let mut tokens = input.iter();
             let token = match tokens.next() {
                 Some(token) => token,
-                None => return IResult::Error,
+                None => return parse_error(),
             };
             let kind = match token.kind {
                 TokenKind::Literal(ref l) => LitKind::Other(l.clone()),
                 TokenKind::Word(ref s) if s.as_str() == "true" => LitKind::Bool(true),
                 TokenKind::Word(ref s) if s.as_str() == "false" => LitKind::Bool(false),
-                _ => return IResult::Error,
+                _ => return parse_error(),
             };
-            IResult::Done(tokens.as_slice(), Lit {
+            Ok((tokens.as_slice(), Lit {
                 span: Span(token.span),
                 value: kind,
-            })
+            }))
         }
     }
 }