pub fn choose_term_path_filtered<R: Rand, M: Matcher, P: Fn(&Term<M>) -> bool + Copy>(
    trace: &Trace<M>,
    filter: P,
    constraints: TermConstraints,
    rand: &mut R
) -> Option<TracePath>