    pub fn as_mut(&mut self) -> Lazy<&mut T> {
        match *self {
            Loaded(ref mut x) => Loaded(x),
            Unloaded => Unloaded,
        }
    }
    pub fn unwrap(self) -> T {
        self.expect("Tried to unwrap() an unloaded value")
    }
    pub fn expect(self, msg: &str) -> T {
        if let Loaded(x) = self {
            x
        } else {
            panic!("{}", msg);
        }