pub trait PrivateKey<T> {
type SecretKey;
fn secret_key(&self) -> Result<Self::SecretKey>;
fn child_key(&self, segment: Segment) -> Result<Key>;
fn derive(&self, chain: &Chain) -> Result<Key>;
}
pub trait PrivateKey<T> {
type SecretKey;
fn secret_key(&self) -> Result<Self::SecretKey>;
fn child_key(&self, segment: Segment) -> Result<Key>;
fn derive(&self, chain: &Chain) -> Result<Key>;
}