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