fn update_gamma_by_pair<'a>(
    gamma: Gamma<'a>,
    pattern_first: &Box<Pattern>,
    pattern_second: &Box<Pattern>,
    first: Value,
    second: Closure,
    generated_val: Value,
) -> TCM<Gamma<'a>> {
    let (val_first, val_second) = generated_val.destruct();
    let gamma = update_gamma(gamma, pattern_first, first, val_first.clone())?;
    let second = second.instantiate(val_first);
    update_gamma(gamma, pattern_second, second, val_second)
}
/// Some minor helper specialized from other functions.
Some minor helper specialized from other functions.
Some minor helper specialized from other functions .
fn update_gamma_by_pair<'a>(
    gamma: Gamma<'a>,
    pattern_first: &Box<Pattern>,
    pattern_second: &Box<Pattern>,
    first: Value,
    second: Closure,
    generated_val: Value,
) -> TCM<Gamma<'a>> {
    let (val_first, val_second) = generated_val.destruct();
    let gamma = update_gamma(gamma, pattern_first, first, val_first.clone())?;
    let second = second.instantiate(val_first);
    update_gamma(gamma, pattern_second, second, val_second)
}
fn update_gamma_by_pair < ' a > ( gamma : Gamma < ' a > , pattern_first : & Box < Pattern > , pattern_second : & Box < Pattern > , first : Value , second : Closure , generated_val : Value , ) -> TCM < Gamma < ' a > > { let ( val_first , val_second ) = generated_val . destruct ( ) ; let gamma = update_gamma ( gamma , pattern_first , first , val_first . clone ( ) ) ? ; let second = second . instantiate ( val_first ) ; update_gamma ( gamma , pattern_second , second , val_second ) }
Some minor helper specialized from other functions.
Some minor helper specialized from other functions .
gamma
Gamma<'a>
pattern_first
&Box<Pattern>
pattern_second
&Box<Pattern>
first
Value
second
Closure
generated_val
Value
gamma
Gamma<'a>
pattern_first
&Box<Pattern>
pattern_second
&Box<Pattern>
first
Value
second
Closure
generated_val
Value