pub fn hide<E: 'static>() {
        CURRENT_SCOPE.with(|current| {
            let mut env = current.borrow_mut();
            let mut without_e = env.values.clone();
            let excluded_ty = TypeId::of::<E>();
            without_e.retain(|(ty, _)| ty != &excluded_ty);
            *env = Rc::new(Env { values: without_e, depth: env.depth, location: env.location });
        })
    }
/// Removes the provided type from the current environment for the remainder
/// of its scope. Parent environments may still possess a reference to
/// the value.
Removes the provided type from the current environment for the remainder
of its scope. Parent environments may still possess a reference to
the value.
Removes the provided type from the current environment for the remainder of its scope . Parent environments may still possess a reference to the value .
pub fn hide<E: 'static>() {
        CURRENT_SCOPE.with(|current| {
            let mut env = current.borrow_mut();
            let mut without_e = env.values.clone();
            let excluded_ty = TypeId::of::<E>();
            without_e.retain(|(ty, _)| ty != &excluded_ty);
            *env = Rc::new(Env { values: without_e, depth: env.depth, location: env.location });
        })
    }
pub fn hide < E : ' static > ( ) { CURRENT_SCOPE . with ( | current | { let mut env = current . borrow_mut ( ) ; let mut without_e = env . values . clone ( ) ; let excluded_ty = TypeId :: of :: < E > ( ) ; without_e . retain ( | ( ty , _ ) | ty != & excluded_ty ) ; * env = Rc :: new ( Env { values : without_e , depth : env . depth , location : env . location } ) ; } ) }
Removes the provided type from the current environment for the remainder
of its scope.
Removes the provided type from the current environment for the remainder of its scope .