I'm trying to access the inner value of my `Arc<Mutex<T>>` struct. Based on the answers provided to this question, I thought this would work:

```rust
//Arc Wrapper Struct
#[derive(Clone)]
pub struct ArcWidget<T: WidgetExt + WidgetBase >(Arc<Mutex<T>>);

impl<T: WidgetExt + WidgetBase> ArcWidget<T>{    
    //provide access to the inner widget
    pub fn widg(&self)->Result<(), T>{
        let lock = Arc::try_unwrap(self.0).expect("Lock still has multiple owners")
        let test = lock.into_inner().expect("Mutex cannot be locked");
        test
    }
    pub fn width(&self)->i32{
        let mut widg = self.0.lock().unwrap();
        widg.width()
    }
}

```

However doing so results in error unsatisfied trait bounds error:

```
the following trait bounds were not satisfied: `Arc<Mutex<T>>: Debug`rustcE0599

```

I tried to impliment the Debug Trait for `ArcWidget<T>`:

```
impl<T:WidgetExt + WidgetBase> std::fmt::Debug for ArcWidget<T>{
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        write!(f, "Val: {}", "gota  widget")
    }
}

```

Something tells me I might be taking the wrong approach here.

So how might I fix this problem?