pub trait HyperType: Display + Debug {
// Required methods
fn as_shared(&self) -> Shared;
fn as_any(&self) -> &dyn Any;
fn is_file(&self) -> bool;
fn is_directory(&self) -> bool;
fn is_spaces(&self) -> bool;
fn is_syntax(&self) -> bool;
fn get_lang(&self) -> LangWrapper<Self>
where Self: Sized;
// Provided method
fn generic_eq(&self, other: &dyn HyperType) -> bool
where Self: 'static + PartialEq + Sized { ... }
}