pub trait Bisectable<T: Float + FromPrimitive + Debug> {
// Required method
fn evaluate(&self, x: T) -> T;
// Provided methods
fn slope_sign(
&self,
domain: &Range<T>,
confidence_level: ConfidenceLevel<T>,
max_iter: usize,
) -> Result<Sign, Error> { ... }
fn sign(
&self,
x: T,
confidence_level: ConfidenceLevel<T>,
max_iter: usize,
) -> Result<Sign, Error> { ... }
}