pub fn intern<T: HashConsable, U>(inner: U) -> HashConsed<T>where Arc<T>: Borrow<U>, U: Into<Arc<T>> + Hash + Equivalent<Arc<T>>,