pub fn prune_slices<P, R, T, F, U>(
    pline1: &P,
    pline2: &R,
    boolean_info: &ProcessForBooleanResult<T>,
    pline1_point_on_slice_pred: &mut F,
    pline2_point_on_slice_pred: &mut U,
    set_opposing_direction: bool,
    pos_equal_eps: T
) -> PrunedSlices<T>
where P: PlineSource<Num = T> + ?Sized, R: PlineSource<Num = T> + ?Sized, T: Real, F: FnMut(Vector2<T>) -> bool, U: FnMut(Vector2<T>) -> bool,