pub trait Opaque: Send + Sync + 'static {} impl Opaque for T where T: Send + Sync + 'static {} pub trait Callback: Fn(&T, bool) -> () + Sync + Send + 'static {} impl Callback for F where F: Fn(&T, bool) -> () + Sync + Send + 'static {}