Use the same api for imp::Term as for Term
diff --git a/src/stable.rs b/src/stable.rs
index 0a439ed..8bf3a9f 100644
--- a/src/stable.rs
+++ b/src/stable.rs
@@ -7,7 +7,6 @@
 use std::fmt;
 use std::iter;
 use std::marker::PhantomData;
-use std::ops;
 use std::rc::Rc;
 use std::str::FromStr;
 use std::vec;
@@ -398,19 +397,15 @@
 
 thread_local!(static SYMBOLS: RefCell<Interner> = RefCell::new(Interner::new()));
 
-impl<'a> From<&'a str> for Term {
-    fn from(string: &'a str) -> Term {
+impl Term {
+    pub fn intern(string: &str) -> Term {
         Term {
             intern: SYMBOLS.with(|s| s.borrow_mut().intern(string)),
             not_send_sync: PhantomData,
         }
     }
-}
 
-impl ops::Deref for Term {
-    type Target = str;
-
-    fn deref(&self) -> &str {
+    pub fn as_str(&self) -> &str {
         SYMBOLS.with(|interner| {
             let interner = interner.borrow();
             let s = interner.get(self.intern);
@@ -423,7 +418,7 @@
 
 impl fmt::Debug for Term {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        f.debug_tuple("Term").field(&&**self).finish()
+        f.debug_tuple("Term").field(&self.as_str()).finish()
     }
 }