pub fn op_tree<T, F, O>(size: usize, get_elem: &F, op: &O) -> T where F: Fn(usize) -> T, O: Fn(T, T) -> T,