use crate::structure::{OrdSignature, SetSignature};
pub trait SubsetsSignature: SetSignature {}
pub trait ApproximatePointsSignature: SetSignature {
type Precision: OrdSignature;
type OpenSubsetsStructure: SubsetsSignature;
fn open_neighbourhood(
&self,
approx_point: &Self::Set,
) -> <Self::OpenSubsetsStructure as SetSignature>::Set;
fn precision(&self, approx_point: &Self::Set) -> <Self::Precision as SetSignature>::Set;
fn refine(&self, approx_point: &mut Self::Set);
fn refine_to(
&self,
approx_point: &mut Self::Set,
precision: &<Self::Precision as SetSignature>::Set,
);
}