pub fn choose<'a, R: Rand, M: Matcher>( trace: &'a Trace<M>, constraints: TermConstraints, rand: &mut R) -> Option<(&'a Term<M>, (usize, TermPath))>