#![allow(unused)] use typle::typle; pub trait Verifier { type Error; fn verify(&self, report: &()) -> Result<(), Self::Error>; } #[typle(Tuple for 1..=3)] impl Verifier for T where T: Tuple, T<_>: Verifier, as Verifier>::Error: Into>, { type Error = Box; fn verify(&self, _report: &()) -> Result<(), Self::Error> { Ok(()) } }