fn fold_repr<It: Iterator<Item=Representability>>(iter: It) -> Representability {
            iter.fold(Representability::Representable, |r1, r2| {
                match (r1, r2) {
                    (Representability::SelfRecursive(v1),
                     Representability::SelfRecursive(v2)) => {
                        Representability::SelfRecursive(v1.into_iter().chain(v2).collect())
                    }
                    (r1, r2) => cmp::max(r1, r2)
                }
            })
        }
// Iterate until something non-representable is found
Iterate until something non-representable is found
Iterate until something non - representable is found
fn fold_repr<It: Iterator<Item=Representability>>(iter: It) -> Representability {
            iter.fold(Representability::Representable, |r1, r2| {
                match (r1, r2) {
                    (Representability::SelfRecursive(v1),
                     Representability::SelfRecursive(v2)) => {
                        Representability::SelfRecursive(v1.into_iter().chain(v2).collect())
                    }
                    (r1, r2) => cmp::max(r1, r2)
                }
            })
        }
fn fold_repr < It : Iterator < Item = Representability > > ( iter : It ) -> Representability { iter . fold ( Representability :: Representable , | r1 , r2 | { match ( r1 , r2 ) { ( Representability :: SelfRecursive ( v1 ) , Representability :: SelfRecursive ( v2 ) ) => { Representability :: SelfRecursive ( v1 . into_iter ( ) . chain ( v2 ) . collect ( ) ) } ( r1 , r2 ) => cmp :: max ( r1 , r2 ) } } ) }
Iterate until something non-representable is found
Iterate until something non - representable is found
iter
It