pub fn binary_search<X, A, B, F>( low: (X, A), high: (X, B), f: F) -> ((X, A), (X, B))where X: Betweenable, F: Fn(X) -> Direction<A, B>,