fn readback_neutral(head: &Head, elims: &[Elim]) -> Term {
    elims.iter().fold(
        match head {
            Head::Item(label) => Term::Item(Span::initial(), label.clone()),
            Head::Error => Term::Error(Span::initial()),
        },
        |acc, elim| match elim {
            Elim::Bool(if_true, if_false) => Term::BoolElim(
                Span::initial(),
                Arc::new(acc),
                if_true.clone(),
                if_false.clone(),
            ),
        },
    )
}
/// Read a neutral term back into the term syntax.
Read a neutral term back into the term syntax.
Read a neutral term back into the term syntax .
fn readback_neutral(head: &Head, elims: &[Elim]) -> Term {
    elims.iter().fold(
        match head {
            Head::Item(label) => Term::Item(Span::initial(), label.clone()),
            Head::Error => Term::Error(Span::initial()),
        },
        |acc, elim| match elim {
            Elim::Bool(if_true, if_false) => Term::BoolElim(
                Span::initial(),
                Arc::new(acc),
                if_true.clone(),
                if_false.clone(),
            ),
        },
    )
}
fn readback_neutral ( head : & Head , elims : & [ Elim ] ) -> Term { elims . iter ( ) . fold ( match head { Head :: Item ( label ) => Term :: Item ( Span :: initial ( ) , label . clone ( ) ) , Head :: Error => Term :: Error ( Span :: initial ( ) ) , } , | acc , elim | match elim { Elim :: Bool ( if_true , if_false ) => Term :: BoolElim ( Span :: initial ( ) , Arc :: new ( acc ) , if_true . clone ( ) , if_false . clone ( ) , ) , } , ) }
Read a neutral term back into the term syntax.
Read a neutral term back into the term syntax .
head
&Head
elims
&[Elim]
head
&Head
elims
&[Elim]