pub fn inference_wrap<O, R>(
    op: O, 
    outputs: usize, 
    rules: R
) -> Box<dyn InferenceOp>ⓘimpl<W> Write for Box<W, Global> where
    W: Write + ?Sized, impl<R> Read for Box<R, Global> where
    R: Read + ?Sized, impl<F, A> Future for Box<F, A> where
    F: Future + Unpin + ?Sized,
    A: Allocator + 'static,     type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
    I: Iterator + ?Sized,
    A: Allocator,     type Item = <I as Iterator>::Item;  where
    O: TypedOp,
    R: for<'r, 'p, 's> Fn(&'s dyn Op, &mut Solver<'r>, &'p [TensorProxy], &'p [TensorProxy]) -> InferenceResult + Send + Sync + 'static,